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
posted on 2010-04-05 23:50  yxbsmx  阅读(341)  评论(0编辑  收藏  举报