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