FPM六:接五,跳轉到明細

1.在RESULT的Feeder class裏添加點擊單號事件:ide

  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的配置頁面:spa

修改字段類型爲LINK TO ACTION,而後事件選擇定義的事件。3d

到這裏,界面的單號就變成連接了,並且點擊也會觸發事件進入PROCESS_EVENT。code

下面寫跳轉的一些東西。對象

3.程序作跳轉處理:在PROCESS_EVENT中接受事件,並作跳轉。這裏有個PAGE_2的頁面,是要作明細界面的,這裏能夠先用上,後面再配置。blog

  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。event

 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按鈕要注意加描述目標頁:

好了,到這裏,跳轉明細,保存,返回基本完成了。

試下效果:

相關文章
相關標籤/搜索