点击(此处)折叠或打开
- REPORT zdemo02.
- DATA: dy_table TYPE REF TO data,
- dy_wa TYPE REF TO data,
- gt_com TYPE lvc_t_fcat,
- gs_com TYPE lvc_s_fcat,
- gv_col TYPE i,
- gv_fieldname TYPE lvc_fname.
- FIELD-SYMBOLS: <dyn_table> TYPE table,
- <dyn_wa> TYPE any,
- <fv> TYPE any.
- DEFINE m_add_field.
- gv_col = gv_col + 1.
- gs_com-col_pos = gv_col.
- gs_com-fieldname = &1.
- gs_com-inttype = &2.
- gs_com-intlen = &3.
- gs_com-dd_roll = &4.
- gs_com-decimals = &5.
- APPEND gs_com TO gt_com.
- CLEAR gs_com.
- END-OF-DEFINITION.
- ***添加结构字段
- DATA:BEGIN OF gs_itab,
- lifnr LIKE lfa1-lifnr,
- END OF gs_itab.
- DATA:gt_components LIKE TABLE OF rstrucinfo,
- gs_components LIKE LINE OF gt_components.
- CALL FUNCTION 'GET_COMPONENT_LIST'
- EXPORTING
- program = sy-repid
- fieldname = 'GS_ITAB'
- TABLES
- components = gt_components.
- LOOP AT gt_components INTO gs_components.
- m_add_field gs_components-compname gs_components-type
- gs_components-olen '' gs_components-decs.
- ENDLOOP.
- ***动态内表字段赋值
- m_add_field 'MATNR' '' '' 'MATNR' ''.
- m_add_field 'MAKTX' '' '' 'MAKTX' ''.
- m_add_field 'NAME1' 'CHAR' '30' '' ''.
- DO 12 TIMES.
- gv_fieldname = |MONTH{ sy-index }|.
- m_add_field gv_fieldname '' '' 'DATUM' ''.
- ENDDO.
- ***创建动态内表
- CALL METHOD cl_alv_table_create=>create_dynamic_table
- EXPORTING
- it_fieldcatalog = gt_com
- IMPORTING
- ep_table = dy_table.
- ASSIGN dy_table->* TO <dyn_table>.
- CREATE DATA dy_wa LIKE LINE OF <dyn_table>.
- ASSIGN dy_wa->* TO <dyn_wa>.
- ***动态字段赋值
- DEFINE m_add_value.
- ASSIGN COMPONENT &1 OF STRUCTURE <dyn_wa> TO <fv>.
- <fv> = &2.
- UNASSIGN <fv>.
- END-OF-DEFINITION.
- m_add_value 'MATNR' '物料编码'.
- m_add_value 'MAKTX' '物料名称'.
- m_add_value 'NAME1' 'NAME1'.
- DATA:gv_datum TYPE sy-datum.
- DO 12 TIMES.
- gv_fieldname = |MONTH{ sy-index }|.
- gv_datum = sy-datum + sy-index.
- m_add_value gv_fieldname gv_datum.
- ENDDO.
- APPEND <dyn_wa> TO <dyn_table>.
- CLEAR <dyn_wa>.
- WRITE 'Hello world'.