在ABAP报告屏幕(PAI/PBO)中执行后,组合框将获得其他项目

2020-09-19 04:04发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


我在UI中有一个组合框元素,根据手册使用 VRM_SET_VALUES 实现 。 该下拉菜单包含两项(键值):

  • '我们'-«美国»
  • 'eu'—«欧盟»

当我选择其中之一时,说"欧盟",一切正常,但是在报表执行结束时,我的组合框还有一个附加元素-«eu»,即我在程序执行之前选择的项目键

我试图通过 PAI/PBO 摆脱这个新添加的项目,但是它不起作用,甚至在到达过程中我都无法断点到达 调试。

能否请您告诉我,为什么我的组合框在执行后还会得到其他项目,我该如何解决?

谢谢。

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


我在UI中有一个组合框元素,根据手册使用 VRM_SET_VALUES 实现 。 该下拉菜单包含两项(键值):

  • '我们'-«美国»
  • 'eu'—«欧盟»

当我选择其中之一时,说"欧盟",一切正常,但是在报表执行结束时,我的组合框还有一个附加元素-«eu»,即我在程序执行之前选择的项目键

我试图通过 PAI/PBO 摆脱这个新添加的项目,但是它不起作用,甚至在到达过程中我都无法断点到达 调试。

能否请您告诉我,为什么我的组合框在执行后还会得到其他项目,我该如何解决?

谢谢。

付费偷看设置
发送
2条回答
Doze时光
1楼 · 2020-09-19 04:50.采纳回答

嗨,

如果您可以提供一些代码,那就更好了。

以下是INITIALIZATION事件中的一个例子

 TYPE-POOLS:vrm。


 数据:gt_list TYPE vrm_values。
 数据:gwa_list类型vrm_value。
 数据:gt_values dynpread的类型表,
       gwa_values TYPE dynpread。


 数据:gv_selected_value(10)TYPE c。
 * -------------------------------------------------  ------------- *
 *选择画面
 * -------------------------------------------------  ------------- *
 参数:列表类型c作为列表框的可见长度20。
 * -------------------------------------------------  ------------- *
 *在选择屏幕上
 * -------------------------------------------------  ------------- *
 在"选择屏幕打开"列表中。
   清除:gwa_values,gt_values。
   刷新gt_values。
   gwa_values-fieldname ='LIST'。
   将gwa_values附加到gt_values。
   通话功能'DYNP_VALUES_READ'
     出口
       dyname = sy-cprog
       dynumb = sy-dynnr
       translate_to_upper ='X'
     桌子
       dynpfields = gt_values。


   读取表gt_values索引1到gwa_values中。
   如果sy-subrc = 0并且gwa_values-fieldvalue不是INITIAL。
     读表gt_list INTO gwa_list
                       WITH KEY键= gwa_values-fieldvalue。
     如果sy-subrc = 0。
       gv_selected_value = gwa_list-text。
     万一。
   万一。
 * -------------------------------------------------  ------------- *
 *初始化
 * -------------------------------------------------  ------------- *
 初始化。
   gwa_list-key ='1'。
   gwa_list-text ='产品'。
   将gwa_list附加到gt_list。
   gwa_list-key ='2'。
   gwa_list-text ='集合'。
   将gwa_list附加到gt_list。
   gwa_list-key ='3'。
   gwa_list-text ='颜色'。
   将gwa_list附加到gt_list。
   gwa_list-key ='4'。
   gwa_list-text ='计数'。
   将gwa_list附加到gt_list。


   通话功能" VRM_SET_VALUES"
     出口
       id ='LIST'
       值= gt_list
     例外情况
       id_illegal_name = 1
       其他= 2。
 * -------------------------------------------------  ------------- *
 *开始选择
 * -------------------------------------------------  ------------- *
 选择开始。
   写:/gv_selected_value。
 

AT SELECTION-SCREEN OUTPUT事件中的另一个

报告ZLISBOX。
 TYPE-POOLS:vrm。
  数据:名称TYPE vrm_id,
        列出TYPE vrm_values,
        值,例如LINE OF清单。

 参数:ps_parm(10)作为列表框的可见长度10。


 选择屏幕输出时。
   名称='PS_PARM'。  " SELECTION-SCREEN上的参数PS_PARAM
   值键=" 1"。
   value-text ='第1行'。
   将值追加到清单。

   值键='2'。
   value-text ='第2行'。
   将值追加到清单。


   通话功能" VRM_SET_VALUES"
     出口编号=名称
               值=列表。

 选择开始。
   写:/'参数:',ps_parm。
 
何必丶何苦呢
2楼-- · 2020-09-19 04:38

嗨,麦克,

请仔细查看INITIALIZATION/START-OF SELECTION事件以及如何将数据存储在参数(列表框)本身中。

关于,

一周热门 更多>