VALUE HELP 彈出列表窗口

之前有听同事讲关于一个客户的需求:
有一个自己的customizing的report是关于run F110相关的数据。这个report上面有两个参数选择:
PARAMETERS: p_laufd LIKE reguh-laufd, “运行日期
                            p_laufi LIKE reguh-laufi.    ”标识
希望在点击参数p_laufd后面的value help的时候出来的界面和值要和F110一样。p_laufi也一样。

 

因为客户提到和F110一样,既然F110已经有了这样的功能,那么我们不妨直接参照F110标准程序的做法就可以了。这个就是一个很有效率以及很准确的方法。
T-code: F110->Program:SAPF110V-Screen:200.可以找到在这个200屏幕上看到标准程序的写法,直接引用过来。

 

test report:
DATA:    BEGIN OF tlaufk OCCURS 1.
        INCLUDE STRUCTURE ilaufk.
DATA:    END OF tlaufk.
PARAMETERS: p_laufd LIKE reguh-laufd,
            p_laufi LIKE reguh-laufi.
AT SELECTION-SCREEN ON VALUE-REQUEST  FOR p_laufd.
  REFRESH tlaufk.
  tlaufk-laufk = space.
  tlaufk-sign  = 'I'.
  APPEND tlaufk.
  CALL FUNCTION 'F4_ZAHLLAUF'
       EXPORTING
            f1typ = 'D'
            f2nme = 'F110V-LAUFI'
       IMPORTING
            laufd = p_laufd
            laufi = p_laufi
       TABLES
            laufk = tlaufk.
AT SELECTION-SCREEN ON VALUE-REQUEST  FOR p_laufi.
  REFRESH tlaufk.
  tlaufk-laufk = space.
  tlaufk-sign  = 'I'.
  APPEND tlaufk.
  CALL FUNCTION 'F4_ZAHLLAUF'
       EXPORTING
            f1typ = 'D'
            f2nme = 'F110V-LAUFI'
       IMPORTING
            laufd = p_laufd
            laufi = p_laufi
       TABLES
            laufk = tlaufk.
START-OF-SELECTION.

 

  WRITE:/ p_laufd,p_laufi.

 

经测试,run出来的结果和F110一样。

 

这是目前已经有标准的存在,如果没有标准的话,该怎么做。也需要找相应的FM。下次blog中再记录。
上面的方法是直接copy标准程序的方法来用。
如果此时该field本身没有search help,在定义parameter或者select-option的时候,F4的时候也没有值出来。如果此时你想让它在F4的时候出来值。那么按照一下方法就可以。最主要的应用FUNCTION MODULE:F4IF_INT_TABLE_VALUE_REQUEST。
参照如下report就可以实现该功能:
DATA:    BEGIN OF tlaufk OCCURS 1.
        INCLUDE STRUCTURE ilaufk.
DATA:    END OF tlaufk.
DATA: BEGIN OF ivalue_source OCCURS 0,
    zterm LIKE ztest_f4-zterm,
      END OF ivalue_source.
DATA: w_progname LIKE sy-repid,
      w_scr_num LIKE sy-dynnr .
DATA: return_values LIKE ddshretval OCCURS 0 WITH HEADER LINE.
PARAMETERS: p_zterm LIKE reguh-laufi.

AT SELECTION-SCREEN ON VALUE-REQUEST  FOR p_zterm.
  SELECT  zterm FROM ztest_f4 INTO TABLE ivalue_source.
  CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
    EXPORTING
      retfield               = 'ZTERM'
*   PVALKEY                = ' '
     dynpprog               =  w_progname--->不能在这里直接使用SY-REPID OR SY-DYNNR.
     dynpnr                   =  w_scr_num
     dynprofield            = 'P_ZTERM'
     value_org              = 'S'------>一定要使用‘S’,如果使用‘C‘,则不会有值返回。
    TABLES
      value_tab             = ivalue_source
     return_tab             = return_values.
INITIALIZATION.
  w_progname = sy-repid.
  w_scr_num = sy-dynnr.
START-OF-SELECTION.
write:/ p_zterm.

 

*******************************************
事件: INITIALIZATION.
是report开始run之前第一个事件。所以对screen上参数的初始化都可以放到该事件里面。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值