FPM六:接五,跳转到明细

1.在RESULT的Feeder class里添加点击单号事件:

  method IF_FPM_GUIBB_LIST~GET_DEFINITION.
    DATA:GW_ACTION TYPE FPMGB_S_ACTIONDEF.
    EO_FIELD_CATALOG ?= CL_ABAP_STRUCTDESCR=>DESCRIBE_BY_NAME( 'ZLY_RESULT01T' )."获取查询参数结构
    GW_ACTION-ID = 'LINK_TO_DETAIL'.
    GW_ACTION-ENABLED = 'X'.
    APPEND GW_ACTION TO ET_ACTION_DEFINITION.
  endmethod.

2.进入Detail的配置页面:

修改字段类型为LINK TO ACTION,然后事件选择定义的事件。

到这里,界面的单号就变成链接了,而且点击也会触发事件进入PROCESS_EVENT。

下面写跳转的一些东西。

3.程序做跳转处理:在PROCESS_EVENT中接受事件,并做跳转。这里有个PAGE_2的页面,是要做明细界面的,这里可以先用上,后面再配置。

  METHOD IF_FPM_GUIBB_LIST~PROCESS_EVENT.
    DATA:GT_FPM_SEARCH_CRITERIA TYPE FPMGB_T_SEARCH_CRITERIA,
         GV_MAX_NUM             TYPE I,
         GV_INDEX               TYPE I,
         GT_WHERE               TYPE RSDS_WHERE_TAB.

    CASE IO_EVENT->MV_EVENT_ID.
      WHEN IF_FPM_GUIBB_LIST=>GC_EVENT_LIST_FILTER.
        IO_EVENT->MO_EVENT_DATA->GET_VALUE(
          EXPORTING
            IV_KEY   = 'SEL_TAB'
           IMPORTING
             EV_VALUE = GT_FPM_SEARCH_CRITERIA ).

        IO_EVENT->MO_EVENT_DATA->GET_VALUE(
          EXPORTING
            IV_KEY   = 'MAX_NUM'
           IMPORTING
             EV_VALUE = GV_MAX_NUM ).

        TRY .
            CALL METHOD CL_FPM_GUIBB_SEARCH_CONVERSION=>TO_ABAP_SELECT_WHERE_TAB
              EXPORTING
                IT_FPM_SEARCH_CRITERIA = GT_FPM_SEARCH_CRITERIA
                IV_TABLE_NAME          = 'ZLY_SEARCH01'
*               IO_FIELD_CATALOG       = MO_CATALOG
              IMPORTING
                ET_ABAP_SELECT_TABLE   = GT_WHERE.
            SELECT GUID
                   OBJECT_ID
                   DESCRIPTION
                   PROCESS_TYPE
                   POSTING_DATE
                   SALES_ORG
                   PROVIDER
                   END_USER
                   RETAILER
                   STAT_USER
                   TXT30
                   PRODUCT_ID
                   ZZCHARG_TYPE
              INTO TABLE GT_RESULT
              FROM ZHSB_ORDER_INDEX
              UP TO GV_MAX_NUM ROWS WHERE (GT_WHERE).
          CATCH CX_FPMGB.
        ENDTRY.
      WHEN 'LINK_TO_DETAIL'.
        DATA:LR_FPM        TYPE REF TO IF_FPM,
             LO_EVENT      TYPE REF TO       CL_FPM_EVENT,
             LR_EVENT_DATA TYPE REF TO CL_FPM_PARAMETER.
        IO_EVENT->MO_EVENT_DATA->GET_VALUE(
        EXPORTING
          IV_KEY = IF_FPM_GUIBB_LIST=>GC_EVENT_PAR_ROW
          IMPORTING
            EV_VALUE = GV_INDEX ).
        READ TABLE GT_RESULT INTO GW_RESULT INDEX GV_INDEX.
        IF SY-SUBRC = 0.
          LO_EVENT ?= CL_FPM_EVENT=>CREATE_BY_ID( 'FPM_CHANGE_CONTENT_AREA' ).

          LO_EVENT->MO_EVENT_DATA->SET_VALUE(
            EXPORTING
              IV_KEY   = 'TARGET_CONTENT_AREA'
              IV_VALUE = 'PAGE_2' ).

          LO_EVENT->MO_EVENT_DATA->SET_VALUE("将查询参数添加对参数对象里
              IV_KEY   = 'DETAIL'
              IV_VALUE = GW_RESULT ).
          LR_FPM ?= CL_FPM=>GET_INSTANCE( ).

          LR_FPM->RAISE_EVENT( LO_EVENT ).
        ENDIF.
      WHEN OTHERS.
    ENDCASE.
  ENDMETHOD.
