凡尘clsoho™的博客

E-mail & MSN: clsoho@hotmail.com
QQ1超级群: <101817641已满> QQ2群:<110722895已满>
QQ3超级群:<23765855>QQ4超级群:<85338969>

 最近在使用函数 F4IF_INT_TABLE_VALUE_REQUEST时,出现了虽然弹出帮助对话框,确不显示选择值的问题。

 

 也就是显示找到了条目,但是数据显示不出来。

 后来在http://www.itpub.net/thread-1016866-1-1.html发现了问题。

       原因是自定义表没有表头文本,内表结构里的字段不能用C类型,而应参照数据表里的字段类型。

改过之后果然问题解决了,还是高手多啊,努力学习中……

 

代码
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框中.

posted on 2010-02-24 11:00  凡尘clsoho  阅读(8296)  评论(0编辑  收藏  举报