Application Development Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 

Hello ! Everybody

Former Member
0 Kudos

I have one report where i am printing out the partner types for one sales order. But my requirement is I have to get at least three partner types..in each line i.e SH,SP,BP.....

If Any body has SAP system with it then I can send my code

for better understandibility...to check....but its really important for me as i am under pressure

9 REPLIES 9

Former Member
0 Kudos

Hi,

SH, SP & BP are commonly used Sales Partner Types.

Do let us know your exact problem.

Regards

Eswar

0 Kudos

Hi... i am getting one partner type for each item....but i shpuld get ,,,,three partner types in each line....SP,SH,BP

Do you have the SAP system with you ?

0 Kudos

Post your code please.

Regards

Eswar

0 Kudos

In the output....under the partner type field...i am actually getting one value for the partner type.....but it should be at least three values n each line.... i.e SP,SH,BP

REPORT ZTESTBAPIJOY line-size 1000.

*TABLE DECLARATION

********************

TABLES:vbak, "Sales Document: Header Data

vbkd, "Sales Document: Business Data

vbpa, "Sales Document: Partner

vbap, "Sales Document: Item Data

adrc, "Addresses (central address admin.)

t178t, "Conditions: Groups for Materials

t188t, "Pricing groups for customers

tvm1,

tvm1t, "Material pricing group 1:Description

tvm2,

tvm2t, "Material Pricing Group 2:Description

tvm3,

tvm3t, "Material Pricing Group 3:Description

tvm4,

tvm4t, "Material Pricing Group 4:Description

tvm5,

tvm5t, "Material Pricing Group 5:Description

sza1_d0100,

tvlv , "Check table for release orders:Usage ID

tvlvt,

tvkgg, "Customer Condition Groups(Customer Master)

tvkggt,

tpar, "Business Partner: Functions

tpart,

tvaut. "Sales Documents: Order Reasons:Texts

*SELECT OPTIONS

****************

SELECT-OPTIONS s_vbeln FOR vbak-vbeln.

*CREATING INTERNAL TABLES

TYPES:BEGIN OF ty_tab,

vbeln LIKE vbak-vbeln,

vkorg LIKE vbak-vkorg,

erdat LIKE vbak-erdat,

augru LIKE vbak-augru,

bezei LIKE tvaut-bezei,

bstdk LIKE vbkd-bstdk,

bstdk_e LIKE vbkd-bstdk_e,

bstkd LIKE vbkd-bstkd,

kdkg1 LIKE vbkd-kdkg1,

konda LIKE vbkd-konda,

matnr LIKE vbap-matnr,

spart LIKE vbap-spart,

kondm LIKE vbap-kondm,

waerk LIKE vbap-waerk,

netwr LIKE vbap-netwr,

kwmeng LIKE vbap-kwmeng,

vkaus LIKE vbap-vkaus,

mvgr1 LIKE vbap-mvgr1,

mvgr2 LIKE vbap-mvgr2,

mvgr3 LIKE vbap-mvgr3,

mvgr4 LIKE vbap-mvgr4,

mvgr5 LIKE vbap-mvgr5,

kunnr LIKE vbpa-kunnr,

parvw like vbpa-parvw,

post_code1 LIKE adrc-post_code1,

po_box LIKE adrc-po_box,

name1 LIKE adrc-name1,

name2 LIKE adrc-name2,

city1 LIKE adrc-city1,

city2 LIKE adrc-city2,

country LIKE adrc-country,

street LIKE adrc-street,

str_suppl1 LIKE adrc-str_suppl1,

str_suppl2 LIKE adrc-str_suppl2,

str_suppl3 LIKE adrc-str_suppl3,

smtp_addr LIKE adr6-smtp_addr,

beze_i LIKE tvlvt-bezei,

vtext LIKE v_t178-vtext,

v_text LIKE v_t188-vtext,

bezei1 LIKE tvm1t-bezei,

bezei2 LIKE tvm2t-bezei,

bezei3 LIKE tvm3t-bezei,

bezei4 LIKE tvm4t-bezei,

bezei5 LIKE tvm5t-bezei,

vtext2 LIKE tvkggt-vtext,

END OF ty_tab.

DATA: itab TYPE STANDARD TABLE OF ty_tab WITH HEADER LINE.

DATA: BEGIN OF t_vbak OCCURS 0,

vbeln TYPE vbak-vbeln,

erdat TYPE vbak-erdat,

vkorg type vbak-vkorg,

augru TYPE vbak-augru,

kunnr TYPE vbak-kunnr,

posnr TYPE vbap-posnr,

matnr TYPE vbap-matnr,

vkaus TYPE vbap-vkaus,

spart TYPE vbap-spart,

netwr TYPE vbap-netwr,

waerk TYPE vbap-waerk,

kwmeng TYPE vbap-kwmeng,

kondm TYPE vbap-kondm,

mvgr1 TYPE vbap-mvgr1,

mvgr2 TYPE vbap-mvgr2,

mvgr3 TYPE vbap-mvgr3,

mvgr4 TYPE vbap-mvgr4,

mvgr5 TYPE vbap-mvgr5,

END OF t_vbak.

DATA:

BEGIN OF t_vbkd OCCURS 0,

vbeln TYPE vbkd-vbeln,

posnr TYPE vbkd-posnr,

konda TYPE vbkd-konda,

bstkd TYPE vbkd-bstkd,

bstdk TYPE vbkd-bstdk,

bstkd_e TYPE vbkd-bstkd_e,

bstdk_e TYPE vbkd-bstdk_e,

kdkg1 TYPE vbkd-kdkg1,

END OF t_vbkd.

