我的SAP系统没有任何开发人员权限,但我找到了一种方法,可以在报告中一个小的"用户退出"框中编写一些ABAP代码(我不知道这是否是你所说的(。
我正在尝试提交一份人力资源报告,并将其再次插入到同一份报告中。
有一个语法错误告诉我t_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.
使用函数模块LIST_TO_ASCI
将t_list的内容解码为可读的内容。此答案包含一些示例代码,包括所需的数据类型。此时,您要查找的数据可能会出现在输出中的同一列范围内。使用标准的子字符串访问方法 - 例如 line+42(21)
获取所需的部分线路。
vwegert的回答非常有用!
在我之前的回答中,我忘了提到LIST_TO_ASCI FM :)我唯一可以补充的是,结果行的解析没有通用的解决方案,并且在很大程度上取决于其结构。通常这样做是这样的:
LOOP AT t_list.
SPLIT t_list AT '|' INTO <required_structure>.
selline-low = <required_structure>-pernr.
APPEND selline TO seltab.
ENDLOOP.
其中