为适用特性的不同,采用动态字段名的形式导出ALV,字段定义省略
动态字段名的字段类型定义为feld-name.
LOOP AT lt_dq.
SPLIT lt_dq-beizhu AT '/' INTO lt_dq-vbeln2 lt_dq-posnr2.
PERFORM frm_alpha_input USING lt_dq-vbeln2.
PERFORM frm_alpha_input USING lt_dq-posnr2.
IF lt_dq-aufnr <> ''.
SELECT SINGLE matnr INTO s_matnr
FROM afpo
WHERE aufnr = lt_dq-aufnr.
IF s_matnr <> ''.
lt_dq-matnr = s_matnr.
ENDIF.
ENDIF.
SELECT SINGLE maktx INTO lt_dq-maktx
FROM makt
WHERE matnr = lt_dq-matnr.
SELECT SINGLE ftrmi INTO lt_dq-ftrmi
FROM afko
WHERE aufnr = lt_dq-aufnr.
SELECT SINGLE cuobj INTO lt_dq-cuobj2
FROM vbap
WHERE vbeln = lt_dq-vbeln2
AND posnr = lt_dq-posnr2.
REFRESH: itab1,itab11.
CLEAR: itab1,itab11.
IF yxklcs = ''.
cuobj1 = lt_dq-cuobj."新里程
cuobj2 = lt_dq-cuobj2."康力
ELSE.
cuobj1 = lt_dq-cuobj2."康力
cuobj2 = lt_dq-cuobj."新里程
ENDIF.
IF cuobj1 <> space.
CALL FUNCTION 'VC_I_GET_CONFIGURATION'
EXPORTING
instance = cuobj1
language = sy-langu
TABLES
configuration = itab1.
IF cuobj2 <> space.
CALL FUNCTION 'VC_I_GET_CONFIGURATION'
EXPORTING
instance = cuobj2
language = sy-langu
TABLES
configuration = itab11.
ENDIF.
atwtbnum = '00'.
atnamnum = '00'.
LOOP AT itab1.
l_num = atnamnum.
IF l_num < '51'.
IF l_num < '10'.
CONCATENATE '0' atnamnum INTO atnamnum.
ENDIF.
READ TABLE lt_atnam WITH KEY num = atnamnum.
IF sy-subrc NE 0.
lt_atnam-num = atnamnum.
lt_atnam-atnam = itab1-atnam.
lt_atnam-atbez = itab1-atbez.
APPEND lt_atnam.
atwtbnum = atnamnum.
CONCATENATE 'LT_DQ-ATWTB' atwtbnum INTO fn_atwtb.
ASSIGN (fn_atwtb) TO <atwtb>.
<atwtb> = itab1-atwtb.
atnamnum = atnamnum + 1.
ELSE.
IF <atnam> = itab1-atnam.
atwtbnum = atnamnum.
CONCATENATE 'LT_DQ-ATWTB' atwtbnum INTO fn_atwtb.
ASSIGN (fn_atwtb) TO <atwtb>.
<atwtb> = itab1-atwtb.
ENDIF.
atnamnum = atnamnum + 1.
ENDIF.
ELSE.
EXIT.
ENDIF.
ENDLOOP.
LOOP AT itab11.
l_num = atnamnum.
IF l_num < '51'.
IF l_num < '10'.
CONCATENATE '0' atnamnum INTO atnamnum.
ENDIF.
READ TABLE lt_atnam WITH KEY num = atnamnum.
IF sy-subrc NE 0.
lt_atnam-num = atnamnum.
lt_atnam-atnam = itab1-atnam.
lt_atnam-atbez = itab1-atbez.
APPEND lt_atnam.
atwtbnum = atnamnum.
CONCATENATE 'LT_DQ-ATWTB' atwtbnum INTO fn_atwtb.
ASSIGN (fn_atwtb) TO <atwtb>.
<atwtb> = itab1-atwtb.
atnamnum = atnamnum + 1.
ELSE.
IF <atnam> = itab1-atnam.
atwtbnum = atnamnum.
CONCATENATE 'LT_DQ-ATWTB' atwtbnum INTO fn_atwtb.
ASSIGN (fn_atwtb) TO <atwtb>.
<atwtb> = itab1-atwtb.
ENDIF.
atnamnum = atnamnum + 1.
ENDIF.
ELSE.
EXIT.
ENDIF.
ENDLOOP.
ENDIF.
MODIFY lt_dq.
ENDLOOP.