您的位置:首页 > 产品设计 > UI/UE

使用函数F4IF_INT_TABLE_VALUE_REQUEST时遇到的问题

2010-02-24 11:00 357 查看
最近在使用函数 F4IF_INT_TABLE_VALUE_REQUEST时,出现了虽然弹出帮助对话框,确不显示选择值的问题。

代码

REPORT zhelp.
DATA: BEGIN OF itab OCCURS 0,
c1 TYPE c LENGTH 6,此处改为" c1 type char6,"即可!
END OF itab.
PARAMETERS para TYPE char6.

INITIALIZATION.
itab-c1 = '201002'.
APPEND itab.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR para.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
retfield = 'C1' "大写,可选值内表的字段名
value_org = 'S' "就写'S'
dynpprog = sy-repid "返回的输入框所在的main program
dynpnr = sy-dynnr "返回的输入框所在屏幕
dynprofield = 'para' "返回的输入框名
TABLES
value_tab = itab "可选值的内表
EXCEPTIONS
parameter_error = 1
no_values_found = 2
OTHERS = 3.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.

此函数更加详细的应用参见Searcha Help 的函数 F4IF_INT_TABLE_VALUE_REQUEST 使用说明(一)http://blog.csdn.net/asdf19256/archive/2008/07/29/2728591.aspx

为screen上的输入框增加F4搜查功能

假设输入框g_var_f1绑定在变量g_var_f1.
且可选值在内表g_itab_t1的字段c1上.

1`在screen的logic flow上code:
PROCESS ON VALUE-REQUEST.
FIELD g_var_f1 MODULE user_gvarf1vr_0010.
其中f为输入框的name.并新建MODULE m.
立即能在屏幕显示后,该框右侧出现F4按钮.

为一个屏幕上多个输入框配置F4搜查即
PROCESS ON VALUE-REQUEST.
FIELD f1 MODULE m1.
FIELD f2 MODULE m2.

2`编写MODULE m.
MODULE user_gvarf1vr_0010 INPUT.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
retfield = 'C1' 大写,可选值内表的字段名
value_org = 'S' 就写'S'
dynpprog = SY-REPID 返回的输入框所在的main program
dynpnr = SY-DYNNR 返回的输入框所在屏幕
dynprofield = 'G_VAR_F1' 返回的输入框名
TABLES
value_tab = g_itab_t1 可选值的内表
EXCEPTIONS
parameter_error = 1
no_values_found = 2
others = 3.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
MODULE.
该function是将itab:value_tab的retfield列显示在屏幕上以供选择,并返回到dynpprog-dynpnr-dynprofield框中.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: