用SELECTION-TABLE和FREE SELECTIONS提交标准程序。

2020-08-13 23:53发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)大家好, 我正在开发一个程序来...

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

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


大家好,

我正在开发一个程序来自动执行CML发票过帐。

具有正常选择屏幕和动态选择的标准程序,我需要同时填写两者才能正确运行该程序。

问题是SELECTION-TABLE值正确传递,但是当我检查texpr表时,在调用的程序中它为空。

下面是我的示例代码:



ls_fields-arity =0。
ls_fields-fieldname ='SKOART'。
ls_fields-option ='EQ'。
ls_fields-low ='1105'。

APPEND ls_fields到ls_texpr-expr_tab。
ls_texpr-tablename ='VDBEPP'。
APPEND ls_texpr到texpr。


清除ls_seltab。
ls_seltab-selname =' SO_BUKRS'。
ls_seltab-kind ='S'。
ls_seltab-sign ='I'。
ls_seltab-option ='EQ'。
ls_seltab-low ='ABCD'。
* ls_seltab- 高= so_date-high。
附加ls_seltab到lt_seltab。
*
*
清除ls_seltab。
ls_seltab-selname ='SO_RANL'。
ls_seltab-kind ='S'。
ls_seltab-sign ='I'。
ls_seltab-option ='EQ'。
* ls_seltab-low ='123456'。
* ls_seltab- 高= so_date-high。
附加ls_seltab到lt_seltab。

清除ls_seltab。
ls_seltab-selname ='P_DDISPO'。
ls_seltab-kind ='P'。
ls_seltab-low ='20201211'。

附加ls_seltab到lt_seltab。
*
清除ls_seltab。
ls_seltab-selname = " P_KDATE"。
ls_seltab-kind ='P'。
* ls_seltab-sign ='I'。
* ls_seltab-option ='EQ'。
ls_seltab-low = sy-datum。
* ls_seltab-high = so_date-high。
附加ls_seltab到lt_seltab。







提交带有选择表的rfvsold2
lt_seltab
可自由选择的texpr
导出列表以存储并返回。



*
调用功能'LIST_FROM_MEMORY'
表格
listobject = list_obj
EXCEPTIONS
not_found = 1
其他=2。
*
呼叫功能'LIST_TO_ASCI'
TABLES
listasci = list_asc
listobject = list_obj
例外
empty_list = 1
list_index_invalid = 2
OTHERS = 3。

6条回答
hengyuye
2020-08-14 00:02

可以自由选择(链接到ABAP文档-变体5)仅在可执行程序具有逻辑数据库(在程序属性中定义)时才有效。

由于RFVSOLD2并非基于逻辑数据库构建,因此无效。

因此,您唯一的机会就是开发人员设计了自己的程序,以便可以传输自由选择。 而且你很幸运。 您可以这样操作:

 DATA(p_rdfi)= VALUE rsdsfields_t((tablename ='VDBEPP'fieldname ='SKOART'))。
 DATA(p_rsdt)= VALUE rsdstabs_t((prim_tab ='VDARL')(prim_tab ='VDBEPP'))。

 提交rfvsold2
   与SELECTION-TABLE lt_seltab
 *免费选择texpr
   WITH p_expr = texpr"自由选择(您已经定义的选择)
   p_ctfd = 1"计数字段
   WITH p_rdfi = p_rdfi"带有选择项的字段
   WITH p_rsdt = p_rsdt"选择表
   导出列表到内存
   并返回。

一周热门 更多>