DATA:

BEGIN OF t_vbpa OCCURS 0,

vbeln type vbpa-vbeln,

posnr type vbpa-posnr,

kunnr type vbpa-kunnr,

adrnr type vbpa-adrnr,

parvw type vbpa-parvw,

END OF t_vbpa.

DATA: t_adrc TYPE TABLE OF adrc WITH HEADER LINE.

DATA:

BEGIN OF t_tvm1t OCCURS 0,

mvgr1 TYPE tvm1t-mvgr1,

bezei TYPE tvm1t-bezei,

END OF t_tvm1t.

DATA:

BEGIN OF t_tvaut OCCURS 0,

augru TYPE vbak-augru,

bezei TYPE tvaut-bezei,

END OF t_tvaut.

DATA:

BEGIN OF t_tvm2t OCCURS 0,

mvgr2 TYPE tvm2t-mvgr2,

bezei TYPE tvm2t-bezei,

END OF t_tvm2t.

DATA:

BEGIN OF t_tvm3t OCCURS 0,

mvgr3 TYPE tvm3t-mvgr3,

bezei TYPE tvm3t-bezei,

END OF t_tvm3t.

DATA:

BEGIN OF t_tvm4t OCCURS 0,

mvgr4 TYPE tvm4t-mvgr4,

bezei TYPE tvm4t-bezei,

END OF t_tvm4t.

DATA:

BEGIN OF t_tvm5t OCCURS 0,

mvgr5 TYPE tvm5t-mvgr5,

bezei TYPE tvm5t-bezei,

END OF t_tvm5t.

DATA:

BEGIN OF T_ADR6 OCCURS 0,

SMTP_ADDR TYPE ADR6-SMTP_ADDR,

ADDRNUMBER TYPE ADR6-ADDRNUMBER,

END OF T_ADR6.

data:

begin of t_tvkggt occurs 0,

vtext type tvkggt-vtext,

kdkgr type tvkggt-kdkgr,

spras type tvkggt-spras,

end of t_tvkggt.

data:

begin of t_tpart occurs 0,

parvw type tpart-parvw,

vtext1 type tpart-VTEXT,

spras type tpart-spras,

end of t_tpart.

DATA:

BEGIN OF T_T178T OCCURS 0,

SPRAS TYPE T178T-SPRAS,

KONDM TYPE T178T-KONDM,

VTEXT TYPE T178T-VTEXT,

END OF T_T178T.

DATA:

BEGIN OF T_T188T OCCURS 0,

SPRAS TYPE T188T-SPRAS,

KONDA TYPE T188T-KONDA,

VTEXT TYPE T188T-VTEXT,

END OF T_T188T.

data:

begin of t_tvlvt occurs 0,

spras type tvlvt-spras,

abrvw type tvlvt-abrvw,

bezei type tvlvt-bezei,

end of t_tvlvt.

*WRITING THE QUERY

  • Sales Order details...

*break-point.

SELECT vbak~vbeln

vbak~erdat

vbak~vkorg

ABRVW

augru

kunnr

posnr

matnr

vbap~vkaus

vbap~spart

vbap~netwr

vbap~waerk

kwmeng

kondm

mvgr1

mvgr2

mvgr3

mvgr4

mvgr5

FROM vbak AS vbak INNER JOIN vbap AS vbap

ON vbak~vbeln EQ vbap~vbeln

INTO corresponding fields of TABLE t_vbak

WHERE vbak~vbeln IN s_vbeln.

  • Sales data from VBKD.

SELECT vbeln

posnr

konda

bstkd

bstdk

bstkd_e

bstdk_e

kdkg1

FROM vbkd

INTO TABLE t_vbkd

WHERE vbeln IN s_vbeln.

SELECT vbeln

posnr

kunnr

adrnr

parvw

FROM vbpa

INTO CORRESPONDING FIELDS OF TABLE t_vbpa

where vbpa~vbeln IN s_vbeln.

IF t_vbak[] IS INITIAL.

WRITE : / 'No data found'.

else.

SORT t_vbak BY vbeln.

SELECT augru bezei

FROM tvaut

INTO TABLE t_tvaut

FOR ALL ENTRIES IN t_vbak

WHERE spras EQ sy-langu

AND augru EQ t_vbak-augru.

SORT t_tvaut BY augru.

SELECT vbeln posnr kunnr adrnr parvw

FROM vbpa

INTO CORRESPONDING FIELDS OF TABLE t_vbpa

FOR ALL ENTRIES IN t_vbak

WHERE vbeln EQ t_vbak-vbeln

and posnr EQ t_vbpa-posnr.

IF sy-subrc EQ 0.

SORT t_vbpa BY vbeln posnr parvw.

SELECT *

FROM adrc

INTO TABLE t_adrc

FOR ALL ENTRIES IN t_vbpa

WHERE addrnumber EQ t_vbpa-adrnr.

SORT t_adrc BY addrnumber.

ENDIF.

select smtp_addr

from adr6

into table t_adr6

for all entries in t_vbpa

WHERE ADDRNUMBER = t_vbpa-ADRNR.

SORT T_ADR6 BY ADDRNUMBER.

SELECT mvgr1 bezei

FROM tvm1t

INTO TABLE t_tvm1t

FOR ALL ENTRIES IN t_vbak

WHERE spras EQ sy-langu

AND mvgr1 EQ t_vbak-mvgr1.

SORT t_tvm1t BY mvgr1.

SELECT mvgr2 bezei

FROM tvm2t

INTO TABLE t_tvm2t

FOR ALL ENTRIES IN t_vbak

WHERE spras EQ sy-langu