View Code

4.新建明细的Feeder class:ZLY_FPM_DETAIL01

继承接口:

IF_FPM_GUIBB
IF_FPM_GUIBB_FORM_CFG_GL2
IF_FPM_GUIBB_FORM_CFG_READ_GL2
IF_FPM_GUIBB_FORM

激活所有方法,以防dump。

 4.1 添加节点属性,这个结构就用前面创建的了,不想再创建了。

4.2 实现GET_DEFINITION方法,确认明细界面字段。

  METHOD IF_FPM_GUIBB_FORM~GET_DEFINITION.
    EO_FIELD_CATALOG ?= CL_ABAP_STRUCTDESCR=>DESCRIBE_BY_DATA( GW_RESULT ).
  ENDMETHOD.

4.3 在GET_DATA中接受数据,并做明细界面的初始化:

  METHOD IF_FPM_GUIBB_FORM~GET_DATA.
    IF IO_EVENT->MV_EVENT_ID = 'FPM_CHANGE_CONTENT_AREA'.
      IO_EVENT->MO_EVENT_DATA->GET_VALUE(
          EXPORTING
            IV_KEY   = 'DETAIL'
           IMPORTING
             EV_VALUE = GW_RESULT ).
      CS_DATA = GW_RESULT.
      EV_DATA_CHANGED = ABAP_TRUE.
    ELSE.
      CS_DATA = GW_RESULT.
    ENDIF.
  ENDMETHOD.

4.4 界面数据更新到结构:直接放到FLUSH里了。

  METHOD IF_FPM_GUIBB_FORM~FLUSH.
    DATA:GW_CHANGE TYPE FPMGB_S_CHANGELOG.
    FIELD-SYMBOLS:<FS> TYPE ANY,
                  <DATA> TYPE DATA.
    LOOP AT IT_CHANGE_LOG INTO GW_CHANGE.
      ASSIGN COMPONENT GW_CHANGE-NAME OF STRUCTURE GW_RESULT TO <FS>.
      IF <FS> IS ASSIGNED.
        ASSIGN GW_CHANGE-NEW_VALUE->* TO <DATA>.
        <FS> = <DATA>.
      ENDIF.
    ENDLOOP.
  ENDMETHOD.

至于其他的事件,这里就暂时不写了。

5.配置明细界面:

FPM_WB:

进入配置,输入FORM的组件FPM_FORM_UIBB_GL2,和配置ID:ZLY_DETAIL01,点击创建。

5.1 添加2个GROUP,分左右两边:

如此两次,然后配置GROUP属性

第一个GROUP配置ROW 1,列就从A到H,占左半边。

第二个GROUP配置ROW 1,列从I到P,占右半边。

然后在每个GROUP里添加字段,效果如图:

这时候明细界面配置结束,保存。

然后到OVP界面配置。

6.VOP后续配置。

6.1 新增主页面:PAGE_2(这名字随意,但是要和跳转那里对应)

6.2 增加UIBB配置:

用前面配置好的配置ID。

转到按钮配置页签,添加两个按钮,一个保存,一个返回:

SAVE是标准的,不用管,BACK按钮要注意加描述目标页:

好了,到这里,跳转明细,保存,返回基本完成了。

试下效果:

 

转载于:https://www.cnblogs.com/sapSB/p/10768381.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值