搜索帮助是一种有助于在选择屏幕上输入每个项目的值的功能。
AT SELECTION-SCREEN ON VALUE-REQUEST :表示事件“当用户使用 XX 项的搜索帮助时”。
语法规则:
AT SELECTION-SCREEN ON VALUE-REQUEST FOR <input_field>. " 在选择屏幕上的 Value 请求。
- 实际读取电脑上的文件代码:
" 上传文件的屏幕项目
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT (10) TEXT-S01 FOR FIELD P_FILE.
PARAMETERS P_FILE TYPE STRING.
SELECTION-SCREEN END OF LINE.
" 对 P_FILE 值的搜索帮助
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE.
CALL METHOD CL_GUI_FRONTEND_SERVICES=>FILE_SAVE_DIALOG
CHANGING
FILENAME = LV_FILENAME
PATH = LV_PATH
FULLPATH = P_FILE.
对于由 PARAMETERS 指令定义的屏幕项,定义了一个名为“调用该项的帮助时”的事件。
- 对采购订单号的搜索帮助:
REPORT ZSAMPLE.
PARAMETERS: p_purch_order TYPE EKKO-EBELN.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_purch_order.
DATA: lt_ekko TYPE TABLE OF EKKO,
ls_ekko TYPE EKKO,
lv_selected TYPE EKKO-EBELN.
SELECT * FROM EKKO INTO TABLE lt_ekko.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
retfield = 'EBELN'
value_org = 'S'
TABLES
value_tab = lt_ekko
EXCEPTIONS
parameter_error = 1
no_values_found = 2
OTHERS = 3.
IF sy-subrc = 0.
READ TABLE lt_ekko WITH KEY EBELN = lv_selected INTO ls_ekko.
IF sy-subrc = 0.
p_purch_order = ls_ekko-EBELN.
ENDIF.
ENDIF.
如果存在字典输入帮助
如果搜索帮助与屏幕项相关联(这称为字典输入帮助),则不需要上述代码。
上述“公司代码”项是指字典,但由于搜索帮助分配给该词典,因此无需任何特殊设置即可使用搜索帮助。
PARAMETERS P_BURKS TYPE BUKRS.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_BUKRS.
CALL FUNCTION 'F4_FILENAME'
IMPORTING
FILE_NAME = P_BUKRS.
结果由“值请求”搜索帮助而不是字典输入帮助获得。 这意味着,如果执行上述示例代码,系统将调用帮助来选择文件,而不是公司代码的输入帮助。 (不用说,结果是一个错误。 )