AND mvgr2 EQ t_vbak-mvgr2.

SORT t_tvm2t BY mvgr2.

SELECT mvgr3 bezei

FROM tvm3t

INTO TABLE t_tvm3t

FOR ALL ENTRIES IN t_vbak

WHERE spras EQ sy-langu

AND mvgr3 EQ t_vbak-mvgr3.

SORT t_tvm3t BY mvgr3.

SELECT mvgr4 bezei

FROM tvm4t

INTO TABLE t_tvm4t

FOR ALL ENTRIES IN t_vbak

WHERE spras EQ sy-langu

AND mvgr4 EQ t_vbak-mvgr4.

SORT t_tvm4t BY mvgr4.

SELECT mvgr5 bezei

FROM tvm5t

INTO TABLE t_tvm5t

FOR ALL ENTRIES IN t_vbak

WHERE spras EQ sy-langu

AND mvgr5 EQ t_vbak-mvgr5.

SORT t_tvm5t BY mvgr5.

SELECT SPRAS KONDM VTEXT

FROM T178T

INTO TABLE T_T178T

FOR ALL ENTRIES IN T_VBAK

WHERE SPRAS EQ SY-LANGU

AND KONDM EQ T_VBAK-KONDM.

SORT T_T178T BY KONDM.

SELECT SPRAS KONDA VTEXT

FROM T188T

INTO TABLE T_T188T

FOR ALL ENTRIES IN T_VBKD

WHERE SPRAS EQ SY-LANGU

AND KONDA EQ T_VBKD-KONDA.

SORT T_T188T BY KONDA.

LOOP AT t_vbak.

MOVE-CORRESPONDING t_vbak TO itab.

SORT t_vbkd BY vbeln posnr.

loop at t_vbkd.

READ TABLE t_vbkd WITH KEY

vbeln = t_vbak-vbeln

posnr = t_vbak-posnr

BINARY SEARCH.

endloop.

IF sy-subrc EQ 0.

MOVE-CORRESPONDING t_vbkd TO itab.

ENDIF.

READ TABLE t_tvaut WITH KEY augru = t_vbak-augru BINARY SEARCH.

itab-bezei = t_tvaut-bezei.

READ TABLE t_tvm1t WITH KEY mvgr1 = t_vbaK-mvgr1 BINARY SEARCH.

itab-bezei1 = t_tvm1t-bezei.

READ TABLE t_tvm2t WITH KEY mvgr2 = t_vbak-mvgr2 BINARY SEARCH.

itab-bezei2 = t_tvm2t-bezei.

READ TABLE t_tvm3t WITH KEY mvgr3 = t_vbak-mvgr3 BINARY SEARCH.

itab-bezei3 = t_tvm3t-bezei.

READ TABLE t_tvm4t WITH KEY mvgr4 = t_vbak-mvgr4 BINARY SEARCH.

itab-bezei4 = t_tvm4t-bezei.

READ TABLE t_tvm5t WITH KEY mvgr5 = t_vbak-mvgr5 BINARY SEARCH.

itab-bezei5 = t_tvm5t-bezei.

  • READ TABLE t_tpar WITH KEY PARVW = t_vbpa-PARVW BINARY SEARCH.

  • ITAB-NRART = T_TPAR-NRART.

  • itab-parvw = t_tpar-parvw.

READ TABLE T_T178T WITH KEY KONDM = T_VBAk-KONDM BINARY SEARCH.

ITAB-KONDM = T_T178T-KONDM.

ITAB-VTEXT = T_T178T-VTEXT.

READ TABLE T_T188T WITH KEY KONDA = T_VBKD-KONDA BINARY SEARCH.

ITAB-KONDA = T_T188T-KONDA.

ITAB-V_TEXT = T_T188T-VTEXT.

READ TABLE t_adr6 with key addrnumber = t_vbpa-adrnr binary search.

itab-smtp_addr = t_adr6-smtp_addr.

READ TABLE t_vbpa WITH KEY vbeln = t_vbak-vbeln

BINARY SEARCH.

itab-kunnr = t_vbpa-kunnr.

itab-parvw = t_vbpa-parvw.

SELECT bezei FROM TVLVT

INTO CORRESPONDING FIELDS OF TABLE T_TVLVT

WHERE ABRVW = ITAB-VKAUS.

read table t_tvlvt with key abrvw = t_tvlvt-abrvw binary search.

itab-beze_i = t_tvlvt-bezei.

SELECT vtext FROM TVKGGT

INTO CORRESPONDING FIELDS OF TABLE t_tvkggt

WHERE KDKGR = itab-kdkg1.

clear t_tvkggt.

read table t_tvkggt with key kdkgr = t_tvkggt-kdkgr binary search.

itab-vtext2 = t_tvkggt-vtext.

READ TABLE t_adrc WITH KEY addrnumber = t_vbpa-adrnr BINARY SEARCH.

if sy-subrc EQ 0.

MOVE-CORRESPONDING t_adrc TO itab.

ENDIF.

APPEND itab.

CLEAR :itab, t_tvm1t,t_tvm2t,t_tvm3t,t_tvm4t,t_tvm5t,t_adrc,t_tvaut,

t_adr6,t_t188t,t_t178t,t_tvlvt,t_vbak, t_vbpa.

ENDLOOP.

ENDIF.

*PRINTING THE OUTPUT

FORMAT COLOR COL_HEADING

.

WRITE:/

'Order-No',' ',

'Sales-Org',' ',

'Order-Date',' ',

'Purchase-Order',' ',

'Purchase-Order-Date',' ',

'Order-Reason-code',' ',

'Order-Reason description',' ',

