用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条回答
spaceman01
2020-08-14 00:18

嗨,

请尝试下面的代码,而不是到Asci的列表

数据:gr_table TYPE REF TO data,
         gt_line TYPE REF TO数据。

 *将wa/it_final定义为必需的类型表。

   字段符号: TYPE STANDARD TABLE,
                   TYPE任意。

   cl_salv_bs_runtime_info => set(
       导出显示= abap_false
                 元数据= abap_false
                 数据= abap_true)。

 提交<程序名称>导出列表以存储并返回。

 尝试。
       cl_salv_bs_runtime_info => get_data_ref(
         正在导入r_data = gr_table)。
       ASSIGN gr_table-> *至。
     捕获cx_salv_bs_sc_runtime_info。
       消息:text-m01类型" S",显示为" E"。
       离开清单处理。
   ENDTRY。

   cl_salv_bs_runtime_info => clear_all()。
   如果已分配 []。

   万一。
 创建数据gt_line类似于的行。
   分配gt_line-> *至。

 循环至 INTO 。
 将对应的移动到wa_final。
 将wa_final附加到it_final。
 结局。





 

一周热门 更多>