如何在abap中阅读和打印通用itab?

时间:2013-07-12 07:41:00

标签: sap abap

我对此很新。我正在学习我的工作,我有一个问题似乎无法解决。我将如何创建一个功能模块,它可以采用任何类型的内部表并将其写入屏幕?我正在寻找一种非常通用的解决方案,可以将任何类型的itab用作输入。

3 个答案:

答案 0 :(得分:6)

这是SAP开发ALV(ABAP列表查看器)的确切原因。 显示任何(非嵌套)表的最短方法之一如下。

  DATA: go_alv  TYPE REF TO cl_salv_table.

  CALL METHOD cl_salv_table=>factory
    IMPORTING
      r_salv_table = go_alv
    CHANGING
      t_table      = itab.

  go_alv->display( ).

答案 1 :(得分:1)

对于线型仅为平面数据对象的表,这是This SAP Development Guide第33页的最简单方法。

FIELD-SYMBOLS: <row> TYPE ANY,
               <comp> TYPE ANY.

LOOP AT itab INTO <row>.
  DO.
    ASSIGN COMPONENT sy-index OF STRUCTURE <row> TO <wa_comp>.
    IF sy-subrc <> 0.
      SKIP.
      EXIT.
    ENDIF.
    WRITE <wa_comp>.
  ENDDO.
ENDLOOP.

更强大的方法是使用包含运行时类型服务的内省,这是一组允许您自省数据对象详细信息的类。这将为您提供vwegert提到的详细信息。更好的选择是将其置于ALV网格中。

答案 2 :(得分:0)

这是可能的,但你必须考虑很多东西:

  • 列宽,动态调整列大小
  • 包含单位的货币字段/字段
  • 多语言环境中的日期格式
  • 表可能包含任意数据,包括嵌套表

考虑到所有事情,这不是一项微不足道的任务。最好留给existing components