'Partner-Type',' ',

'Partner-Type description',' ',

'Partner-no',' ',

'Partner-Name1',' ',

'Partner-Name2',' ',

'Partner-Address 1',' ',

'Partner-Address 2',' ',

'Partner-Address 3',' ',

'Partner-Address 4',' ',

'City',' ',

'DISTRICT',' ',

'Country',' ',

'Post Code',' ',

'PO BOX',' ',

'Partner-email',' ',

'Material-no',' ',

'Material-Division',' ',

'Product-Line and Edition code',' ',

'Product-Line and Edition Desc',' ',

'Product-Name code',' ',

'ProductName Desc',' ',

'Product-Version Code',' ',

'Product-Version Desc',' ',

'Product-Platform Code',' ',

'Product-platform Desc',' ',

'Product-App Server Code',' ',

'Product-App Server Desc',' ',

'Compiler-Code',' ',

'Compiler-Desc',' ',

'LanguageCode', ' ',

'LanguageDesc',' ',

'Runtime-Band Code',' ',

'Runtime-Band description',' ',

'Support-Start Date',' ',

'Support-End Date',' ',

'Support-Level Code',' ',

'Support-Level Desc',' ',

'Currency',' ',

'NetPrice',' ',

'Order-Quantity',' ',

sy-uline.

FORMAT COLOR COL_NORMAL.

LOOP AT itab.

WRITE:/

itab-vbeln UNDER 'Order-No',

itab-vkorg UNDER 'Sales-Org',' ',

itab-erdat UNDER 'Order-Date',

itab-bstkd UNDER 'Purchase-Order',

itab-bstdk UNDER 'Purchase-Order-Date',

itab-augru UNDER 'Order-Reason-code',

itab-bezei UNDER 'Order-Reason description',

itab-parvw UNDER 'Partner-Type',

itab-vtext UNDER 'Partner-Type description',

itab-kunnr UNDER 'Partner-no',

itab-name1 UNDER 'Partner-Name1',

itab-name2 UNDER 'Partner-Name2',

itab-street UNDER 'Partner-Address 1',

itab-str_suppl1 UNDER 'Partner-Address 2',

itab-str_suppl2 UNDER 'Partner-Address 3',

itab-str_suppl3 UNDER 'Partner-Address 4',

itab-city1 UNDER 'City',

itab-city2 UNDER 'DISTRICT',

itab-country UNDER 'Country',

itab-post_code1 UNDER 'Post Code',

itab-po_box UNDER 'PO BOX',

itab-smtp_addr UNDER 'Partner-email',

itab-matnr UNDER 'Material-no',

itab-spart UNDER 'Material-Division',

itab-mvgr1 UNDER 'Product-Line and Edition code',

itab-bezei1 UNDER 'Product-Line and Edition Desc',

itab-mvgr2 UNDER 'Product-Name code',

itab-bezei2 UNDER 'ProductName Desc',

itab-mvgr3 UNDER 'Product-Version Code',

itab-bezei3 UNDER 'Product-Version Desc',

itab-mvgr4 UNDER 'Product-Platform Code',

itab-bezei4 UNDER 'Product-platform Desc',

itab-mvgr5 UNDER 'Product-App Server Code',

itab-bezei5 UNDER 'Product-App Server Desc',

itab-kondm UNDER 'Compiler-Code',

itab-vtext UNDER 'Compiler-Desc',

itab-konda UNDER 'LanguageCode',

itab-v_text UNDER 'LanguageDesc',

itab-vkaus UNDER 'Runtime-Band Code',

itab-beze_i UNDER 'Runtime-Band description',

itab-bstdk UNDER 'Support-Start Date',

itab-bstdk_e UNDER 'Support-End Date',

itab-kdkg1 UNDER 'Support-Level Code',

itab-vtext2 UNDER 'Support-Level Desc',

itab-kwmeng UNDER 'Order-Quantity',

itab-netwr UNDER 'NetPrice',

itab-waerk UNDER 'Currency'.

ULINE.

ENDLOOP.

0 Kudos

Hi,

While extracting data to T_VBAK get the Item number as well.

At code Instance:

READ TABLE t_vbpa WITH KEY vbeln = t_vbak-vbeln

BINARY SEARCH.

itab-kunnr = t_vbpa-kunnr.

itab-parvw = t_vbpa-parvw.

Using read statement you get only one record, so you have to use LOOP to get the partner for each item and partner type and append accordingly.

Regards

Eswar

0 Kudos

Hey thanks for this ..I have written like this

read table t_vbpa.

loop at t_vbpa into t_vbpa.

READ TABLE t_vbpa WITH KEY kunnr = t_vbak-kunnr

BINARY SEARCH.

itab-kunnr = t_vbpa-kunnr.

itab-parvw = t_vbpa-parvw.

append t_vbpa to itab.

endloop.

but

1. entire output gets changed.....

2. PO dates are comming in a wrong way.....

3. order dates are comming in a wring way

4.only one value of partner type is comming.

Now how to solve this

0 Kudos

Can you send me the code for this part....??

0 Kudos

Can anybody help me to check this code ?

0 Kudos

Hi,

Have made few modifications, check below code.

Copy the code to a temporary program, execute and check the results... There have been more than once instance where i have changed the code, so difficult to highlight.


*TABLE DECLARATION
********************

