显示内部表?

时间:2019-08-30 09:52:40

标签: sap abap

我必须从表中读取一些数据并显示它。该程序启动,但是我不知道如何显示我选择的任何数据。我想把它摆成桌子。

老实说,我什至不知道以下代码是否正确。

REPORT ZT_THIEMANN_TEST.

types : begin of ts_output,
          object_id  type CRMD_ORDERADM_H-object_id,
          created_by type CRMD_ORDERADM_H-created_by,
        end of ts_output,
        tt_output type table of ts_output.

PARAMETERS Mel_Nr TYPE CRMD_ORDERADM_H-Object_ID obligatory.

data gt_output type tt_output.

START-OF-SELECTION.

SELECT cm~object_id cm~created_by
from CRMD_ORDERADM_H as cm
into corresponding fields of table gt_output
where cm~object_id like Mel_Nr.

2 个答案:

答案 0 :(得分:4)

正如Sandra所说,您可以使用调试器检查代码/选择是否有效。

您可以用不同的方式输出数据,但是最简单的方法是使用类CL_SALV_TABLE。在不添加任何其他功能(例如标题,工具栏按钮,排序,热点等)的情况下,下面的代码是如何使用oo alv网格显示数据的方法。

...

DATA: go_alv       TYPE REF TO  cl_salv_table,
      gx_salv_msg  TYPE REF TO  cx_salv_msg.

...

  TRY.
      cl_salv_table=>factory(
      IMPORTING
        r_salv_table = go_alv
      CHANGING
        t_table = gt_output ).
    CATCH cx_salv_msg INTO gx_salv_msg.
      MESSAGE 'error' TYPE 'E'.
  ENDTRY.

  go_alv->display( ).

答案 1 :(得分:2)

如果您需要一个真正的单行代码,只需使用ABAP演示输出标准类cl_demo_output即可处理任何类型,包括内部表:

SELECT *
   FROM scarr
   INTO TABLE @DATA(carriers).

cl_demo_output=>display( carriers ).