一、字段显示
    动态抬头 - 图1
    * 动态日期标题设置 PERFORM frm_set_dynamic_date.

    * 创建动态内表 PERFORM frm_set_dynamic_table.

    1**
    动态抬头 - 图2
    一行例子:**
    LOOP AT it_month INTO lw_month. CLEAR:lv_lbkum,lv_stprs,lv_pvprs,lv_peinh,lv_lbkum_name, lv_stprs_name,lv_pvprs_name,lv_peinh_name. CONCATENATE lw_month-month+0(4) ‘年’ lw_month-month+5(2) ‘月’ ‘库存’ INTO lv_lbkum.

    CONCATENATE lw_month-month ‘_LBKUM’ INTO lv_lbkum_name.

    1. PERFORM frm_set_dynamic_fieldcat USING lv_lbkum_name lv_lbkum lv_tabix 18.
    2. CLEAR:lw_month. ENDLOOP.

    2、
    FORM frmset_dynamic_table. CLEAR :dy_table. CALL METHOD cl_alv_table_create=>create_dynamic_table
    EXPORTING it_fieldcatalog = it_fieldcat
    IMPORTING ep_table = dy_table. ASSIGN dy_table-> TO . CREATE DATA dy_line LIKE LINE OF . ASSIGN dy_line-> TO . IF IS ASSIGNED. CLEAR . ENDIF.
    ENDFORM.
    “ FRMSET_DYNAMIC_TABLE

    3、
    FORM frmset_dynamic_fieldcat USING p_name TYPE string
    p_text TYPE string
    p_tabix TYPE sy-tabix
    p_outputlen TYPE dd03p-outputlen. DATA: lw_fieldcat LIKE LINE OF it_fieldcat. CLEAR: lw_fieldcat. lw_fieldcat-fieldname = p_name. lw_fieldcat-scrtext_l = p_text. lw_fieldcat-scrtext_s = p_text. lw_fieldcat-scrtext_m = p_text. lw_fieldcat-datatype = ‘QUAN’. lw_fieldcat-inttype = ‘P’. lw_fieldcat-intlen = ‘13’. lw_fieldcat-decimals = ‘2’. lw_fieldcat-outputlen = p_outputlen. lw_fieldcat-no_zero = ‘X’.
    “pzero.去掉显示的前导零 INSERT lwfieldcat INTO it_fieldcat INDEX p_tabix. p_tabix = p_tabix + 1.
    ENDFORM.
    “ FRMSET_DYNAMIC_FIELDCAT

    1. 数据显示

    动态抬头 - 图3
    * 对动态内表进行赋值 PERFORM frm_move_data.

    动态抬头 - 图4
    动态抬头 - 图5

    动态抬头 - 图6

    LOOP AT itdata INTO lw_data_c. MOVE lw_data_c TO lw_data.
    *- 库存_ CONCATENATE lw_data-bdatj lw_data-poper ‘_LBKUM’ INTO lv_lbkum. ASSIGN COMPONENT lv_lbkum OF STRUCTURE TO . IF sy-subrc = 0. = lw_data-lbkum. ENDIF.

    1. MODIFY <dyn_table> FROM <dyn_wa> INDEX lv_index. CLEAR: lw_data_c,lw_data,lw_data,lv_lbkum,lv_stprs,lv_pvprs,lv_peinh. ENDLOOP.