TABLES:vbak,  "Sales Document: Header Data
       vbkd,  "Sales Document: Business Data
       vbpa,  "Sales Document: Partner
       vbap,  "Sales Document: Item Data
       adrc,  "Addresses (central address admin.)
       t178t, "Conditions: Groups for Materials
       t188t, "Pricing groups for customers
       tvm1,
       tvm1t,  "Material pricing group 1:Description
       tvm2,
       tvm2t,  "Material Pricing Group 2:Description
       tvm3,
       tvm3t,  "Material Pricing Group 3:Description
       tvm4,
       tvm4t,  "Material Pricing Group 4:Description
       tvm5,
       tvm5t,  "Material Pricing Group 5:Description
       sza1_d0100,
       tvlv ,   "Check table for release orders:Usage ID
       tvlvt,
       tvkgg,   "Customer Condition Groups(Customer Master)
       tvkggt,
       tpar,   "Business Partner: Functions
       tpart,
       tvaut.  "Sales Documents: Order Reasons:Texts

*SELECT OPTIONS
****************

SELECT-OPTIONS s_vbeln FOR vbak-vbeln.

*CREATING INTERNAL TABLES

TYPES:BEGIN OF ty_tab,
         vbeln LIKE vbak-vbeln,
         vkorg LIKE vbak-vkorg,
         erdat LIKE vbak-erdat,
         augru LIKE vbak-augru,

         bezei LIKE tvaut-bezei,

         bstdk LIKE vbkd-bstdk,
         bstdk_e LIKE vbkd-bstdk_e,
         bstkd LIKE vbkd-bstkd,
         kdkg1 LIKE vbkd-kdkg1,
         konda LIKE vbkd-konda,

         matnr LIKE vbap-matnr,
         spart LIKE vbap-spart,
         kondm LIKE vbap-kondm,
         waerk LIKE vbap-waerk,
         netwr LIKE vbap-netwr,
         kwmeng LIKE vbap-kwmeng,
         vkaus LIKE vbap-vkaus,
         mvgr1 LIKE vbap-mvgr1,
         mvgr2 LIKE vbap-mvgr2,
         mvgr3 LIKE vbap-mvgr3,
         mvgr4 LIKE vbap-mvgr4,
         mvgr5 LIKE vbap-mvgr5,

         kunnr LIKE vbpa-kunnr,
         parvw LIKE vbpa-parvw,

         post_code1 LIKE adrc-post_code1,
         po_box LIKE adrc-po_box,
         name1 LIKE adrc-name1,
         name2 LIKE adrc-name2,
         city1 LIKE adrc-city1,
         city2 LIKE adrc-city2,
         country LIKE adrc-country,
         street LIKE adrc-street,
         str_suppl1 LIKE adrc-str_suppl1,
         str_suppl2 LIKE adrc-str_suppl2,
         str_suppl3 LIKE adrc-str_suppl3,

         smtp_addr LIKE adr6-smtp_addr,

         beze_i LIKE tvlvt-bezei,

         vtext LIKE v_t178-vtext,
         v_text LIKE v_t188-vtext,

         bezei1 LIKE tvm1t-bezei,
         bezei2 LIKE tvm2t-bezei,
         bezei3 LIKE tvm3t-bezei,
         bezei4 LIKE tvm4t-bezei,
         bezei5 LIKE tvm5t-bezei,

         vtext2 LIKE tvkggt-vtext,


     END OF ty_tab.

DATA: itab TYPE STANDARD TABLE OF ty_tab WITH HEADER LINE.


DATA: BEGIN OF t_vbak OCCURS 0,
        vbeln TYPE vbak-vbeln,
        erdat TYPE vbak-erdat,
        vkorg TYPE vbak-vkorg,
        augru TYPE vbak-augru,
        kunnr TYPE vbak-kunnr,
        posnr TYPE vbap-posnr,
        matnr TYPE vbap-matnr,
        vkaus TYPE vbap-vkaus,
        spart TYPE vbap-spart,
        netwr TYPE vbap-netwr,
        waerk TYPE vbap-waerk,
        kwmeng TYPE vbap-kwmeng,
        kondm TYPE vbap-kondm,
        mvgr1 TYPE vbap-mvgr1,
        mvgr2 TYPE vbap-mvgr2,
        mvgr3 TYPE vbap-mvgr3,
        mvgr4 TYPE vbap-mvgr4,
        mvgr5 TYPE vbap-mvgr5,
  END OF t_vbak.

DATA:
  BEGIN OF t_vbkd OCCURS 0,
       vbeln TYPE vbkd-vbeln,
       posnr TYPE vbkd-posnr,
       konda TYPE vbkd-konda,
       bstkd TYPE vbkd-bstkd,
       bstdk TYPE vbkd-bstdk,
       bstkd_e TYPE vbkd-bstkd_e,
       bstdk_e TYPE vbkd-bstdk_e,
       kdkg1   TYPE vbkd-kdkg1,
  END   OF t_vbkd.
DATA:
  BEGIN OF t_vbpa OCCURS 0,
    vbeln TYPE vbpa-vbeln,
    posnr TYPE vbpa-posnr,
    kunnr TYPE vbpa-kunnr,
    adrnr TYPE vbpa-adrnr,
    parvw TYPE vbpa-parvw,
  END   OF t_vbpa.

DATA: t_adrc TYPE TABLE OF adrc WITH HEADER LINE.
DATA:
  BEGIN OF t_tvm1t OCCURS 0,
    mvgr1 TYPE tvm1t-mvgr1,
    bezei TYPE tvm1t-bezei,
  END   OF t_tvm1t.

DATA:
  BEGIN OF t_tvaut OCCURS 0,
    augru TYPE vbak-augru,
    bezei TYPE tvaut-bezei,
  END   OF t_tvaut.

DATA:
  BEGIN OF t_tvm2t OCCURS 0,
    mvgr2 TYPE tvm2t-mvgr2,
    bezei TYPE tvm2t-bezei,
  END   OF t_tvm2t.

