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.
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按鈕要注意加描述目標頁:
好了,到這裏,跳轉明細,保存,返回基本完成了。
試下效果: