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

我在我的SAP系统中没有任何开发人员权限,但我找到了一种方法,可以在报告中的一个小“用户退出”框(我不知道您是否这样称呼它)中编写一些ABAP代码

我正试图提交一份人力资源报告,并将其再次插入同一份报告中

有一个语法错误告诉我
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输出结构在哪里。但这可能不是那么简单,可能需要额外的操作