DATA:
  BEGIN OF t_tvm3t OCCURS 0,
    mvgr3 TYPE tvm3t-mvgr3,
    bezei TYPE tvm3t-bezei,
  END   OF t_tvm3t.

DATA:
  BEGIN OF t_tvm4t OCCURS 0,
    mvgr4 TYPE tvm4t-mvgr4,
    bezei TYPE tvm4t-bezei,
  END   OF t_tvm4t.

DATA:
  BEGIN OF t_tvm5t OCCURS 0,
    mvgr5 TYPE tvm5t-mvgr5,
    bezei TYPE tvm5t-bezei,
  END OF t_tvm5t.

DATA:
    BEGIN OF t_adr6 OCCURS 0,
      smtp_addr TYPE adr6-smtp_addr,
      addrnumber TYPE adr6-addrnumber,
   END OF t_adr6.

DATA:
    BEGIN OF t_tvkggt OCCURS 0,
        vtext TYPE tvkggt-vtext,
        kdkgr TYPE tvkggt-kdkgr,
        spras TYPE tvkggt-spras,
    END OF t_tvkggt.


DATA:
     BEGIN OF t_tpart OCCURS 0,
        parvw TYPE tpart-parvw,
        vtext1 TYPE tpart-vtext,
        spras TYPE tpart-spras,
     END OF t_tpart.

DATA:
     BEGIN OF t_t178t OCCURS 0,
           spras TYPE t178t-spras,
           kondm TYPE t178t-kondm,
           vtext TYPE t178t-vtext,
     END OF t_t178t.

DATA:
    BEGIN OF t_t188t OCCURS 0,
        spras TYPE t188t-spras,
        konda TYPE t188t-konda,
        vtext TYPE t188t-vtext,
   END OF t_t188t.

DATA:
    BEGIN OF t_tvlvt OCCURS 0,
       spras TYPE tvlvt-spras,
       abrvw TYPE tvlvt-abrvw,
       bezei TYPE tvlvt-bezei,
    END OF t_tvlvt.


*WRITING THE QUERY
* Sales Order details...

*break-point.

SELECT vbak~vbeln
       vbak~erdat
       vbak~vkorg
        abrvw
        augru
        kunnr
        posnr
        matnr
        vbap~vkaus
        vbap~spart
        vbap~netwr
        vbap~waerk
        kwmeng
        kondm
        mvgr1
        mvgr2
        mvgr3
        mvgr4
        mvgr5
  FROM vbak AS vbak INNER JOIN vbap AS vbap
  ON vbak~vbeln EQ vbap~vbeln
  INTO CORRESPONDING FIELDS OF TABLE t_vbak
  WHERE vbak~vbeln IN s_vbeln.

IF  t_vbak[] IS INITIAL.

  WRITE : / 'No data found'.
ELSE.

  SORT t_vbak BY vbeln.

* Sales data from VBKD.
  SELECT vbeln
         posnr
         konda
         bstkd
         bstdk
         bstkd_e
         bstdk_e
         kdkg1
    FROM vbkd
    INTO TABLE t_vbkd
    FOR ALL ENTRIES IN t_vbak
   WHERE vbeln = t_vbak-vbeln
   AND   posnr = t_vbak-posnr.
  SORT t_vbkd BY vbeln posnr.


*  SELECT  vbeln
*          posnr
*          kunnr
*          adrnr
*          parvw
*      FROM vbpa
*      INTO CORRESPONDING FIELDS OF TABLE t_vbpa
*      WHERE vbpa~vbeln IN s_vbeln.

*  IF t_vbak[] IS INITIAL.
*    WRITE : / 'No data found'.
*  ELSE.
*    SORT t_vbak BY vbeln.

  SELECT augru bezei
    FROM tvaut
    INTO TABLE t_tvaut
     FOR ALL ENTRIES IN t_vbak
   WHERE spras EQ sy-langu
     AND augru EQ t_vbak-augru.
  SORT t_tvaut BY augru.

  SELECT  vbeln posnr kunnr adrnr parvw
    FROM vbpa
    INTO CORRESPONDING FIELDS OF TABLE t_vbpa
     FOR ALL ENTRIES IN t_vbak
   WHERE vbeln EQ t_vbak-vbeln.
