ABAP--如何创建动态结构的报表
1、使用cl_alv_table_create=>create_dynamic_table
REPORT zmaschl_create_data_dynamic .
TYPE-POOLS: slis.
DATA: it_fcat TYPE slis_t_fieldcat_alv,
????? is_fcat LIKE LINE OF it_fcat.
DATA: it_fieldcat TYPE lvc_t_fcat,
????? is_fieldcat LIKE LINE OF it_fieldcat.
DATA: new_table TYPE REF TO data.
DATA: new_line? TYPE REF TO data.
FIELD-SYMBOLS: <l_table> TYPE ANY TABLE,
?????????????? <l_line>? TYPE ANY,
?????????????? <l_field> TYPE ANY.
* Build fieldcat
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
?????? EXPORTING
?????????? i_structure_name = 'SYST'
?????? CHANGING
?????????? ct_fieldcat????? = it_fcat[].
?? LOOP AT it_fcat INTO is_fcat WHERE NOT reptext_ddic IS initial.
??????? MOVE-CORRESPONDING is_fcat TO is_fieldcat.
??????? is_fieldcat-fieldname = is_fcat-fieldname.
??????? is_fieldcat-ref_field = is_fcat-fieldname.
??????? is_fieldcat-ref_table = is_fcat-ref_tabname.
??????? APPEND is_fieldcat TO it_fieldcat.
?? ENDLOOP.
* Create a new Table
CALL METHOD cl_alv_table_create=>create_dynamic_table
?????? EXPORTING
??????? it_fieldcatalog = it_fieldcat
?????? IMPORTING
??????? ep_table??????? = new_table.
* Create a new Line with the same structure of the table.
ASSIGN new_table->* TO <l_table>.
CREATE DATA new_line LIKE LINE OF <l_table>.
ASSIGN new_line->* TO <l_line>.
* Test it...
?? DO 30 TIMES.
????? ASSIGN COMPONENT 'SUBRC' OF STRUCTURE <l_line> TO <l_field>.
????? <l_field> = sy-index.
????? INSERT <l_line> INTO TABLE <l_table>.
?? ENDDO.
?? LOOP AT <l_table> ASSIGNING <l_line>.
????? ASSIGN COMPONENT 'SUBRC' OF STRUCTURE <l_line> TO <l_field>.
????? WRITE <l_field>.
?? ENDLOOP.?
2、使用動態(tài)創(chuàng)建臨時(shí)程序? generate subroutine pool code name prog
?????????????????????????? message msg
?????????????????????????? line??? lin
?????????????????????????? word??? wrd
?????????????????????????? offset? off.并調(diào)。
總結(jié)
以上是生活随笔為你收集整理的ABAP--如何创建动态结构的报表的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: abap 单元格级别的操作ALV.
- 下一篇: abap--REUSE_ALV_GRID