zoukankan      html  css  js  c++  java
  • FPM十一:点击POPUP显示明细

    沿接着前面的Search和List。在LIST中点击一列,弹出窗口显示明细。

    1.list中定义事件:

      METHOD if_fpm_guibb_list~get_definition.
        DATA:gt_table TYPE TABLE OF zcrmjp003.
        DATA:gw_field  TYPE fpmgb_s_listfield_descr,
             gt_value  TYPE wdr_context_attr_value_list,
             gt_dd03l  TYPE TABLE OF dd03l,
             gw_dd03l  LIKE LINE OF gt_dd03l,
             gw_action TYPE fpmgb_s_actiondef.
        eo_field_catalog ?= cl_abap_tabledescr=>describe_by_data( gt_table ).
    
        mo_catalog ?= cl_abap_structdescr=>describe_by_name( 'ZCRMJP002' ).
    
    
        SELECT * INTO TABLE gt_dd03l FROM dd03l WHERE tabname = 'ZCRMJP003' AND inttype = 'C'.
        LOOP AT gt_dd03l INTO gw_dd03l.
          gw_field-name = gw_dd03l-fieldname.
          gw_field-allow_sort = 'X'.
          gw_field-allow_filter = 'X'.
          APPEND gw_field TO et_field_description.
        ENDLOOP.
    
        gw_action-id = 'ZFPM_LINK'.
        gw_action-enabled = 'X'.
        gw_action-visible = 'X'.
        APPEND GW_ACTION TO ET_ACTION_DEFINITION.
    
        gw_action-id = 'ZPOPUP'.
        gw_action-enabled = 'X'.
        gw_action-visible = 'X'.
        APPEND GW_ACTION TO ET_ACTION_DEFINITION.
      ENDMETHOD.

    注*:上面的ZPOPUP是弹窗。

    2.list中设置事件响应,并将数据带出。

    IF io_event->mv_event_id = 'ZPOPUP'.
          "取当前FPM对象实例
          lr_fpm = cl_fpm_factory=>get_instance( ).
          CREATE OBJECT lr_event_data.
          READ TABLE gt_result INTO ls_result INDEX iv_event_index.
          CHECK sy-subrc = 0.
          lr_event_data->if_fpm_parameter~set_value(
              iv_key   = 'DETAIL'
              iv_value = ls_result ).
    
          lr_fpm->open_dialog_box(
              iv_dialog_box_id         = 'PAGE_3'
              io_event_data            = lr_event_data
                 ).
    
    
        ENDIF.

    注*:上面的PAGE_3对于VOP里的POPUP也编号,前面已经使用了两个,这个默认用PAGE_3.

    3.1新建FORM的Feeder class。

    3.2给弹出定义字段目录:

      METHOD if_fpm_guibb_form~get_definition.
        eo_field_catalog ?= cl_abap_structdescr=>describe_by_name( 'ZCRMJP003' ).
      ENDMETHOD.

    3.3给弹出定义全局接收工作区属性

     3.4 给弹出做数据接受

      METHOD if_fpm_guibb_form~get_data.
        io_event->mo_event_data->get_value( EXPORTING iv_key = 'DETAIL'
                                            IMPORTING ev_value = gw_result ).
        cs_data = gw_result.
        ev_data_changed = 'X'.
        ev_field_usage_changed = 'X'.
      ENDMETHOD.

    4.1页面配置,给LIST中字段改成LInk并分配事件

     4.2 返回OVP界面,新建PAGE.

    4.3分配FORM,并配置

     

    测试效果:

  • 相关阅读:
    2017-2018-1 20155208 20155212 20155239 实验一 开发环境的熟悉
    2017-2018-1 20155332实验三 实时系统报告
    2017-2018-1 20155332 《信息安全系统设计基础》第九周学习总结
    第9周 实现PWD命令
    2016-2017第一学期 20155332 第八周课堂实践
    2017-2018-1 20155312 《信息安全系统设计基础》第八周学习总结
    20155332实验二 固件编程
    2017-2018-1 20155332 《信息安全系统设计基础》第7周学习总结
    20155332口令破解实验
    2017-2018-1 20155332 《信息安全系统设计基础》第六周学习总结
  • 原文地址:https://www.cnblogs.com/sapSB/p/12011553.html
Copyright © 2011-2022 走看看