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,並配置

 

 

 

 

測試效果:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM