2013-07-12 1 views
1

Я довольно новичок в этом. В настоящее время я изучаю abap для своей работы, и у меня есть проблема, которая, похоже, не работает. Как мне приступить к созданию функционального модуля, который принимает любую внутреннюю таблицу и записывает ее на экран? Я ищу очень общее решение, которое может работать с любым типом itab в качестве входных данных.Как читать и печатать общий текст в abap?

ответ

5

Это точная причина, по которой 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(). 
+0

Еще раз спасибо, это было очень полезно. –

0

Это возможно, но вы должны думать о большом количестве вещей:

  • ширины столбцов, динамически клеящих столбцы
  • валюты поля/полей с единицами
  • даты форматирование в многоязычном среда
  • таблицы может содержать произвольные данные, в том числе вложенных таблиц

Все обстоятельства, это не тривиальная задача. Это лучше всего оставить на existing components.

1

Это был бы самый простой способ для таблицы, тип линии которой представляет собой только плоские объекты данных, взятые со страницы 33 из This SAP Development Guide.

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. 

Более надежным способом было бы использовать самоанализ, содержащий Run-Time Type Services, набор классов, которые позволяют вникать в детали объекта данных. Это даст вам подробности, упомянутые vwegert. Еще лучший вариант - разместить его в сетке ALV.

 Смежные вопросы

  • Нет связанных вопросов^_^