Appearance
模块池程序中的输入帮助
一、介绍
在检索帮助概要中说明了构成输入帮助的方法有三种。在创建检索帮助~集合检索帮助主要介绍了利用检索帮助对象构成输入帮助的方法。在本节中介绍在模块池程序中利用函数构成输入帮助的方法。
模块池程序中的输入帮助
用户在画面字段上按(F4)键时,会在POV(PROCESS ONVALUE-REOUEST)
事件中调用对话框模块在画面上显示的输入帮助。
利用输入帮助函数可以修改查询条件及查询结果数据。其中有使用ABAP数据字典表与使用内表这两种方法。
二、利用ABAP数据字典表构成输人帮助
这是指利用F4IFFIELDVALUE REOUEST 函数构成输入帮助的方法。创建程序后在100画面上追加 PROCESS ON VALUE-REQUEST 事件即可追加输入帮助。画面相关内容将 在“模块池程序”中介绍。
三、利用内表构成输入帮助
利用F4IF INT TABLE VALUE REQUEST
函数,把内表的内容追加到Possible Entry
上。[例9-1]的gt_data
是Possible Entry
中显示的内表,GT RTNTAB 是存储在检索帮助中选择的行内表。如[例 9-1]所示,创建程序后进行测试。
abap
REPORT z09_002.
DATA: BEGIN OF gt_data OCCURs 0,
emp_name TYPE zemp-emp_name,
END OF gt_data.
DATA : gt_rtntab LIKE ddshretval OCCURS 0 WITHHEADER LINE.
DATA : gt_dynpread LIKE dynpread OCCURS 0 WITHHEADER LINE.
PARAMETERS: p_emp_no LKE zemp-emp_no,
p_name LIKE zemp-emp_name.
INITIALIZATION.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_name.
CALL FUNCTION'DYNP_VALUES_READ'
EXPORTING
dyname = sy-cprog
dynumb = sy-dynnr
request ='A'
translate_to_upper ='X'
TABLES
dynpfields = gt_dynpread.
READ TABLE gt dynpread WTH KEY fieldname ='P EMP NO'.
SELECT DISTINCT emp_name INTO TABLE gt_data
FROM zemp
WHERE emp no = gt_dynpread-fieldvaluc.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST"
EXPORTING
retfield = 'P_NAME’
dynpprog=sy-cprog
dynpnr = sy-dynnr
window_title ='EMP_NAME'
value_org ='S'
TABLES
value_tab= gt_data
return_tab=gt_rtntab.
READ TABLE gt rtntab INDEX 1.
p_name=gt_rtntab-fieldval.
如[结果 9-1]所示,从表中只读取用户输入的值相对应的数据,以Possible Entry
的形式显示在PEMPNO值中。用户在画面上输入00001值后,即使不按(Enter)键(不调用PAI事件)也可以使用DYNP_VALUES_READ数识别被修改的值。单击PAME字段的Possible Entry
按钮时,在用户没有按(Enter)键的情况下,P_EMP_NO参数中尚未分配修改值 00001的状态。此时为了读取画面变更的值,需要利用DYNP_VALUES_READ函数。如例题所示,可以利用用户输入的值作为限制条件创建输入帮助。与此函数有相似功能的还有DYNP_VALUES_UPDATE函数,可以动态的改变画面的功能。