*     AND posnr EQ t_vbak-posnr.
  IF sy-subrc EQ 0.
    SORT t_vbpa BY vbeln posnr parvw.

    SELECT *
      FROM adrc
      INTO TABLE t_adrc
       FOR ALL ENTRIES IN t_vbpa
     WHERE addrnumber EQ t_vbpa-adrnr.
    SORT t_adrc BY addrnumber.

    SELECT smtp_addr
     FROM adr6
     INTO TABLE t_adr6
     FOR ALL ENTRIES IN t_vbpa
     WHERE addrnumber = t_vbpa-adrnr.
    SORT t_adr6 BY addrnumber.

  ENDIF.

  SELECT mvgr1 bezei
    FROM tvm1t
    INTO TABLE t_tvm1t
     FOR ALL ENTRIES IN t_vbak
   WHERE spras EQ sy-langu
     AND mvgr1 EQ t_vbak-mvgr1.
  SORT t_tvm1t BY mvgr1.

  SELECT mvgr2 bezei
    FROM tvm2t
    INTO TABLE t_tvm2t
     FOR ALL ENTRIES IN t_vbak
   WHERE spras EQ sy-langu
     AND mvgr2 EQ t_vbak-mvgr2.
  SORT t_tvm2t BY mvgr2.

  SELECT mvgr3 bezei
    FROM tvm3t
    INTO TABLE t_tvm3t
     FOR ALL ENTRIES IN t_vbak
   WHERE spras EQ sy-langu
     AND mvgr3 EQ t_vbak-mvgr3.
  SORT t_tvm3t BY mvgr3.

  SELECT mvgr4 bezei
    FROM tvm4t
    INTO TABLE t_tvm4t
     FOR ALL ENTRIES IN t_vbak
   WHERE spras EQ sy-langu
     AND mvgr4 EQ t_vbak-mvgr4.
  SORT t_tvm4t BY mvgr4.

  SELECT mvgr5 bezei
    FROM tvm5t
    INTO TABLE t_tvm5t
     FOR ALL ENTRIES IN t_vbak
   WHERE spras EQ sy-langu
     AND mvgr5 EQ t_vbak-mvgr5.
  SORT t_tvm5t BY mvgr5.


  SELECT spras kondm vtext
    FROM t178t
    INTO TABLE t_t178t
    FOR ALL ENTRIES IN t_vbak
    WHERE spras EQ sy-langu
    AND kondm EQ t_vbak-kondm.
  SORT t_t178t BY kondm.

  SELECT spras konda vtext
    FROM t188t
    INTO TABLE t_t188t
    FOR ALL ENTRIES IN t_vbkd
    WHERE spras EQ sy-langu
    AND konda EQ t_vbkd-konda.
  SORT t_t188t BY konda.


  LOOP AT t_vbak.
    MOVE-CORRESPONDING t_vbak TO itab.

*      LOOP AT t_vbkd.
    READ TABLE t_vbkd WITH KEY
     vbeln = t_vbak-vbeln
     posnr = t_vbak-posnr
    BINARY SEARCH.
*      ENDLOOP.


    IF sy-subrc EQ 0.
      MOVE-CORRESPONDING t_vbkd TO itab.
    ENDIF.

    READ TABLE t_tvaut WITH KEY augru = t_vbak-augru BINARY SEARCH.
    itab-bezei  = t_tvaut-bezei.

    READ TABLE t_tvm1t WITH KEY mvgr1 = t_vbak-mvgr1 BINARY SEARCH.
    itab-bezei1 = t_tvm1t-bezei.

    READ TABLE t_tvm2t WITH KEY mvgr2 = t_vbak-mvgr2 BINARY SEARCH.
    itab-bezei2 = t_tvm2t-bezei.

    READ TABLE t_tvm3t WITH KEY mvgr3 = t_vbak-mvgr3 BINARY SEARCH.
    itab-bezei3 = t_tvm3t-bezei.

    READ TABLE t_tvm4t WITH KEY mvgr4 = t_vbak-mvgr4 BINARY SEARCH.
    itab-bezei4 = t_tvm4t-bezei.

    READ TABLE t_tvm5t WITH KEY mvgr5 = t_vbak-mvgr5 BINARY SEARCH.
    itab-bezei5 = t_tvm5t-bezei.

*    READ TABLE t_tpar WITH KEY PARVW = t_vbpa-PARVW BINARY SEARCH.
*    ITAB-NRART = T_TPAR-NRART.
*    itab-parvw = t_tpar-parvw.

    READ TABLE t_t178t WITH KEY kondm = t_vbak-kondm BINARY SEARCH.
    itab-kondm = t_t178t-kondm.
    itab-vtext = t_t178t-vtext.

    READ TABLE t_t188t WITH KEY konda = t_vbkd-konda BINARY SEARCH.
    itab-konda = t_t188t-konda.
    itab-v_text = t_t188t-vtext.

*     READ TABLE t_adr6 WITH KEY addrnumber = t_vbpa-adrnr BINARY SEARCH
*.
*      itab-smtp_addr = t_adr6-smtp_addr.
*
*      READ TABLE t_vbpa  WITH KEY vbeln = t_vbak-vbeln
*      BINARY SEARCH.
*      itab-kunnr = t_vbpa-kunnr.
*      itab-parvw = t_vbpa-parvw.

    SELECT bezei FROM tvlvt
    INTO CORRESPONDING FIELDS OF TABLE t_tvlvt
    WHERE abrvw = itab-vkaus.

    READ TABLE t_tvlvt WITH KEY abrvw = t_tvlvt-abrvw BINARY SEARCH.
    itab-beze_i = t_tvlvt-bezei.

    SELECT vtext FROM tvkggt
    INTO CORRESPONDING FIELDS OF TABLE t_tvkggt
    WHERE kdkgr =  itab-kdkg1.

    CLEAR t_tvkggt.
    READ TABLE t_tvkggt WITH KEY kdkgr = t_tvkggt-kdkgr BINARY SEARCH.
    itab-vtext2 =  t_tvkggt-vtext.


    READ TABLE t_vbpa WITH KEY vbeln = t_vbak-vbeln
                               posnr = t_vbak-posnr.
    IF sy-subrc EQ 0.
      LOOP AT t_vbpa WHERE vbeln = t_vbak-vbeln
                     AND posnr = t_vbak-posnr.

        itab-kunnr = t_vbpa-kunnr.
        itab-parvw = t_vbpa-parvw.
        READ TABLE t_adrc WITH KEY addrnumber = t_vbpa-adrnr
             BINARY SEARCH.
        MOVE-CORRESPONDING t_adrc TO itab.
        READ TABLE t_adr6 WITH KEY addrnumber = t_vbpa-adrnr
             BINARY SEARCH.
        itab-smtp_addr = t_adr6-smtp_addr.

      ENDLOOP.
    ELSE.
      LOOP AT t_vbpa WHERE vbeln = t_vbak-vbeln.

        CLEAR: t_adrc, t_adr6.
        itab-kunnr = t_vbpa-kunnr.
        itab-parvw = t_vbpa-parvw.
        READ TABLE t_adrc WITH KEY addrnumber = t_vbpa-adrnr
             BINARY SEARCH.
        MOVE-CORRESPONDING t_adrc TO itab.
        READ TABLE t_adr6 WITH KEY addrnumber = t_vbpa-adrnr
             BINARY SEARCH.
        itab-smtp_addr = t_adr6-smtp_addr.
        APPEND itab.

      ENDLOOP.
    ENDIF.


    CLEAR :itab, t_tvm1t, t_tvm2t, t_tvm3t, t_tvm4t, t_tvm5t, t_adrc,
           t_tvaut, t_adr6, t_t188t, t_t178t, t_tvlvt, t_vbak, t_vbpa.

  ENDLOOP.
