- 搜索帮助函数:F4IF_INT_TABLE_VALUE_REQUEST
如果搜索帮助展示有多列信息数据,我们要根据选中的一行数据,把对应的的值都带到屏幕上面,这时候就需要使用关联搜索帮助
2.在入参callback*填写参数
3.代码示例
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
retfield = 'BANKN'
dynpprog = sy-repid
dynpnr = sy-dynnr
dynprofield = 'GS_HEAD-BANKN'
window_title = '银行账号选择'
value_org = 'S' "Structure
callback_program = sy-repid
callback_form = 'FRM_RELATION_F4'
TABLES
value_tab = lt_bnnk
return_tab = l_ddshretval[]
EXCEPTIONS
parameter_error = 1
no_values_found = 2
OTHERS = 3.
IF sy-subrc <> 0.
ELSE.
LOOP AT l_ddshretval INTO DATA(ls_value).
CASE ls_value-retfield.
WHEN 'GS_HEAD-BANKN'.
gs_head-bankn = ls_value-fieldval.
WHEN 'GS_HEAD-BKREF'.
gs_head-bankn = gs_head-bankn && ls_value-fieldval.
WHEN 'GS_HEAD-BANKL'.
gs_head-bankl = ls_value-fieldval.
WHEN 'GS_HEAD-KOINH'.
gs_head-koinh = ls_value-fieldval.
WHEN 'GS_HEAD-ACCNAME'.
gs_head-accname = ls_value-fieldval.
WHEN OTHERS.
ENDCASE.
ENDLOOP.
ENDIF.
4.关联FORM代码
FORM frm_relation_f4 TABLES record_tab STRUCTURE seahlpres
CHANGING shlp TYPE shlp_descr_t
callcontrol LIKE ddshf4ctrl.
DATA: interface LIKE LINE OF shlp-interface.
READ TABLE shlp-interface INTO interface INDEX 1.
interface-shlpfield+4(1) = '2'. "注意点解析"
interface-valfield = 'GS_HEAD-BKREF'.
APPEND interface TO shlp-interface.
interface-shlpfield+4(1) = '3'. "注意点解析"
interface-valfield = 'GS_HEAD-BANKL'.
APPEND interface TO shlp-interface.
interface-shlpfield+4(1) = '4'. "注意点解析"
interface-valfield = 'GS_HEAD-KOINH'.
APPEND interface TO shlp-interface.
interface-shlpfield+4(1) = '5'. "注意点解析"
interface-valfield = 'GS_HEAD-ACCNAME'.
APPEND interface TO shlp-interface.
ENDFORM.