FORM data_retrieval. DATA: ld_color(1) TYPE c. DATA: BEGIN OF T_VBAP OCCURS 0, VBELN LIKE VBAP-VBELN, MATNR LIKE VBAP-MATNR, POSNR LIKE VBAP-POSNR, END OF T_VBAP.
DATA: BEGIN OF T_VBFA OCCURS 0, VBELV LIKE VBFA-VBELV, VBELN LIKE VBFA-VBELN, VBTYP_N LIKE VBFA-VBTYP_N, END OF T_VBFA. DATA: BEGIN OF T_VBAK OCCURS 0, VBELN LIKE VBAK-VBELN, IHREZ LIKE VBAK-IHREZ, END OF T_VBAK. DATA: BEGIN OF T_KNA1 OCCURS 0, KUNNR LIKE KNA1-KUNNR, NAME1 LIKE KNA1-NAME1, END OF T_KNA1. DATA: BEGIN OF T_MAKT OCCURS 0, MATNR LIKE MAKT-MATNR, MAKTX LIKE MAKT-MAKTX, END OF T_MAKT. SELECT likp~vbeln likp~lifex likp~bldat likp~wadat likp~wadat_ist likp~kodat likp~lfart likp~kunnr likp~vstel lips~posnv lips~lfimg lips~vrkme lips~lgmng lips~meins lips~werks lips~lgort lips~charg lips~vbelv lips~posnr lips~matnr lips~vbeln LIPS~VGBEL LIPS~VGPOS vbup~kosta vbup~wbsta vbup~posnr vbup~vbeln * VBAK~IHREZ VBAK~VBELN VBAP~VBELN INTO CORRESPONDING FIELDS OF TABLE it_itab FROM ( likp INNER JOIN lips ON lips~vbeln = likp~vbeln INNER JOIN vbup ON vbup~posnr = lips~posnr and VBUP~VBELN = LIPS~VBELN ) * left outer join VBAK * on VBAK~VBELN = LIPS~VGBEL * inner join VBAP * on VBAP~VBELN = VBAK~VBELN ) WHERE likp~vbeln IN so_vbeln AND likp~lifex IN so_lifex AND likp~lfart IN so_lfart AND likp~kunnr IN so_kunnr AND likp~vstel IN so_vstel AND likp~bldat IN so_bldat AND likp~wadat_ist IN so_wadat AND vbup~kosta IN so_kosta AND vbup~wbsta IN so_wbsta AND LIPS~LFIMG NE 0. SELECT VBELN IHREZ INTO TABLE T_VBAK FROM VBAK FOR ALL ENTRIES IN IT_ITAB WHERE VBELN = IT_ITAB-VGBEL. * APPEND T_VBAK. * ENDSELECT. SELECT VBELN MATNR POSNR INTO TABLE T_VBAP FROM VBAP FOR ALL ENTRIES IN IT_ITAB WHERE VBELN = IT_ITAB-VGBEL AND MATNR = IT_ITAB-MATNR AND POSNR = IT_ITAB-VGPOS. * APPEND T_VBAP. * ENDSELECT. SELECT VBELV VBELN VBTYP_N INTO TABLE T_VBFA FROM VBFA FOR ALL ENTRIES IN IT_ITAB WHERE VBELV = IT_ITAB-VBELN AND VBTYP_N = 'M' . SELECT KUNNR NAME1 INTO TABLE T_KNA1 FROM KNA1 FOR ALL ENTRIES IN IT_ITAB WHERE KUNNR = IT_ITAB-KUNNR. * APPEND T_KNA1. * ENDSELECT. SELECT MATNR MAKTX INTO TABLE T_MAKT FROM MAKT FOR ALL ENTRIES IN IT_ITAB WHERE MATNR = IT_ITAB-MATNR. * APPEND T_MAKT. * ENDSELECT. *Populate field with color attributes LOOP AT it_itab INTO wa_ITAB. * Populate color variable with colour properties * Char 1 = C (This is a color property) * Char 2 = 3 (Color codes: 1 - 7) * Char 3 = Intensified on/off ( 1 or 0 ) * Char 4 = Inverse display on/off ( 1 or 0 ) * i.e. wa_ekko-line_color = 'C410' REFRESH color. colourize 'VBELN' 0. " . WA_ITAB-farbe = color[]. ld_color = ld_color + 1. * Only 7 colours so need to reset color value IF ld_color = 3. "8 ld_color = 1. ENDIF. CONCATENATE 'C' ld_color '10' INTO wa_ITAB-line_color. WA_ITAB-NAME1 = ''. WA_ITAB-MAKTX = ''. WA_ITAB-IHREZ = ''. WA_ITAB-VBELV = ''. READ TABLE T_KNA1 WITH KEY KUNNR = WA_ITAB-KUNNR. IF SY-SUBRC = 0. WA_ITAB-NAME1 = T_KNA1-NAME1. ENDIF. READ TABLE T_MAKT WITH KEY MATNR = WA_ITAB-MATNR. IF SY-SUBRC = 0. WA_ITAB-MAKTX = T_MAKT-MAKTX. ENDIF. READ TABLE T_VBAK WITH KEY VBELN = WA_ITAB-VGBEL. IF SY-SUBRC = 0. WA_ITAB-IHREZ = T_VBAK-IHREZ. ENDIF. READ TABLE T_VBFA WITH KEY VBELV = WA_ITAB-VBELN. IF SY-SUBRC = 0. WA_ITAB-VBELVA = T_VBFA-VBELN. ENDIF. * READ TABLE T_VBAP WITH KEY VBELN = WA_ITAB-VGBEL * POSNR = WA_ITAB-VGPOS * MATNR = WA_ITAB-MATNR. * IF SY-SUBRC = 0. * WA_ITAB-IHREZ = T_VBAK-IHREZ. * ENDIF. * wa_ekko-line_color = 'C410'. MODIFY it_itab FROM wa_itab. ENDLOOP. ENDFORM. " data_retrieval
原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/18226.html