ENDIF.




*PRINTING THE OUTPUT
FORMAT COLOR COL_HEADING
.
WRITE:/
 'Order-No',' ',
 'Sales-Org',' ',
 'Order-Date',' ',
 'Purchase-Order','      ',
 'Purchase-Order-Date',' ',
 'Order-Reason-code',' ',
 'Order-Reason description',' ',
 'Partner-Type',' ',
 'Partner-Type description',' ',
 'Partner-no',' ',
 'Partner-Name1','                    ',
 'Partner-Name2','                    ',
 'Partner-Address 1','        ',
 'Partner-Address 2','        ',
 'Partner-Address 3','        ',
 'Partner-Address 4','        ',
 'City','          ',
 'DISTRICT','    ',
 'Country','    ',
 'Post Code',' ',
 'PO BOX',' ',
 'Partner-email','                    ',
 'Material-no',' ',
 'Material-Division',' ',
 'Product-Line and Edition code',' ',
 'Product-Line and Edition Desc',' ',
 'Product-Name code',' ',
 'ProductName Desc',' ',
 'Product-Version Code',' ',
 'Product-Version Desc',' ',
 'Product-Platform Code',' ',
 'Product-platform Desc',' ',
 'Product-App Server Code',' ',
 'Product-App Server Desc',' ',
 'Compiler-Code','   ',
 'Compiler-Desc','      ',
 'LanguageCode', ' ',
 'LanguageDesc',' ',
 'Runtime-Band Code',' ',
 'Runtime-Band description',' ',
 'Support-Start Date',' ',
 'Support-End Date',' ',
 'Support-Level Code','    ',
 'Support-Level Desc','  ',
 'Currency',' ',
 'NetPrice',' ',
 'Order-Quantity',' ',
sy-uline.

FORMAT COLOR COL_NORMAL.

LOOP AT itab.
  WRITE:/
  itab-vbeln         UNDER         'Order-No',
  itab-vkorg         UNDER         'Sales-Org','      ',
  itab-erdat         UNDER         'Order-Date',
  itab-bstkd         UNDER         'Purchase-Order',
  itab-bstdk         UNDER         'Purchase-Order-Date',
  itab-augru         UNDER         'Order-Reason-code',
  itab-bezei         UNDER         'Order-Reason description',
  itab-parvw         UNDER         'Partner-Type',
  itab-vtext         UNDER         'Partner-Type description',
  itab-kunnr         UNDER         'Partner-no',
  itab-name1         UNDER         'Partner-Name1',
  itab-name2         UNDER         'Partner-Name2',
  itab-street        UNDER         'Partner-Address 1',
  itab-str_suppl1    UNDER         'Partner-Address 2',
  itab-str_suppl2    UNDER         'Partner-Address 3',
  itab-str_suppl3    UNDER         'Partner-Address 4',
  itab-city1         UNDER         'City',
  itab-city2         UNDER         'DISTRICT',
  itab-country       UNDER         'Country',
  itab-post_code1    UNDER         'Post Code',
  itab-po_box        UNDER         'PO BOX',
  itab-smtp_addr     UNDER         'Partner-email',
  itab-matnr         UNDER         'Material-no',
  itab-spart         UNDER         'Material-Division',
  itab-mvgr1         UNDER         'Product-Line and Edition code',
  itab-bezei1        UNDER         'Product-Line and Edition Desc',
  itab-mvgr2         UNDER         'Product-Name code',
  itab-bezei2        UNDER         'ProductName Desc',
  itab-mvgr3         UNDER         'Product-Version Code',
  itab-bezei3        UNDER         'Product-Version Desc',
  itab-mvgr4         UNDER         'Product-Platform Code',
  itab-bezei4        UNDER         'Product-platform Desc',
  itab-mvgr5         UNDER         'Product-App Server Code',
  itab-bezei5        UNDER         'Product-App Server Desc',
  itab-kondm         UNDER         'Compiler-Code',
  itab-vtext         UNDER         'Compiler-Desc',
  itab-konda         UNDER         'LanguageCode',
  itab-v_text        UNDER         'LanguageDesc',
  itab-vkaus         UNDER         'Runtime-Band Code',
  itab-beze_i        UNDER         'Runtime-Band description',
  itab-bstdk         UNDER         'Support-Start Date',
  itab-bstdk_e       UNDER         'Support-End Date',
  itab-kdkg1         UNDER         'Support-Level Code',
  itab-vtext2        UNDER         'Support-Level Desc',
  itab-kwmeng        UNDER         'Order-Quantity',
  itab-netwr         UNDER         'NetPrice',
  itab-waerk         UNDER         'Currency'.
  ULINE.
ENDLOOP.

Regards

Eswar