zoukankan      html  css  js  c++  java
  • 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按钮要注意加描述目标页:

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

    试下效果:

  • 相关阅读:
    构造方法,析构函数
    Redis Sentinel实现的机制与原理详解
    关于PageRank的总结
    再次建立wordpress
    图的研究杂记
    并行的论文
    还是bib问题
    如何解决bib的一些问题
    忙中记录
    近期一些学术相关记录
  • 原文地址:https://www.cnblogs.com/sapSB/p/10768381.html
Copyright © 2011-2022 走看看