ABAP--如何创建动态结构的报表
2008-01-15 16:05:42
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、使用动态创建临时程序 generate subroutine pool code name prog 本文出自 51CTO.COM技术博客message msg line lin word wrd offset off.并调。 |


enjoystudy
博客统计信息
热门文章
最新评论
友情链接
