如何从列表输出中检索特定字段

  • 本文关键字:检索 字段 输出 列表 abap
  • 更新时间 :
  • 英文 :


我的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.

其中是Y5000112输出结构。但这可能不是那么简单,可能需要额外的操作。

相关内容

  • 没有找到相关文章

最新更新