Abap 如何从列表输出中检索特定字段?
我在我的SAP系统中没有任何开发人员权限,但我找到了一种方法,可以在报告中的一个小“用户退出”框(我不知道您是否这样称呼它)中编写一些ABAP代码 我正试图提交一份人力资源报告,并将其再次插入同一份报告中 有一个语法错误告诉我Abap 如何从列表输出中检索特定字段?,abap,Abap,我在我的SAP系统中没有任何开发人员权限,但我找到了一种方法,可以在报告中的一个小“用户退出”框(我不知道您是否这样称呼它)中编写一些ABAP代码 我正试图提交一份人力资源报告,并将其再次插入同一份报告中 有一个语法错误告诉我t\u list没有名为PERNR的组件 我要怎么做才能让它工作 DATA: t_list TYPE TABLE OF abaplist WITH HEADER LINE, seltab TYPE TABLE OF rsparams, selline
t\u list
没有名为PERNR
的组件
我要怎么做才能让它工作
DATA: t_list TYPE TABLE OF abaplist WITH HEADER LINE,
seltab TYPE TABLE OF rsparams,
selline LIKE LINE OF seltab.
*I found out that the name of the selection field in the Report-GUI is "PNPPERNR" and tested it
selline-selname = 'PNPPERNR'.
selline-sign = 'I'.
selline-option = 'EQ'.
SUBMIT Y5000112
USING SELECTION-SET 'V1_TEST'
EXPORTING LIST TO MEMORY
AND RETURN.
CALL FUNCTION 'LIST_FROM_MEMORY'
TABLES
listobject = t_list
EXCEPTIONS
not_found = 1
OTHERS = 2.
IF sy-subrc <> 0.
WRITE 'Unable to get list from memory'.
ELSE.
LOOP AT t_list.
*The Problem is here: how do I get the pnppernr out of t_list, it's the first column of the report output
selline-low = t_list-pernr.
append selline to seltab.
ENDLOOP.
SUBMIT Y5000112
WITH SELECTION-TABLE seltab
USING SELECTION-SET 'V2_TEST'
AND RETURN.
ENDIF.
数据:带标题行的abaplist列表类型表,
rsparams的seltab类型表,
seltab的鞍状线。
*我发现报表GUI中选择字段的名称是“PNPPERNR”,并对其进行了测试
selline selname='PNPPERNR'。
鞍符号='I'。
selline选项='EQ'。
提交Y5000112
使用选择集“V1_测试”
将列表导出到内存
然后返回。
调用函数“从内存中列出”
桌子
listobject=t\u列表
例外情况
未找到=1
其他=2。
如果sy subrc为0。
写入“无法从内存中获取列表”。
其他的
在t_列表处循环。
*问题在于:如何从t_列表中获取pnppernr,它是报告输出的第一列
销售价格低=t_列表-销售价格。
将selline附加到seltab。
结束循环。
提交Y5000112
使用选择表seltab
使用选择集“V2_测试”
然后返回。
恩迪夫。
使用功能模块列表到ASCI
将列表的内容解码为可读内容。包含一些示例代码,包括所需的数据类型。此时,您要查找的数据可能会出现在输出中的同一列范围内。使用-e。g<代码>行+42(21)以获取所需行的部分。vwegert的答案非常有用在中,我忘了向ASCI FM:提及列表) 我唯一可以补充的是,结果行的解析没有通用的解决方案,并且在很大程度上取决于它的结构。通常是这样做的:
LOOP AT t_list.
SPLIT t_list AT '|' INTO <required_structure>.
selline-low = <required_structure>-pernr.
APPEND selline TO seltab.
ENDLOOP.
在t_列表处循环。
将“|”处的t|U列表拆分为。
selline low=-每个月。
将selline附加到seltab。
结束循环。
您的Y5000112输出结构在哪里。但这可能不是那么简单,可能需要额外的操作