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.