Application Development and Automation 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: 
Read only

ALV

Former Member
0 Likes
1,598

Hi all,

i am writing an alv report in which i should display 15 columns.the final internal table has data for all the 15 columns.when i see the output grid display i could see only 10 columns.i am using the standard function modules for alv.can anyone tell me solution?

points guaranteed

thanks

sandeep

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
1,562

Hi,

Can you please post your code ?

Regards,

Daniel.

17 REPLIES 17
Read only

Former Member
0 Likes
1,563

Hi,

Can you please post your code ?

Regards,

Daniel.

Read only

0 Likes
1,562

Hi all

here is my code

----


*& Report ZSALESORDERSTATUS

*&

&----


*&

*&

&----


REPORT zsalesorderstatus MESSAGE-ID 00.

TYPE-POOLS: SLIS.

TABLES:mara,

kna1,

vbak,

ekko,

likp,

vttp,

t001w,

vbpa,

vbep,

vbkd.

DATA: ST_EBELP TYPE STRING.

  • order header IT declaration

DATA:BEGIN OF it_vbak OCCURS 0,

vbeln LIKE vbak-vbeln,

erdat LIKE vbak-erdat,

bstnk LIKE vbak-bstnk,

kunnr LIKE vbak-kunnr,

vdatu LIKE VBAK-VDATU,

END OF it_vbak.

  • order items IT declaration

DATA : BEGIN OF it_vbap OCCURS 0,

vbeln LIKE vbap-vbeln,

posnr LIKE vbap-posnr,

matnr LIKE vbap-matnr,

erdat LIKE vbap-erdat,

kwmeng LIKE vbap-kwmeng,

werks LIKE vbap-werks,

END OF it_vbap.

  • material description,stock IT declaration

DATA:BEGIN OF it_makt OCCURS 0,

matnr LIKE makt-matnr,

maktx LIKE makt-maktx,

labst LIKE mard-labst,

werks LIKE mard-werks,

END OF it_makt.

  • material description,stock IT declaration1

DATA:BEGIN OF it_makt1 OCCURS 0,

matnr LIKE makt-matnr,

maktx LIKE makt-maktx,

END OF it_makt1.

  • material description,stock IT declaration1

DATA:BEGIN OF it_mard OCCURS 0,

matnr like mard-matnr,

werks LIKE mard-werks,

lgort like mard-lgort,

labst LIKE mard-labst,

END OF it_mard.

  • delivery header IT declaration

DATA : BEGIN OF it_likp OCCURS 0,

vbeln LIKE likp-vbeln,

erdat LIKE likp-erdat,

lfdat LIKE likp-lfdat,

kunnr LIKE likp-kunnr,

lfart LIKE likp-lfart,

END OF it_likp.

  • delivery items IT declaration

DATA: BEGIN OF it_lips OCCURS 0,

vbeln TYPE lips-vbeln,

matnr TYPE lips-matnr,

lfimg TYPE lips-lfimg,

vgbel TYPE lips-vgbel,

VGPOS TYPE LIPS-VGPOS,

werks LIKE lips-werks,

END OF it_lips.

  • shipment table IT declaration

DATA: BEGIN OF IT_VBEP OCCURS 0,

VBELN LIKE VBEP-VBELN,

  • POSNR LIKE VBEP-POSNR,

LDDAT LIKE VBEP-LDDAT,

END OF IT_VBEP.

*DATA : BEGIN OF it_vttp OCCURS 0,

  • tknum LIKE vttp-tknum,

  • erdat LIKE vttp-erdat,

  • vbeln LIKE vttp-vbeln,

  • END OF it_vttp.

  • Invoice header IT declaration

DATA : BEGIN OF it_vbrk OCCURS 0,

vbeln LIKE vbrk-vbeln,

vkorg LIKE vbrk-vkorg,

vtweg LIKE vbrk-vtweg,

kunag LIKE vbrk-kunag,

fkdat LIKE vbrk-fkdat,

knumv LIKE vbrk-knumv,

END OF it_vbrk.

  • Invoice lines IT declaration

DATA : BEGIN OF it_vbrp OCCURS 0,

vbeln LIKE vbrp-vbeln,

posnr LIKE vbrp-posnr,

matnr LIKE vbrp-matnr,

arktx LIKE vbrp-arktx,

fkimg LIKE vbrp-fkimg,

vgbel LIKE vbrp-vgbel,

vgpos LIKE vbrp-vgpos,

aubel LIKE vbrp-aubel,

aupos LIKE vbrp-aupos,

netwr LIKE vbrp-netwr,

werks LIKE vbrp-werks,

END OF it_vbrp.

  • Sales Document Status IT declaration

DATA: BEGIN OF it_vbuk OCCURS 0,

vbeln TYPE vbuk-vbeln,

gbstk TYPE vbuk-gbstk,

lfstk TYPE vbuk-lfstk,

cmgst TYPE vbuk-cmgst,

END OF it_vbuk.

DATA: BEGIN OF it_vbup OCCURS 0,

vbeln TYPE vbup-vbeln,

kosta TYPE vbup-kosta,

wbstk TYPE vbuk-wbstk,

END OF it_vbup.

  • Sales Document Status IT declaration

DATA: BEGIN OF it_tvbst OCCURS 0,

spras TYPE tvbst-spras,

tbnam TYPE tvbst-tbnam,

fdnam TYPE tvbst-fdnam,

statu TYPE tvbst-statu,

bezei TYPE tvbst-bezei,

END OF it_tvbst.

  • Customer IT declaration

DATA : BEGIN OF it_kna1 OCCURS 0,

kunnr LIKE kna1-kunnr,

land1 LIKE kna1-land1,

name1 LIKE kna1-name1,

stras LIKE kna1-stras,

regio LIKE kna1-regio,

ort01 LIKE kna1-ort01,

END OF it_kna1.

  • Ship to party IT declaration

DATA : BEGIN OF it_vbpa OCCURS 0,

vbeln LIKE vbpa-vbeln,

posnr LIKE vbpa-posnr,

parvw LIKE vbpa-parvw,

kunnr LIKE vbpa-kunnr,

lifnr LIKE vbpa-lifnr,

END OF it_vbpa.

*text for state

DATA: BEGIN OF it_t005u OCCURS 0,

spras LIKE t005u-spras,

land1 LIKE t005u-land1,

bland LIKE t005u-bland,

bezei LIKE t005u-bezei,

END OF it_t005u.

*IT FOR PO

DATA: BEGIN OF it_ekko OCCURS 0,

ebeln LIKE ekko-ebeln,

bsart like ekko-bsart,

kunnr LIKE ekko-kunnr,

statu LIKE ekko-statu,

werks like ekpo-werks,

END OF it_ekko.

  • IT for PO Items

DATA: BEGIN OF it_ekpo occurs 0,

ebeln like ekpo-ebeln,

ebelp like ekpo-ebelp,

matnr like ekpo-matnr,

werks like ekpo-werks,

menge like ekpo-menge,

eindt like eket-eindt,

End of it_ekpo.

  • plant IT declaration

DATA : BEGIN OF it_t001w OCCURS 0,

werks LIKE t001w-werks,

name1 LIKE t001w-name1,

stras LIKE t001w-stras,

regio LIKE t001w-regio,

ort01 LIKE t001w-ort01,

END OF it_t001w.

  • final table IT declaration

DATA: BEGIN OF it_final OCCURS 0,

matnr LIKE vbap-matnr,

maktx LIKE makt-maktx,

kunnr LIKE kna1-kunnr,

name1 LIKE kna1-name1,

stras LIKE kna1-stras,

regio LIKE t005u-bezei,

ort01 LIKE kna1-ort01,

bstnk LIKE vbak-bstnk,

vbelns LIKE vbak-vbeln,

kwmeng LIKE vbap-kwmeng,

vbelnd LIKE likp-vbeln,

  • lfdat like likp-lfdat,

VDATU LIKE VBAK-VDATU,

LDDAT LIKE VBEP-LDDAT,

  • tknum LIKE vttp-tknum,

  • erdat LIKE vttp-erdat,

werks LIKE vbap-werks,

labst LIKE mard-labst,

gbezei TYPE tvbst-bezei,

  • gbstk TYPE vbuk-gbstk,

lbezei TYPE tvbst-bezei,

  • lfstk TYPE vbuk-lfstk,

cbezei TYPE tvbst-bezei,

  • cmgst TYPE vbuk-cmgst,

pickst TYPE tvbst-bezei,

pgist TYPE tvbst-bezei,

END OF it_final.

DATA: ok_code TYPE ok_code,

g_repid LIKE sy-repid,

gs_prnt TYPE lvc_s_prnt,

gt_fieldcat TYPE lvc_t_fcat WITH HEADER LINE,

gt_sort TYPE lvc_t_sort WITH HEADER LINE,

custom_container1 TYPE REF TO cl_gui_container,

grid1 TYPE REF TO cl_gui_alv_grid,

cc TYPE scrfname,

it_toolbar_excluding TYPE ui_functions,

gs_layout TYPE lvc_s_layo.

DATA p_plant LIKE kna1-werks.

*selection-screens.

SELECTION-SCREEN: BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.

SELECTION-SCREEN SKIP 2.

SELECTION-SCREEN BEGIN OF LINE.

SELECTION-SCREEN POSITION 16.

SELECTION-SCREEN COMMENT 5(15) FOR FIELD so.

PARAMETERS: so RADIOBUTTON GROUP rad1 USER-COMMAND fcode.

SELECTION-SCREEN POSITION 45.

SELECTION-SCREEN COMMENT 25(20) FOR FIELD sto.

PARAMETERS: sto RADIOBUTTON GROUP rad1 .

SELECTION-SCREEN END OF LINE.

SELECTION-SCREEN SKIP 1.

SELECT-OPTIONS: s_matnr FOR mara-matnr,

s_kunnr FOR kna1-kunnr,

s_vbeln FOR vbak-vbeln MODIF ID a1,

s_vbel FOR ekko-ebeln MODIF ID a2,

s_vbeld for likp-vbeln,

  • s_vbels for vttp-tknum,

s_date FOR vbkd-bstdk,

s_plant FOR kna1-werks obligatory.

SELECTION-SCREEN: END OF BLOCK b1.

AT SELECTION-SCREEN OUTPUT.

LOOP AT SCREEN.

IF sto = 'X' .

IF screen-group1 = 'A1'.

screen-active = 0.

MODIFY SCREEN.

ENDIF.

ELSE.

IF screen-group1 = 'A2'.

screen-active = 0.

MODIFY SCREEN.

ENDIF.

ENDIF.

ENDLOOP.

START-OF-SELECTION.

select single werks from t001w into (t001w-werks)

where werks in s_plant.

if sy-subrc ne 0.

MESSAGE S208 WITH 'Plant does not exist.Please change your selection'.

stop.

endif.

IF NOT S_KUNNR IS INITIAL.

select single kunnr from vbpa into (vbpa-kunnr)

where kunnr in s_kunnr

and parvw = 'WE'.

if sy-subrc ne 0.

MESSAGE S208 WITH

'Ship to party does not exist.Please change your selection'.

stop.

endif.

ENDIF.

IF so = 'X'.

IF s_kunnr IS INITIAL.

*select for order item

SELECT vbeln posnr matnr erdat kwmeng werks

FROM vbap INTO TABLE it_vbap

WHERE vbeln IN s_vbeln

AND matnr IN s_matnr

AND erdat IN s_date

AND WERKS IN S_PLANT.

IF sy-subrc NE 0.

MESSAGE S208 WITH 'No data exist for your selection' .

stop.

ENDIF.

*select for orderheader

SELECT vbeln erdat bstnk kunnr VDATU FROM vbak INTO TABLE it_vbak

for all entries in it_vbap

WHERE vbeln = it_vbap-vbeln.

  • Select for partner details

SELECT vbeln posnr parvw kunnr lifnr FROM vbpa INTO TABLE

it_vbpa

FOR ALL ENTRIES IN it_vbak

WHERE vbeln = it_vbak-vbeln

AND kunnr IN s_kunnr

AND parvw = 'WE'.

ELSE.

  • Select for partner details

SELECT vbeln posnr parvw kunnr lifnr FROM vbpa INTO TABLE

it_vbpa

WHERE kunnr IN s_kunnr

AND parvw = 'WE'.

IF sy-subrc NE 0.

MESSAGE S208 WITH 'No data exist for your selection' .

STOP.

ENDIF.

*select for order item

SELECT vbeln posnr matnr erdat kwmeng werks

FROM vbap INTO TABLE it_vbap

FOR ALL ENTRIES IN it_vbpa

WHERE vbeln = it_vbpa-vbeln

AND matnr IN s_matnr

AND erdat IN s_date

AND WERKS IN S_PLANT.

IF sy-subrc NE 0.

MESSAGE S208 WITH 'No data exist for your selection' .

stop.

ENDIF.

*select for orderheader

SELECT vbeln erdat bstnk kunnr VDATU FROM vbak INTO TABLE it_vbak

FOR ALL ENTRIES IN it_vbpa

WHERE vbeln = it_vbpa-vbeln.

  • AND WHERE KUNNR = IT_VBPA-KUNNR. "VINOD

IF sy-subrc NE 0.

MESSAGE S208 WITH 'No data exist for your selection' .

stop.

ENDIF.

ENDIF.

*select customer details.

*{INSERT CHANGES BY VINOD

.

SELECT kunnr land1 name1 stras regio ort01 FROM kna1 INTO TABLE

it_kna1

FOR ALL ENTRIES IN it_vbPA "IT_VBAK

WHERE kunnr = it_vbPA-kunnr.

*{END OF INSERT

  • Select for plant and stock

SELECT matnr maktx from makt INTO TABLE it_makt1

FOR ALL ENTRIES IN it_vbap

WHERE matnr EQ it_vbap-matnr

AND spras EQ sy-langu.

select matnr werks lgort labst from mard into table it_mard

for all entries in it_vbap

WHERE matnr EQ it_vbap-matnr

and lgort = 'FG01'

AND werks = it_vbap-werks.

LOOP AT it_mard.

read table it_makt1 with key matnr = it_mard-matnr.

MOVE it_mard-matnr to it_makt-matnr.

MOVE it_makt1-maktx to it_makt-maktx.

MOVE it_mard-labst to it_makt-labst.

MOVE it_mard-werks to it_makt-werks.

COLLECT it_makt.

ENDLOOP.

  • Select for delivery items

SELECT vbeln matnr lfimg vgbel VGPOS werks FROM lips INTO TABLE

it_lips

FOR ALL ENTRIES IN it_vbak

WHERE vgbel = it_vbak-vbeln

and vbeln in s_vbeld.

  • Select for delivery header

SELECT vbeln erdat lfdat lfart kunnr FROM likp INTO TABLE it_likp

FOR ALL ENTRIES IN it_lips

WHERE vbeln = it_lips-vbeln.

  • Select for shipping items

  • SELECT tknum erdat vbeln FROM vttp INTO TABLE it_vttp

  • FOR ALL ENTRIES IN it_likp

  • WHERE vbeln = it_likp-vbeln

  • and tknum in s_vbels.

SELECT VBELN

  • POSNR

LDDAT

FROM VBEP INTO TABLE IT_VBEP

FOR ALL ENTRIES IN IT_VBAP

WHERE VBELN = IT_VBAP-VBELN.

  • AND POSNR = IT_VBAP-POSNR. "LIKP

*select for order status

SELECT vbeln gbstk lfstk cmgst FROM vbuk INTO TABLE it_vbuk

FOR ALL ENTRIES IN it_vbak

WHERE vbeln = it_vbak-vbeln.

*select for delivery status

SELECT avbeln akosta b~wbstk

INTO TABLE it_vbup

FROM vbup AS a INNER JOIN vbuk AS b

ON avbeln EQ bvbeln

FOR ALL ENTRIES IN it_likp

WHERE a~vbeln EQ it_likp-vbeln.

*select for text

SELECT spras

tbnam

fdnam

statu

bezei

FROM tvbst INTO TABLE it_tvbst

WHERE spras EQ sy-langu

AND tbnam EQ 'VBUK' OR tbnam EQ 'VBUP'

AND fdnam EQ 'GBSTK' OR fdnam EQ 'LFSTK' OR fdnam EQ 'CMGST'

OR fdnam EQ 'KOSTA' OR fdnam EQ 'WBSTK'.

DELETE it_tvbst WHERE spras NE 'E'.

  • Select for text

SELECT spras land1 bland bezei FROM t005u INTO TABLE it_t005u

FOR ALL ENTRIES IN it_kna1

WHERE land1 EQ it_kna1-land1

AND bland EQ it_kna1-regio

AND spras EQ sy-langu.

DELETE it_t005u WHERE spras NE 'E'.

LOOP AT it_vbap.

CLEAR: it_vbak,it_makt,it_lips,it_likp,it_vbuk,IT_VBEP, "it_VTTP,

it_vbpa,it_kna1,it_vbup,it_tvbst.

READ TABLE it_vbak WITH KEY vbeln = it_vbap-vbeln.

READ TABLE it_makt WITH KEY matnr = it_vbap-matnr

werks = it_vbap-werks.

READ TABLE it_lips WITH KEY vgbel = it_vbap-vbeln.

READ TABLE it_likp WITH KEY vbeln = it_lips-vbeln.

READ TABLE it_vbuk WITH KEY vbeln = it_vbap-vbeln.

READ TABLE IT_VBEP WITH KEY VBELN = IT_VBAP-VBELN. " BY VINOD

  • READ TABLE it_vttp WITH KEY vbeln = it_lips-vbeln.

READ TABLE it_vbpa WITH KEY vbeln = it_vbak-vbeln.

*{INSERT CHANGES BY VINOD

READ TABLE it_kna1 WITH KEY kunnr = it_vBPA-kunnr. "IT_VBAK-KUNNR

  • END OF INSERT }

READ TABLE it_vbup WITH KEY vbeln = it_likp-vbeln.

MOVE it_vbap-matnr TO it_final-matnr.

MOVE it_makt-maktx TO it_final-maktx .

MOVE it_kna1-kunnr TO it_final-kunnr.

MOVE it_kna1-name1 TO it_final-name1.

MOVE it_kna1-stras TO it_final-stras.

CLEAR it_tvbst.

READ TABLE it_t005u WITH KEY bland = it_kna1-regio.

IF sy-subrc = 0.

MOVE it_t005u-bezei TO it_final-regio.

ELSE.

it_final-gbezei = ''.

ENDIF.

MOVE it_kna1-ort01 TO it_final-ort01.

MOVE it_vbak-bstnk TO it_final-bstnk .

MOVE it_vbak-vbeln TO it_final-vbelns .

MOVE it_lips-vbeln TO it_final-vbelnd .

MOVE it_vbap-kwmeng TO it_final-kwmeng.

  • MOVE it_likp-lfdat TO it_final-lfdat .

MOVE it_vbak-vdatu TO it_final-vdatu .

MOVE IT_VBEP-LDDAT TO IT_FINAL-LDDAT.

  • MOVE it_vttp-tknum TO it_final-tknum .

  • MOVE it_vttp-erdat TO it_final-erdat .

MOVE it_vbap-werks TO it_final-werks .

MOVE it_makt-labst TO it_final-labst.

CLEAR it_tvbst.

READ TABLE it_tvbst WITH KEY fdnam = 'GBSTK' statu = it_vbuk-gbstk.

IF sy-subrc = 0.

MOVE it_tvbst-bezei TO it_final-gbezei.

ELSE.

it_final-gbezei = ''.

ENDIF.

CLEAR it_tvbst.

READ TABLE it_tvbst WITH KEY fdnam = 'LFSTK' statu = it_vbuk-lfstk.

IF sy-subrc = 0.

MOVE it_tvbst-bezei TO it_final-lbezei .

ELSE.

it_final-lbezei = ''.

ENDIF.

CLEAR it_tvbst.

READ TABLE it_tvbst WITH KEY fdnam = 'CMGST' statu = it_vbuk-cmgst.

IF sy-subrc = 0.

MOVE it_tvbst-bezei TO it_final-cbezei .

ELSE.

it_final-cbezei = ''.

ENDIF.

CLEAR it_tvbst.

READ TABLE it_tvbst WITH KEY fdnam = 'KOSTA' statu = it_vbup-kosta.

IF sy-subrc = 0.

MOVE it_tvbst-bezei TO it_final-pickst.

ELSE.

it_final-lbezei = ''.

ENDIF.

CLEAR it_tvbst.

READ TABLE it_tvbst WITH KEY fdnam = 'WBSTK' statu = it_vbup-wbstk.

IF sy-subrc = 0.

MOVE it_tvbst-bezei TO it_final-pgist.

ELSE.

it_final-lbezei = ''.

ENDIF.

if s_vbeld is initial.

APPEND it_final.

else.

if it_final-vbelnd is initial.

else.

append it_final.

endif.

endif.

clear it_final.

ENDLOOP.

  • if not s_vbels is initial.

  • if it_vttp[] is initial.

  • clear it_final[].

  • else.

  • loop at it_final.

  • read table it_vttp with key vbeln = it_final-vbelnd.

  • if sy-subrc ne 0.

  • delete it_final.

  • endif.

  • endloop.

  • endif.

  • endif.

DELETE IT_FINAL WHERE KWMENG = 0.

delete it_final where vbelns = ''.

sort it_final by matnr.

*----


ELSEIF sto = 'X'.

IF s_kunnr IS INITIAL.

  • Select for PO header

SELECT ebeln kunnr statu FROM ekko INTO TABLE it_ekko

WHERE ebeln IN s_vbel

and bsart = 'UB'.

    • SELECT PO ITEMS

*

  • Select ekpoebeln ekpoebelp ekpomatnr ekpowerks ekpo~menge

*eket~eindt from

*ekpo inner join eket on ekpoebeln = eketebeln and ekpo~ebelp =

*eket~ebeln into table it_ekpo.

  • Select for delivery items

SELECT vbeln matnr lfimg vgbel VGPOS werks FROM lips INTO TABLE

it_lips

for all entries in it_ekko

WHERE vgbel = it_ekko-ebeln

and vbeln in s_vbelD

AND matnr IN s_matnr

AND werks IN s_plant.

IF sy-subrc NE 0.

MESSAGE S208 WITH 'No data exist for your selection' .

STOP.

ENDIF.

  • Select for delivery header

SELECT vbeln erdat lfdat kunnr lfart FROM likp INTO TABLE it_likp

FOR ALL ENTRIES IN it_lips

WHERE vbeln = it_lips-vbeln

AND erdat IN s_date

AND lfart EQ 'NL'.

LOOP AT it_lips.

READ TABLE it_likp WITH KEY vbeln = it_lips-vbeln.

IF sy-subrc NE 0.

DELETE it_lips.

ENDIF.

ENDLOOP.

  • Select for partner details

SELECT vbeln posnr parvw kunnr lifnr FROM vbpa INTO TABLE

it_vbpa

FOR ALL ENTRIES IN it_lips

WHERE vbeln = it_lips-vbeln

AND parvw = 'WE'.

else.

  • Select for partner details

SELECT vbeln posnr parvw kunnr lifnr FROM vbpa INTO TABLE

it_vbpa

WHERE kunnr IN s_kunnr

AND parvw = 'WE'.

  • Select for PO header

SELECT ebeln kunnr statu FROM ekko INTO TABLE it_ekko

WHERE ebeln IN s_vbel

and bsart = 'UB'.

  • Select for delivery items

SELECT vbeln matnr lfimg vgbel werks FROM lips INTO TABLE it_lips

for all entries in it_ekko

WHERE vgbel = it_ekko-ebeln

and vbeln in s_vbelD

AND matnr IN s_matnr

AND werks IN s_plant.

IF sy-subrc NE 0.

MESSAGE S208 WITH 'No data exist for your selection' .

STOP.

ENDIF.

  • Select for delivery header

SELECT vbeln erdat lfdat kunnr lfart FROM likp INTO TABLE it_likp

FOR ALL ENTRIES IN it_lips

WHERE vbeln = it_lips-vbeln

AND erdat IN s_date

AND lfart EQ 'NL'.

LOOP AT it_lips.

READ TABLE it_likp WITH KEY vbeln = it_lips-vbeln.

IF sy-subrc NE 0.

DELETE it_lips.

ENDIF.

ENDLOOP.

endif.

*select customer details.

SELECT kunnr land1 name1 stras regio ort01 FROM kna1 INTO TABLE

it_kna1

FOR ALL ENTRIES IN it_vbPA

WHERE kunnr = it_vbPA-kunnr.

  • Select for plant and stock

SELECT matnr maktx from makt INTO TABLE it_makt1

FOR ALL ENTRIES IN it_lips

WHERE matnr EQ it_lips-matnr

AND spras EQ sy-langu.

select matnr werks lgort labst from mard into table it_mard

for all entries in it_lips

WHERE matnr EQ it_lips-matnr

and lgort = 'FG01'

AND werks = it_lips-werks.

LOOP AT it_mard.

read table it_makt1 with key matnr = it_mard-matnr.

MOVE it_mard-matnr to it_makt-matnr.

MOVE it_makt1-maktx to it_makt-maktx.

MOVE it_mard-labst to it_makt-labst.

MOVE it_mard-werks to it_makt-werks.

COLLECT it_makt.

ENDLOOP.

  • Select for shipping items

  • SELECT tknum erdat vbeln FROM vttp INTO TABLE it_vttp

  • FOR ALL ENTRIES IN it_likp

  • WHERE vbeln = it_likp-vbeln

  • and tknum in s_vbels.

SELECT VBELN LDDAT FROM VBEP INTO TABLE IT_VBEP

FOR ALL ENTRIES IN IT_VBAP

WHERE VBELN = it_VBAP-vbeln.

*select for order status

SELECT vbeln gbstk lfstk cmgst FROM vbuk INTO TABLE it_vbuk

FOR ALL ENTRIES IN it_lips

WHERE vbeln = it_lips-vbeln.

*select for delivery status

SELECT avbeln akosta b~wbstk

INTO TABLE it_vbup

FROM vbup AS a INNER JOIN vbuk AS b

ON avbeln EQ bvbeln

FOR ALL ENTRIES IN it_lips

WHERE a~vbeln EQ it_lips-vbeln.

*select for text

SELECT spras

tbnam

fdnam

statu

bezei

FROM tvbst INTO TABLE it_tvbst

WHERE spras EQ sy-langu

AND tbnam EQ 'VBUK' OR tbnam EQ 'VBUP'

AND fdnam EQ 'GBSTK' OR fdnam EQ 'LFSTK' OR fdnam EQ 'CMGST'

OR fdnam EQ 'KOSTA' OR fdnam EQ 'WBSTK'.

DELETE it_tvbst WHERE spras NE 'E'.

  • Select for text

SELECT spras land1 bland bezei FROM t005u INTO TABLE it_t005u

FOR ALL ENTRIES IN it_KNA1

WHERE bland EQ it_KNA1-regio

AND spras EQ sy-langu.

DELETE it_t005u WHERE spras NE 'E'.

LOOP AT it_lips.

CLEAR: it_makt,it_likp,it_vbuk,IT_VBEP, "it_vttp,

it_vbpa,it_kna1,it_vbup,it_tvbst.

READ TABLE it_makt WITH KEY matnr = it_lips-matnr

werks = it_lips-werks.

READ TABLE it_likp WITH KEY vbeln = it_lips-vbeln.

READ TABLE it_ekko WITH KEY ebeln = it_lips-vgbel.

  • READ TABLE IT_EKPO WITH KEY EBELN = IT_LIPS-VGBEL EBELP =

*IT_LIPS-VGPOS+1(5).

READ TABLE it_KNA1 WITH KEY KUNNR = it_likp-kunnr.

  • READ TABLE it_vttp WITH KEY vbeln = it_lips-vbeln.

READ TABLE IT_VBEP WITH KEY VBELN = IT_VBAP-VBELN.

READ TABLE it_vbup WITH KEY vbeln = it_likp-vbeln.

MOVE it_lips-matnr TO it_final-matnr.

MOVE it_makt-maktx TO it_final-maktx .

MOVE it_KNA1-KUNNR TO it_final-kunnr.

MOVE it_KNA1-name1 TO it_final-name1.

MOVE it_KNA1-stras TO it_final-stras.

CLEAR it_tvbst.

READ TABLE it_t005u WITH KEY bland = it_KNA1-regio.

IF sy-subrc = 0.

MOVE it_t005u-bezei TO it_final-regio.

ELSE.

it_final-gbezei = ''.

ENDIF.

MOVE it_KNA1-ort01 TO it_final-ort01.

MOVE it_lips-vgbel TO it_final-bstnk .

MOVE it_lips-vbeln TO it_final-vbelnd .

MOVE it_lips-lfimg TO it_final-kwmeng.

  • MOVE it_likp-lfdat TO it_final-lfdat .

  • MOVE IT_EKPO-EINDT TO it_final-VDATU.

MOVE IT_likp-lfdat TO it_final-VDATU.

MOVE IT_VBEP-LDDAT TO IT_FINAL-LDDAT.

  • MOVE it_vttp-tknum TO it_final-tknum .

  • MOVE it_vttp-erdat TO it_final-erdat .

MOVE it_lips-werks TO it_final-werks .

MOVE it_makt-labst TO it_final-labst.

CLEAR it_tvbst.

READ TABLE it_tvbst WITH KEY fdnam = 'KOSTA' statu = it_vbup-kosta.

IF sy-subrc = 0.

MOVE it_tvbst-bezei TO it_final-pickst.

ELSE.

it_final-lbezei = ''.

ENDIF.

CLEAR it_tvbst.

READ TABLE it_tvbst WITH KEY fdnam = 'WBSTK' statu = it_vbup-wbstk.

IF sy-subrc = 0.

MOVE it_tvbst-bezei TO it_final-pgist.

ELSE.

it_final-lbezei = ''.

ENDIF.

if s_vbeld is initial.

APPEND it_final.

else.

if it_final-vbelnd is initial.

else.

append it_final.

endif.

endif.

clear it_final.

ENDLOOP.

  • if not s_vbels is initial.

  • if it_vttp[] is initial.

  • clear it_final[].

  • else.

  • loop at it_final.

  • read table it_vttp with key vbeln = it_final-vbelnd.

  • if sy-subrc ne 0.

  • delete it_final.

  • endif.

  • endloop.

  • endif.

  • endif.

DELETE IT_FINAL WHERE KWMENG = 0.

sort it_final by matnr.

ENDIF.

if it_final[] is initial.

MESSAGE S208 WITH 'No data exist for your selection' .

stop.

endif.

data: repid like sy-repid.

repid = sy-repid.

DATA fieldcat TYPE slis_t_fieldcat_alv.

DATA I_EVENTS TYPE SLIS_T_EVENT.

DATA WA_EVENTS TYPE SLIS_ALV_EVENT.

perform fill_fieldcatlog.

PERFORM ALV_EVENTS.

PERFORM ALV_GRID.

&----


*& Form fill_fieldcatlog

&----


FORM fill_fieldcatlog.

CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'

EXPORTING

I_PROGRAM_NAME = REPID

I_INTERNAL_TABNAME = 'IT_FINAL'

I_STRUCTURE_NAME = 'ZSOR'

  • I_CLIENT_NEVER_DISPLAY = 'X'

I_INCLNAME = REPID

I_BYPASSING_BUFFER = 'X'

I_BUFFER_ACTIVE = ' '

CHANGING

CT_FIELDCAT = FIELDCAT[]

  • EXCEPTIONS

  • INCONSISTENT_INTERFACE = 1

  • PROGRAM_ERROR = 2

  • OTHERS = 3

.

IF SY-SUBRC <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

ENDFORM. " fill_fieldcatlog

&----


*& Form ALV_EVENTS

&----


FORM ALV_EVENTS.

CALL FUNCTION 'REUSE_ALV_EVENTS_GET'

EXPORTING

I_LIST_TYPE = 0

IMPORTING

ET_EVENTS = I_EVENTS

  • EXCEPTIONS

  • LIST_TYPE_WRONG = 1

  • OTHERS = 2

.

IF SY-SUBRC <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

READ TABLE I_EVENTS INTO WA_EVENTS WITH KEY = slis_ev_top_of_page.

IF SY-SUBRC = 0.

WA_EVENTS-FORM = 'TOP_OF_PAGE'.

APPEND WA_EVENTS TO I_EVENTS.

CLEAR WA_EVENTS.

ENDIF.

ENDFORM. " ALV_EVENTS

FORM TOP_OF_PAGE.

DATA:I_COMMENTARY TYPE SLIS_T_LISTHEADER,

WA_COMMENTARY TYPE slis_listheader.

WA_COMMENTARY-TYP = 'H'.

WA_COMMENTARY-INFO = 'SALES ORDER REPORT' .

append wa_commentary to i_commentary.

clear wa_commentary.

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

EXPORTING

it_list_commentary = I_COMMENTARY

  • I_END_OF_LIST_GRID =

.

ENDFORM.

&----


*& Form ALV_GRID

&----


FORM ALV_GRID.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

  • I_INTERFACE_CHECK = ' '

  • I_BYPASSING_BUFFER = 'X'

  • I_BUFFER_ACTIVE = ' '

I_CALLBACK_PROGRAM = REPID

  • I_CALLBACK_PF_STATUS_SET = ' '

  • I_CALLBACK_USER_COMMAND = ' '

  • I_CALLBACK_TOP_OF_PAGE = ' '

  • I_CALLBACK_HTML_TOP_OF_PAGE = ' '

  • I_CALLBACK_HTML_END_OF_LIST = ' '

  • I_STRUCTURE_NAME =

  • I_BACKGROUND_ID = ' '

  • I_GRID_TITLE =

  • I_GRID_SETTINGS =

  • IS_LAYOUT =

IT_FIELDCAT = FIELDCAT[]

  • IT_EXCLUDING =

  • IT_SPECIAL_GROUPS =

  • IT_SORT =

  • IT_FILTER =

  • IS_SEL_HIDE =

  • I_DEFAULT = 'X'

  • I_SAVE = ' '

  • IS_VARIANT =

IT_EVENTS = I_EVENTS

  • IT_EVENT_EXIT =

  • IS_PRINT =

  • IS_REPREP_ID =

  • I_SCREEN_START_COLUMN = 0

  • I_SCREEN_START_LINE = 0

  • I_SCREEN_END_COLUMN = 0

  • I_SCREEN_END_LINE = 0

  • IT_ALV_GRAPHICS =

  • IT_ADD_FIELDCAT =

  • IT_HYPERLINK =

  • I_HTML_HEIGHT_TOP =

  • I_HTML_HEIGHT_END =

  • IT_EXCEPT_QINFO =

  • IMPORTING

  • E_EXIT_CAUSED_BY_CALLER =

  • ES_EXIT_CAUSED_BY_USER =

TABLES

T_OUTTAB = IT_FINAL

  • EXCEPTIONS

  • PROGRAM_ERROR = 1

  • OTHERS = 2

.

IF SY-SUBRC <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

ENDFORM. " ALV_GRID

      • CALL SCREEN 100.

****&----


*-

***

****

****& Module pbo_100 OUTPUT

****&----


*-

***

****

        • text

****----


*-

***

****

***MODULE pbo_100 OUTPUT.

***

      • g_repid = sy-repid.

      • IF custom_container1 IS INITIAL.

***

****----


      • DATA: splitter TYPE REF TO cl_gui_splitter_container.

      • CREATE OBJECT splitter

      • EXPORTING parent = cl_gui_container=>screen0

      • rows = 1

      • columns = 1.

***

      • CALL METHOD splitter->set_border

      • EXPORTING

      • border = cl_gui_cfw=>false.

      • CALL METHOD splitter->set_column_mode

      • EXPORTING

      • mode = splitter->mode_absolute.

***

      • custom_container1 = splitter->get_container( row = 1 column = 1 )

*.

****----


      • CREATE OBJECT grid1

      • EXPORTING i_parent = custom_container1.

      • IF sto = 'X' .

      • gs_layout-grid_title = 'Stock Transfer Order Status report'.

      • ELSE.

      • gs_layout-grid_title = 'Sales order Status report'.

      • ENDIF.

      • gs_layout-zebra = 'X'.

      • gs_layout-cwidth_opt = 'X'.

      • gs_layout-no_totline = 'X'.

      • gs_prnt-reservelns = '2'.

***

      • PERFORM prepare_field_catalog CHANGING gt_fieldcat[].

***

      • CALL METHOD grid1->set_table_for_first_display

      • EXPORTING

      • is_layout = gs_layout

      • is_print = gs_prnt

      • it_toolbar_excluding = it_toolbar_excluding

      • CHANGING

      • it_fieldcatalog = gt_fieldcat[]

      • it_sort = gt_sort[]

      • it_outtab = it_final[].

***

      • CALL METHOD grid1->set_toolbar_interactive.

      • CALL METHOD cl_gui_control=>set_focus

      • EXPORTING

      • control = grid1.

***

      • ENDIF.

***

***

***ENDMODULE. " pbo_100 OUTPUT

****&----


*-

***

***

****& Form prepare_field_catalog

****&----


*-

***

***

        • text

****----


*-

***

***

        • <--P_GT_FIELDCAT[] text

****----


*-

***

****

***FORM prepare_field_catalog CHANGING p_fieldcat TYPE lvc_t_fcat ..

***

      • DATA: wa_fcat TYPE lvc_s_fcat.

      • CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'

      • EXPORTING

      • i_structure_name = 'ZSOR'

      • CHANGING

      • ct_fieldcat = p_fieldcat[]

      • EXCEPTIONS

      • inconsistent_interface = 1

      • program_error = 2

      • OTHERS = 3.

      • IF sy-subrc <> 0.

      • MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno

      • WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

      • ENDIF.

***

      • LOOP AT p_fieldcat INTO wa_fcat.

***

      • IF wa_fcat-fieldname = 'REGIO'.

      • wa_fcat-coltext = 'State'.

      • wa_fcat-seltext = 'State'.

      • ENDIF.

***

***

      • IF wa_fcat-fieldname = 'VBELNS'.

      • wa_fcat-coltext = 'Order No'.

      • wa_fcat-seltext = 'Order No'.

      • IF sto = 'X'.

      • wa_fcat-no_out = 'X'.

      • ENDIF.

      • ENDIF.

***

      • IF wa_fcat-fieldname = 'VBELND'.

      • wa_fcat-coltext = 'Delivery No'.

      • wa_fcat-seltext = 'Delivery No'.

      • ENDIF.

***

      • IF wa_fcat-fieldname = 'GBEZEI'.

      • wa_fcat-coltext = 'Overall Status'.

      • wa_fcat-seltext = 'Overall Status'.

      • IF sto = 'X'.

      • wa_fcat-no_out = 'X'.

      • ENDIF.

      • ENDIF.

***

      • IF wa_fcat-fieldname = 'LBEZEI'.

      • wa_fcat-coltext = 'Delivery Status'.

      • wa_fcat-seltext = 'Delivery Status'.

      • IF sto = 'X'.

      • wa_fcat-no_out = 'X'.

      • ENDIF.

      • ENDIF.

***

      • IF wa_fcat-fieldname = 'CBEZEI'.

      • wa_fcat-coltext = 'Credit Status'.

      • wa_fcat-seltext = 'Credit Status'.

      • IF sto = 'X'.

      • wa_fcat-no_out = 'X'.

      • ENDIF.

      • ENDIF.

****check here

        • IF wa_fcat-fieldname = 'ERDAT'.

        • wa_fcat-coltext = 'Shipment Date'.

        • wa_fcat-seltext = 'Shipment Date'.

        • ENDIF.

*****

****-----changes

***

        • IF wa_fcat-fieldname = 'lddat'.

        • wa_fcat-coltext = 'loading date'.

        • wa_fcat-seltext = 'loading date'.

        • ENDIF.

****----end

***

      • IF wa_fcat-fieldname = 'PICKST'.

      • wa_fcat-coltext = 'Picking Status'.

      • wa_fcat-seltext = 'Picking Status'.

      • ENDIF.

***

      • IF wa_fcat-fieldname = 'PGIST'.

      • wa_fcat-coltext = 'PGI Status'.

      • wa_fcat-seltext = 'PGI Status'.

      • ENDIF.

***

***

***

***

      • MODIFY p_fieldcat FROM wa_fcat.

      • ENDLOOP.

***

***

***ENDFORM. " prepare_field_catalog

****&----


*-

***

****

****& Module USER_COMMAND_0100 INPUT

****&----


*-

***

        • text

****----


*-

***

****

***MODULE user_command_0100 INPUT.

***

      • ok_code = sy-ucomm.

      • CASE ok_code.

      • WHEN 'BACK'.

      • SET USER-COMMAND 'BACK'.

      • LEAVE TO SCREEN 0.

      • WHEN 'EXIT'.

      • LEAVE PROGRAM.

      • WHEN 'CANCEL'.

      • LEAVE PROGRAM.

      • ENDCASE.

      • CLEAR ok_code.

***

***ENDMODULE. " USER_COMMAND_0100 INPUT

****&----


*-

***

****

****& Module STATUS_0100 OUTPUT

****&----


*-

***

****

        • text

****----


*-

***

****

***MODULE status_0100 OUTPUT.

      • SET PF-STATUS 'PF-100'.

      • SET TITLEBAR 'TIT-100'.

***

***ENDMODULE. " STATUS_0100 OUTPUT

****&----


*-

***

****

****& Module EXIT_COMMAND INPUT

****&----


*-

***

****

        • text

****----


*-

***

****

***MODULE exit_command INPUT.

      • DATA wk_answer.

***

      • CASE sy-ucomm.

***

      • WHEN 'BACK' OR 'EXIT' OR 'CANCEL'.

***

      • CALL FUNCTION 'POPUP_TO_CONFIRM_STEP'

      • EXPORTING

      • defaultoption = 'Y'

      • textline1 = 'Do you wish to exit'(003)

      • textline2 = 'Confirm?'(004)

      • titel = 'Exit Processing'(005)

      • start_column = 25

      • start_row = 6

      • cancel_display = 'X'

      • IMPORTING

      • answer = wk_answer.

***

      • CASE wk_answer.

***

      • WHEN 'J'.

***

      • LEAVE PROGRAM.

      • ENDCASE.

***

      • ENDCASE.

***

***

***ENDMODULE. " EXIT_COMMAND INPUT

Read only

0 Likes
1,562

whether ZSOR structure contains all your resultant fields...

Cheers,

Abdul Hakim

Read only

0 Likes
1,562

First, you are passing both your internal table and ZSOR structure to the FIELDCATOLOG function module. Pass only the internal table name.

Next make sure that you get all the columns of your internal table in the field catalog after the call. Make sure that they all have column headings.

Read only

0 Likes
1,562

Hi Srinivas,

i have passed only the internal table.

i am unable to get all the columns in the fieldcatalog.can you suggest me why i am not getting all the columns

if some columns do not have heading will that have an effect?

thanks

sandeep

Read only

0 Likes
1,562

By modifing your fieldcat like so.... I am getting all of the columns in your internal table.



form fill_fieldcatlog.

  call function 'REUSE_ALV_FIELDCATALOG_MERGE'
  exporting
  i_program_name = repid
  i_internal_tabname = 'IT_FINAL'
<b>*  i_structure_name = 'ZSOR'</b>
* I_CLIENT_NEVER_DISPLAY = 'X'
  i_inclname = repid
  i_bypassing_buffer = 'X'
  i_buffer_active = ' '
  changing
  ct_fieldcat = fieldcat[]
* EXCEPTIONS
* INCONSISTENT_INTERFACE = 1
* PROGRAM_ERROR = 2
* OTHERS = 3
  .
  if sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  endif.

endform. " fill_fieldcatlog


I commentted out the i_structure_name parameter. It is getting the fieldcatlog straight from the IT_FINAL internal table.

Regards,

RIch Heilman

Read only

0 Likes
1,562

Hi Rich

i have tried but i am not getting all the columns in the output.

i am attaching the code which i am using

----


*& Report ZSALESORDERSTATUS

*&

&----


*&

*&

&----


REPORT zsalesorderstatus MESSAGE-ID 00.

TYPE-POOLS: SLIS.

TABLES:mara,

kna1,

vbak,

ekko,

likp,

vttp,

t001w,

vbpa,

vbep,

vbkd.

DATA: ST_EBELP TYPE STRING.

  • order header IT declaration

DATA:BEGIN OF it_vbak OCCURS 0,

vbeln LIKE vbak-vbeln,

erdat LIKE vbak-erdat,

bstnk LIKE vbak-bstnk,

kunnr LIKE vbak-kunnr,

vdatu LIKE VBAK-VDATU,

END OF it_vbak.

  • order items IT declaration

DATA : BEGIN OF it_vbap OCCURS 0,

vbeln LIKE vbap-vbeln,

posnr LIKE vbap-posnr,

matnr LIKE vbap-matnr,

erdat LIKE vbap-erdat,

kwmeng LIKE vbap-kwmeng,

werks LIKE vbap-werks,

END OF it_vbap.

  • material description,stock IT declaration

DATA:BEGIN OF it_makt OCCURS 0,

matnr LIKE makt-matnr,

maktx LIKE makt-maktx,

labst LIKE mard-labst,

werks LIKE mard-werks,

END OF it_makt.

  • material description,stock IT declaration1

DATA:BEGIN OF it_makt1 OCCURS 0,

matnr LIKE makt-matnr,

maktx LIKE makt-maktx,

END OF it_makt1.

  • material description,stock IT declaration1

DATA:BEGIN OF it_mard OCCURS 0,

matnr like mard-matnr,

werks LIKE mard-werks,

lgort like mard-lgort,

labst LIKE mard-labst,

END OF it_mard.

  • delivery header IT declaration

DATA : BEGIN OF it_likp OCCURS 0,

vbeln LIKE likp-vbeln,

erdat LIKE likp-erdat,

lfdat LIKE likp-lfdat,

kunnr LIKE likp-kunnr,

lfart LIKE likp-lfart,

END OF it_likp.

  • delivery items IT declaration

DATA: BEGIN OF it_lips OCCURS 0,

vbeln TYPE lips-vbeln,

matnr TYPE lips-matnr,

lfimg TYPE lips-lfimg,

vgbel TYPE lips-vgbel,

VGPOS TYPE LIPS-VGPOS,

werks LIKE lips-werks,

END OF it_lips.

  • shipment table IT declaration

DATA: BEGIN OF IT_VBEP OCCURS 0,

VBELN LIKE VBEP-VBELN,

  • POSNR LIKE VBEP-POSNR,

LDDAT LIKE VBEP-LDDAT,

END OF IT_VBEP.

*DATA : BEGIN OF it_vttp OCCURS 0,

  • tknum LIKE vttp-tknum,

  • erdat LIKE vttp-erdat,

  • vbeln LIKE vttp-vbeln,

  • END OF it_vttp.

  • Invoice header IT declaration

DATA : BEGIN OF it_vbrk OCCURS 0,

vbeln LIKE vbrk-vbeln,

vkorg LIKE vbrk-vkorg,

vtweg LIKE vbrk-vtweg,

kunag LIKE vbrk-kunag,

fkdat LIKE vbrk-fkdat,

knumv LIKE vbrk-knumv,

END OF it_vbrk.

  • Invoice lines IT declaration

DATA : BEGIN OF it_vbrp OCCURS 0,

vbeln LIKE vbrp-vbeln,

posnr LIKE vbrp-posnr,

matnr LIKE vbrp-matnr,

arktx LIKE vbrp-arktx,

fkimg LIKE vbrp-fkimg,

vgbel LIKE vbrp-vgbel,

vgpos LIKE vbrp-vgpos,

aubel LIKE vbrp-aubel,

aupos LIKE vbrp-aupos,

netwr LIKE vbrp-netwr,

werks LIKE vbrp-werks,

END OF it_vbrp.

  • Sales Document Status IT declaration

DATA: BEGIN OF it_vbuk OCCURS 0,

vbeln TYPE vbuk-vbeln,

gbstk TYPE vbuk-gbstk,

lfstk TYPE vbuk-lfstk,

cmgst TYPE vbuk-cmgst,

END OF it_vbuk.

DATA: BEGIN OF it_vbup OCCURS 0,

vbeln TYPE vbup-vbeln,

kosta TYPE vbup-kosta,

wbstk TYPE vbuk-wbstk,

END OF it_vbup.

  • Sales Document Status IT declaration

DATA: BEGIN OF it_tvbst OCCURS 0,

spras TYPE tvbst-spras,

tbnam TYPE tvbst-tbnam,

fdnam TYPE tvbst-fdnam,

statu TYPE tvbst-statu,

bezei TYPE tvbst-bezei,

END OF it_tvbst.

  • Customer IT declaration

DATA : BEGIN OF it_kna1 OCCURS 0,

kunnr LIKE kna1-kunnr,

land1 LIKE kna1-land1,

name1 LIKE kna1-name1,

stras LIKE kna1-stras,

regio LIKE kna1-regio,

ort01 LIKE kna1-ort01,

END OF it_kna1.

  • Ship to party IT declaration

DATA : BEGIN OF it_vbpa OCCURS 0,

vbeln LIKE vbpa-vbeln,

posnr LIKE vbpa-posnr,

parvw LIKE vbpa-parvw,

kunnr LIKE vbpa-kunnr,

lifnr LIKE vbpa-lifnr,

END OF it_vbpa.

*text for state

DATA: BEGIN OF it_t005u OCCURS 0,

spras LIKE t005u-spras,

land1 LIKE t005u-land1,

bland LIKE t005u-bland,

bezei LIKE t005u-bezei,

END OF it_t005u.

*IT FOR PO

DATA: BEGIN OF it_ekko OCCURS 0,

ebeln LIKE ekko-ebeln,

bsart like ekko-bsart,

kunnr LIKE ekko-kunnr,

statu LIKE ekko-statu,

werks like ekpo-werks,

END OF it_ekko.

  • IT for PO Items

DATA: BEGIN OF it_ekpo occurs 0,

ebeln like ekpo-ebeln,

ebelp like ekpo-ebelp,

matnr like ekpo-matnr,

werks like ekpo-werks,

menge like ekpo-menge,

eindt like eket-eindt,

End of it_ekpo.

  • plant IT declaration

DATA : BEGIN OF it_t001w OCCURS 0,

werks LIKE t001w-werks,

name1 LIKE t001w-name1,

stras LIKE t001w-stras,

regio LIKE t001w-regio,

ort01 LIKE t001w-ort01,

END OF it_t001w.

  • final table IT declaration

DATA: BEGIN OF it_final OCCURS 0,

matnr LIKE vbap-matnr,

maktx LIKE makt-maktx,

kunnr LIKE kna1-kunnr,

name1 LIKE kna1-name1,

stras LIKE kna1-stras,

regio LIKE t005u-bezei,

ort01 LIKE kna1-ort01,

bstnk LIKE vbak-bstnk,

vbelns LIKE vbak-vbeln,

kwmeng LIKE vbap-kwmeng,

vbelnd LIKE likp-vbeln,

  • lfdat like likp-lfdat,

VDATU LIKE VBAK-VDATU,

LDDAT LIKE VBEP-LDDAT,

  • tknum LIKE vttp-tknum,

  • erdat LIKE vttp-erdat,

werks LIKE vbap-werks,

labst LIKE mard-labst,

gbezei TYPE tvbst-bezei,

  • gbstk TYPE vbuk-gbstk,

lbezei TYPE tvbst-bezei,

  • lfstk TYPE vbuk-lfstk,

cbezei TYPE tvbst-bezei,

  • cmgst TYPE vbuk-cmgst,

pickst TYPE tvbst-bezei,

pgist TYPE tvbst-bezei,

END OF it_final.

*----structure inserted by vinod

DATA p_plant LIKE kna1-werks.

*selection-screens.

SELECTION-SCREEN: BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.

SELECTION-SCREEN SKIP 2.

SELECTION-SCREEN BEGIN OF LINE.

SELECTION-SCREEN POSITION 16.

SELECTION-SCREEN COMMENT 5(15) FOR FIELD so.

PARAMETERS: so RADIOBUTTON GROUP rad1 USER-COMMAND fcode.

SELECTION-SCREEN POSITION 45.

SELECTION-SCREEN COMMENT 25(20) FOR FIELD sto.

PARAMETERS: sto RADIOBUTTON GROUP rad1 .

SELECTION-SCREEN END OF LINE.

SELECTION-SCREEN SKIP 1.

SELECT-OPTIONS: s_matnr FOR mara-matnr,

s_kunnr FOR kna1-kunnr,

s_vbeln FOR vbak-vbeln MODIF ID a1,

s_vbel FOR ekko-ebeln MODIF ID a2,

s_vbeld for likp-vbeln,

  • s_vbels for vttp-tknum,

s_date FOR vbkd-bstdk,

s_plant FOR kna1-werks obligatory.

SELECTION-SCREEN: END OF BLOCK b1.

AT SELECTION-SCREEN OUTPUT.

LOOP AT SCREEN.

IF sto = 'X' .

IF screen-group1 = 'A1'.

screen-active = 0.

MODIFY SCREEN.

ENDIF.

ELSE.

IF screen-group1 = 'A2'.

screen-active = 0.

MODIFY SCREEN.

ENDIF.

ENDIF.

ENDLOOP.

START-OF-SELECTION.

select single werks from t001w into (t001w-werks)

where werks in s_plant.

if sy-subrc ne 0.

MESSAGE S208 WITH 'Plant does not exist.Please change your selection'.

stop.

endif.

IF NOT S_KUNNR IS INITIAL.

select single kunnr from vbpa into (vbpa-kunnr)

where kunnr in s_kunnr

and parvw = 'WE'.

if sy-subrc ne 0.

MESSAGE S208 WITH

'Ship to party does not exist.Please change your selection'.

stop.

endif.

ENDIF.

IF so = 'X'.

IF s_kunnr IS INITIAL.

*select for order item

SELECT vbeln posnr matnr erdat kwmeng werks

FROM vbap INTO TABLE it_vbap

WHERE vbeln IN s_vbeln

AND matnr IN s_matnr

AND erdat IN s_date

AND WERKS IN S_PLANT.

IF sy-subrc NE 0.

MESSAGE S208 WITH 'No data exist for your selection' .

stop.

ENDIF.

*select for orderheader

SELECT vbeln erdat bstnk kunnr VDATU FROM vbak INTO TABLE it_vbak

for all entries in it_vbap

WHERE vbeln = it_vbap-vbeln.

  • Select for partner details

SELECT vbeln posnr parvw kunnr lifnr FROM vbpa INTO TABLE

it_vbpa

FOR ALL ENTRIES IN it_vbak

WHERE vbeln = it_vbak-vbeln

AND kunnr IN s_kunnr

AND parvw = 'WE'.

ELSE.

  • Select for partner details

SELECT vbeln posnr parvw kunnr lifnr FROM vbpa INTO TABLE

it_vbpa

WHERE kunnr IN s_kunnr

AND parvw = 'WE'.

IF sy-subrc NE 0.

MESSAGE S208 WITH 'No data exist for your selection' .

STOP.

ENDIF.

*select for order item

SELECT vbeln posnr matnr erdat kwmeng werks

FROM vbap INTO TABLE it_vbap

FOR ALL ENTRIES IN it_vbpa

WHERE vbeln = it_vbpa-vbeln

AND matnr IN s_matnr

AND erdat IN s_date

AND WERKS IN S_PLANT.

IF sy-subrc NE 0.

MESSAGE S208 WITH 'No data exist for your selection' .

stop.

ENDIF.

*select for orderheader

SELECT vbeln erdat bstnk kunnr VDATU FROM vbak INTO TABLE it_vbak

FOR ALL ENTRIES IN it_vbpa

WHERE vbeln = it_vbpa-vbeln.

  • AND WHERE KUNNR = IT_VBPA-KUNNR. "VINOD

IF sy-subrc NE 0.

MESSAGE S208 WITH 'No data exist for your selection' .

stop.

ENDIF.

ENDIF.

*select customer details.

*{INSERT CHANGES BY VINOD

.

SELECT kunnr land1 name1 stras regio ort01 FROM kna1 INTO TABLE

it_kna1

FOR ALL ENTRIES IN it_vbPA "IT_VBAK

WHERE kunnr = it_vbPA-kunnr.

*{END OF INSERT

  • Select for plant and stock

SELECT matnr maktx from makt INTO TABLE it_makt1

FOR ALL ENTRIES IN it_vbap

WHERE matnr EQ it_vbap-matnr

AND spras EQ sy-langu.

select matnr werks lgort labst from mard into table it_mard

for all entries in it_vbap

WHERE matnr EQ it_vbap-matnr

and lgort = 'FG01'

AND werks = it_vbap-werks.

LOOP AT it_mard.

read table it_makt1 with key matnr = it_mard-matnr.

MOVE it_mard-matnr to it_makt-matnr.

MOVE it_makt1-maktx to it_makt-maktx.

MOVE it_mard-labst to it_makt-labst.

MOVE it_mard-werks to it_makt-werks.

COLLECT it_makt.

ENDLOOP.

  • Select for delivery items

SELECT vbeln matnr lfimg vgbel VGPOS werks FROM lips INTO TABLE

it_lips

FOR ALL ENTRIES IN it_vbak

WHERE vgbel = it_vbak-vbeln

and vbeln in s_vbeld.

  • Select for delivery header

SELECT vbeln erdat lfdat lfart kunnr FROM likp INTO TABLE it_likp

FOR ALL ENTRIES IN it_lips

WHERE vbeln = it_lips-vbeln.

  • Select for shipping items

  • SELECT tknum erdat vbeln FROM vttp INTO TABLE it_vttp

  • FOR ALL ENTRIES IN it_likp

  • WHERE vbeln = it_likp-vbeln

  • and tknum in s_vbels.

SELECT VBELN

  • POSNR

LDDAT

FROM VBEP INTO TABLE IT_VBEP

FOR ALL ENTRIES IN IT_VBAP

WHERE VBELN = IT_VBAP-VBELN.

  • AND POSNR = IT_VBAP-POSNR. "LIKP

*select for order status

SELECT vbeln gbstk lfstk cmgst FROM vbuk INTO TABLE it_vbuk

FOR ALL ENTRIES IN it_vbak

WHERE vbeln = it_vbak-vbeln.

*select for delivery status

SELECT avbeln akosta b~wbstk

INTO TABLE it_vbup

FROM vbup AS a INNER JOIN vbuk AS b

ON avbeln EQ bvbeln

FOR ALL ENTRIES IN it_likp

WHERE a~vbeln EQ it_likp-vbeln.

*select for text

SELECT spras

tbnam

fdnam

statu

bezei

FROM tvbst INTO TABLE it_tvbst

WHERE spras EQ sy-langu

AND tbnam EQ 'VBUK' OR tbnam EQ 'VBUP'

AND fdnam EQ 'GBSTK' OR fdnam EQ 'LFSTK' OR fdnam EQ 'CMGST'

OR fdnam EQ 'KOSTA' OR fdnam EQ 'WBSTK'.

DELETE it_tvbst WHERE spras NE 'E'.

  • Select for text

SELECT spras land1 bland bezei FROM t005u INTO TABLE it_t005u

FOR ALL ENTRIES IN it_kna1

WHERE land1 EQ it_kna1-land1

AND bland EQ it_kna1-regio

AND spras EQ sy-langu.

DELETE it_t005u WHERE spras NE 'E'.

LOOP AT it_vbap.

CLEAR: it_vbak,it_makt,it_lips,it_likp,it_vbuk,IT_VBEP, "it_VTTP,

it_vbpa,it_kna1,it_vbup,it_tvbst.

READ TABLE it_vbak WITH KEY vbeln = it_vbap-vbeln.

READ TABLE it_makt WITH KEY matnr = it_vbap-matnr

werks = it_vbap-werks.

READ TABLE it_lips WITH KEY vgbel = it_vbap-vbeln.

READ TABLE it_likp WITH KEY vbeln = it_lips-vbeln.

READ TABLE it_vbuk WITH KEY vbeln = it_vbap-vbeln.

READ TABLE IT_VBEP WITH KEY VBELN = IT_VBAP-VBELN. " BY VINOD

  • READ TABLE it_vttp WITH KEY vbeln = it_lips-vbeln.

READ TABLE it_vbpa WITH KEY vbeln = it_vbak-vbeln.

*{INSERT CHANGES BY VINOD

READ TABLE it_kna1 WITH KEY kunnr = it_vBPA-kunnr. "IT_VBAK-KUNNR

  • END OF INSERT }

READ TABLE it_vbup WITH KEY vbeln = it_likp-vbeln.

MOVE it_vbap-matnr TO it_final-matnr.

MOVE it_makt-maktx TO it_final-maktx .

MOVE it_kna1-kunnr TO it_final-kunnr.

MOVE it_kna1-name1 TO it_final-name1.

MOVE it_kna1-stras TO it_final-stras.

CLEAR it_tvbst.

READ TABLE it_t005u WITH KEY bland = it_kna1-regio.

IF sy-subrc = 0.

MOVE it_t005u-bezei TO it_final-regio.

ELSE.

it_final-gbezei = ''.

ENDIF.

MOVE it_kna1-ort01 TO it_final-ort01.

MOVE it_vbak-bstnk TO it_final-bstnk .

MOVE it_vbak-vbeln TO it_final-vbelns .

MOVE it_lips-vbeln TO it_final-vbelnd .

MOVE it_vbap-kwmeng TO it_final-kwmeng.

  • MOVE it_likp-lfdat TO it_final-lfdat .

MOVE it_vbak-vdatu TO it_final-vdatu .

MOVE IT_VBEP-LDDAT TO IT_FINAL-LDDAT.

  • MOVE it_vttp-tknum TO it_final-tknum .

  • MOVE it_vttp-erdat TO it_final-erdat .

MOVE it_vbap-werks TO it_final-werks .

MOVE it_makt-labst TO it_final-labst.

CLEAR it_tvbst.

READ TABLE it_tvbst WITH KEY fdnam = 'GBSTK' statu = it_vbuk-gbstk.

IF sy-subrc = 0.

MOVE it_tvbst-bezei TO it_final-gbezei.

ELSE.

it_final-gbezei = ''.

ENDIF.

CLEAR it_tvbst.

READ TABLE it_tvbst WITH KEY fdnam = 'LFSTK' statu = it_vbuk-lfstk.

IF sy-subrc = 0.

MOVE it_tvbst-bezei TO it_final-lbezei .

ELSE.

it_final-lbezei = ''.

ENDIF.

CLEAR it_tvbst.

READ TABLE it_tvbst WITH KEY fdnam = 'CMGST' statu = it_vbuk-cmgst.

IF sy-subrc = 0.

MOVE it_tvbst-bezei TO it_final-cbezei .

ELSE.

it_final-cbezei = ''.

ENDIF.

CLEAR it_tvbst.

READ TABLE it_tvbst WITH KEY fdnam = 'KOSTA' statu = it_vbup-kosta.

IF sy-subrc = 0.

MOVE it_tvbst-bezei TO it_final-pickst.

ELSE.

it_final-lbezei = ''.

ENDIF.

CLEAR it_tvbst.

READ TABLE it_tvbst WITH KEY fdnam = 'WBSTK' statu = it_vbup-wbstk.

IF sy-subrc = 0.

MOVE it_tvbst-bezei TO it_final-pgist.

ELSE.

it_final-lbezei = ''.

ENDIF.

if s_vbeld is initial.

APPEND it_final.

else.

if it_final-vbelnd is initial.

else.

append it_final.

endif.

endif.

clear it_final.

ENDLOOP.

  • if not s_vbels is initial.

  • if it_vttp[] is initial.

  • clear it_final[].

  • else.

  • loop at it_final.

  • read table it_vttp with key vbeln = it_final-vbelnd.

  • if sy-subrc ne 0.

  • delete it_final.

  • endif.

  • endloop.

  • endif.

  • endif.

DELETE IT_FINAL WHERE KWMENG = 0.

delete it_final where vbelns = ''.

sort it_final by matnr.

*----


ELSEIF sto = 'X'.

IF s_kunnr IS INITIAL.

  • Select for PO header

SELECT ebeln kunnr statu FROM ekko INTO TABLE it_ekko

WHERE ebeln IN s_vbel

and bsart = 'UB'.

    • SELECT PO ITEMS

*

  • Select ekpoebeln ekpoebelp ekpomatnr ekpowerks ekpo~menge

*eket~eindt from

*ekpo inner join eket on ekpoebeln = eketebeln and ekpo~ebelp =

*eket~ebeln into table it_ekpo.

  • Select for delivery items

SELECT vbeln matnr lfimg vgbel VGPOS werks FROM lips INTO TABLE

it_lips

for all entries in it_ekko

WHERE vgbel = it_ekko-ebeln

and vbeln in s_vbelD

AND matnr IN s_matnr

AND werks IN s_plant.

IF sy-subrc NE 0.

MESSAGE S208 WITH 'No data exist for your selection' .

STOP.

ENDIF.

  • Select for delivery header

SELECT vbeln erdat lfdat kunnr lfart FROM likp INTO TABLE it_likp

FOR ALL ENTRIES IN it_lips

WHERE vbeln = it_lips-vbeln

AND erdat IN s_date

AND lfart EQ 'NL'.

LOOP AT it_lips.

READ TABLE it_likp WITH KEY vbeln = it_lips-vbeln.

IF sy-subrc NE 0.

DELETE it_lips.

ENDIF.

ENDLOOP.

  • Select for partner details

SELECT vbeln posnr parvw kunnr lifnr FROM vbpa INTO TABLE

it_vbpa

FOR ALL ENTRIES IN it_lips

WHERE vbeln = it_lips-vbeln

AND parvw = 'WE'.

else.

  • Select for partner details

SELECT vbeln posnr parvw kunnr lifnr FROM vbpa INTO TABLE

it_vbpa

WHERE kunnr IN s_kunnr

AND parvw = 'WE'.

  • Select for PO header

SELECT ebeln kunnr statu FROM ekko INTO TABLE it_ekko

WHERE ebeln IN s_vbel

and bsart = 'UB'.

  • Select for delivery items

SELECT vbeln matnr lfimg vgbel werks FROM lips INTO TABLE it_lips

for all entries in it_ekko

WHERE vgbel = it_ekko-ebeln

and vbeln in s_vbelD

AND matnr IN s_matnr

AND werks IN s_plant.

IF sy-subrc NE 0.

MESSAGE S208 WITH 'No data exist for your selection' .

STOP.

ENDIF.

  • Select for delivery header

SELECT vbeln erdat lfdat kunnr lfart FROM likp INTO TABLE it_likp

FOR ALL ENTRIES IN it_lips

WHERE vbeln = it_lips-vbeln

AND erdat IN s_date

AND lfart EQ 'NL'.

LOOP AT it_lips.

READ TABLE it_likp WITH KEY vbeln = it_lips-vbeln.

IF sy-subrc NE 0.

DELETE it_lips.

ENDIF.

ENDLOOP.

endif.

*select customer details.

SELECT kunnr land1 name1 stras regio ort01 FROM kna1 INTO TABLE

it_kna1

FOR ALL ENTRIES IN it_vbPA

WHERE kunnr = it_vbPA-kunnr.

  • Select for plant and stock

SELECT matnr maktx from makt INTO TABLE it_makt1

FOR ALL ENTRIES IN it_lips

WHERE matnr EQ it_lips-matnr

AND spras EQ sy-langu.

select matnr werks lgort labst from mard into table it_mard

for all entries in it_lips

WHERE matnr EQ it_lips-matnr

and lgort = 'FG01'

AND werks = it_lips-werks.

LOOP AT it_mard.

read table it_makt1 with key matnr = it_mard-matnr.

MOVE it_mard-matnr to it_makt-matnr.

MOVE it_makt1-maktx to it_makt-maktx.

MOVE it_mard-labst to it_makt-labst.

MOVE it_mard-werks to it_makt-werks.

COLLECT it_makt.

ENDLOOP.

  • Select for shipping items

  • SELECT tknum erdat vbeln FROM vttp INTO TABLE it_vttp

  • FOR ALL ENTRIES IN it_likp

  • WHERE vbeln = it_likp-vbeln

  • and tknum in s_vbels.

SELECT VBELN LDDAT FROM VBEP INTO TABLE IT_VBEP

FOR ALL ENTRIES IN IT_VBAP

WHERE VBELN = it_VBAP-vbeln.

*select for order status

SELECT vbeln gbstk lfstk cmgst FROM vbuk INTO TABLE it_vbuk

FOR ALL ENTRIES IN it_lips

WHERE vbeln = it_lips-vbeln.

*select for delivery status

SELECT avbeln akosta b~wbstk

INTO TABLE it_vbup

FROM vbup AS a INNER JOIN vbuk AS b

ON avbeln EQ bvbeln

FOR ALL ENTRIES IN it_lips

WHERE a~vbeln EQ it_lips-vbeln.

*select for text

SELECT spras

tbnam

fdnam

statu

bezei

FROM tvbst INTO TABLE it_tvbst

WHERE spras EQ sy-langu

AND tbnam EQ 'VBUK' OR tbnam EQ 'VBUP'

AND fdnam EQ 'GBSTK' OR fdnam EQ 'LFSTK' OR fdnam EQ 'CMGST'

OR fdnam EQ 'KOSTA' OR fdnam EQ 'WBSTK'.

DELETE it_tvbst WHERE spras NE 'E'.

  • Select for text

SELECT spras land1 bland bezei FROM t005u INTO TABLE it_t005u

FOR ALL ENTRIES IN it_KNA1

WHERE bland EQ it_KNA1-regio

AND spras EQ sy-langu.

DELETE it_t005u WHERE spras NE 'E'.

LOOP AT it_lips.

CLEAR: it_makt,it_likp,it_vbuk,IT_VBEP, "it_vttp,

it_vbpa,it_kna1,it_vbup,it_tvbst.

READ TABLE it_makt WITH KEY matnr = it_lips-matnr

werks = it_lips-werks.

READ TABLE it_likp WITH KEY vbeln = it_lips-vbeln.

READ TABLE it_ekko WITH KEY ebeln = it_lips-vgbel.

  • READ TABLE IT_EKPO WITH KEY EBELN = IT_LIPS-VGBEL EBELP =

*IT_LIPS-VGPOS+1(5).

READ TABLE it_KNA1 WITH KEY KUNNR = it_likp-kunnr.

  • READ TABLE it_vttp WITH KEY vbeln = it_lips-vbeln.

READ TABLE IT_VBEP WITH KEY VBELN = IT_VBAP-VBELN.

READ TABLE it_vbup WITH KEY vbeln = it_likp-vbeln.

MOVE it_lips-matnr TO it_final-matnr.

MOVE it_makt-maktx TO it_final-maktx .

MOVE it_KNA1-KUNNR TO it_final-kunnr.

MOVE it_KNA1-name1 TO it_final-name1.

MOVE it_KNA1-stras TO it_final-stras.

CLEAR it_tvbst.

READ TABLE it_t005u WITH KEY bland = it_KNA1-regio.

IF sy-subrc = 0.

MOVE it_t005u-bezei TO it_final-regio.

ELSE.

it_final-gbezei = ''.

ENDIF.

MOVE it_KNA1-ort01 TO it_final-ort01.

MOVE it_lips-vgbel TO it_final-bstnk .

MOVE it_lips-vbeln TO it_final-vbelnd .

MOVE it_lips-lfimg TO it_final-kwmeng.

  • MOVE it_likp-lfdat TO it_final-lfdat .

  • MOVE IT_EKPO-EINDT TO it_final-VDATU.

MOVE IT_likp-lfdat TO it_final-VDATU.

MOVE IT_VBEP-LDDAT TO IT_FINAL-LDDAT.

  • MOVE it_vttp-tknum TO it_final-tknum .

  • MOVE it_vttp-erdat TO it_final-erdat .

MOVE it_lips-werks TO it_final-werks .

MOVE it_makt-labst TO it_final-labst.

CLEAR it_tvbst.

READ TABLE it_tvbst WITH KEY fdnam = 'KOSTA' statu = it_vbup-kosta.

IF sy-subrc = 0.

MOVE it_tvbst-bezei TO it_final-pickst.

ELSE.

it_final-lbezei = ''.

ENDIF.

CLEAR it_tvbst.

READ TABLE it_tvbst WITH KEY fdnam = 'WBSTK' statu = it_vbup-wbstk.

IF sy-subrc = 0.

MOVE it_tvbst-bezei TO it_final-pgist.

ELSE.

it_final-lbezei = ''.

ENDIF.

if s_vbeld is initial.

APPEND it_final.

else.

if it_final-vbelnd is initial.

else.

append it_final.

endif.

endif.

clear it_final.

ENDLOOP.

  • if not s_vbels is initial.

  • if it_vttp[] is initial.

  • clear it_final[].

  • else.

  • loop at it_final.

  • read table it_vttp with key vbeln = it_final-vbelnd.

  • if sy-subrc ne 0.

  • delete it_final.

  • endif.

  • endloop.

  • endif.

  • endif.

DELETE IT_FINAL WHERE KWMENG = 0.

sort it_final by matnr.

ENDIF.

if it_final[] is initial.

MESSAGE S208 WITH 'No data exist for your selection' .

stop.

endif.

data: repid like sy-repid.

repid = sy-repid.

DATA fieldcat TYPE slis_t_fieldcat_alv.

data fieldcat1 type slis_t_fieldcat_alv.

DATA I_EVENTS TYPE SLIS_T_EVENT.

DATA WA_EVENTS TYPE SLIS_ALV_EVENT.

data: wa_fieldcat1 like line of fieldcat.

perform fill_fieldcatlog.

PERFORM ALV_EVENTS.

PERFORM ALV_GRID.

&----


*& Form fill_fieldcatlog

&----


FORM fill_fieldcatlog.

CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'

EXPORTING

I_PROGRAM_NAME = REPID

I_INTERNAL_TABNAME = 'IT_FINAL'

  • I_STRUCTURE_NAME =

  • I_CLIENT_NEVER_DISPLAY = 'X'

I_INCLNAME = REPID

I_BYPASSING_BUFFER = 'X'

I_BUFFER_ACTIVE = ' '

CHANGING

CT_FIELDCAT = FIELDCAT[]

  • EXCEPTIONS

  • INCONSISTENT_INTERFACE = 1

  • PROGRAM_ERROR = 2

  • OTHERS = 3

.

IF SY-SUBRC <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

ENDFORM. " fill_fieldcatlog

&----


*& Form ALV_EVENTS

&----


FORM ALV_EVENTS.

CALL FUNCTION 'REUSE_ALV_EVENTS_GET'

EXPORTING

I_LIST_TYPE = 0

IMPORTING

ET_EVENTS = I_EVENTS

  • EXCEPTIONS

  • LIST_TYPE_WRONG = 1

  • OTHERS = 2

.

IF SY-SUBRC <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

READ TABLE I_EVENTS INTO WA_EVENTS WITH KEY = slis_ev_top_of_page.

IF SY-SUBRC = 0.

WA_EVENTS-FORM = 'TOP_OF_PAGE'.

APPEND WA_EVENTS TO I_EVENTS.

CLEAR WA_EVENTS.

ENDIF.

ENDFORM. " ALV_EVENTS

FORM TOP_OF_PAGE.

DATA:I_COMMENTARY TYPE SLIS_T_LISTHEADER,

WA_COMMENTARY TYPE slis_listheader.

WA_COMMENTARY-TYP = 'H'.

WA_COMMENTARY-INFO = 'SALES ORDER REPORT' .

append wa_commentary to i_commentary.

clear wa_commentary.

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

EXPORTING

it_list_commentary = I_COMMENTARY

  • I_END_OF_LIST_GRID =

.

ENDFORM.

&----


*& Form ALV_GRID

&----


FORM ALV_GRID.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

  • I_INTERFACE_CHECK = ' '

  • I_BYPASSING_BUFFER = 'X'

  • I_BUFFER_ACTIVE = ' '

I_CALLBACK_PROGRAM = REPID

  • I_CALLBACK_PF_STATUS_SET = ' '

  • I_CALLBACK_USER_COMMAND = ' '

  • I_CALLBACK_TOP_OF_PAGE = ' '

  • I_CALLBACK_HTML_TOP_OF_PAGE = ' '

  • I_CALLBACK_HTML_END_OF_LIST = ' '

  • I_STRUCTURE_NAME =

  • I_BACKGROUND_ID = ' '

  • I_GRID_TITLE =

  • I_GRID_SETTINGS =

  • IS_LAYOUT =

IT_FIELDCAT = FIELDCAT[]

  • IT_EXCLUDING =

  • IT_SPECIAL_GROUPS =

  • IT_SORT =

  • IT_FILTER =

  • IS_SEL_HIDE =

  • I_DEFAULT = 'X'

  • I_SAVE = ' '

  • IS_VARIANT =

IT_EVENTS = I_EVENTS

  • IT_EVENT_EXIT =

  • IS_PRINT =

  • IS_REPREP_ID =

  • I_SCREEN_START_COLUMN = 0

  • I_SCREEN_START_LINE = 0

  • I_SCREEN_END_COLUMN = 0

  • I_SCREEN_END_LINE = 0

  • IT_ALV_GRAPHICS =

  • IT_ADD_FIELDCAT =

  • IT_HYPERLINK =

  • I_HTML_HEIGHT_TOP =

  • I_HTML_HEIGHT_END =

  • IT_EXCEPT_QINFO =

  • IMPORTING

  • E_EXIT_CAUSED_BY_CALLER =

  • ES_EXIT_CAUSED_BY_USER =

TABLES

T_OUTTAB = IT_FINAL

  • EXCEPTIONS

  • PROGRAM_ERROR = 1

  • OTHERS = 2

.

IF SY-SUBRC <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

ENDFORM. " ALV_GRID

Read only

0 Likes
1,562

Ok, you program is working fine for me. Which leads me to believe that there must be a layout variant causing you some problems. If all of the right conditions are there, it could be that you are seeing a layout variant which might have been saved against this program id in the past or something. I noticed that you are not allow the user to save a layout, nor are you forcing one.

Change the call to the function module as you see here.

  I_SAVE = 'X'

Now execute the program, at the ALV grid, select from the menu, Settings, Layout, Layout Manangement. If there is a layout there, delete it.

This is just a guess, I have seen this problem in the past and this is how the problem was fixed.

Regards,

Rich Heilman

Read only

0 Likes
1,562

Hi Rich,

I have tried out the options which you have specified.

still it is not displaying all the columns

is there any other problem in that code?

thanks

sandeep

Read only

0 Likes
1,562

I don't see any problem, it works good in my system.

REgards,

Rich Heilman

Read only

0 Likes
1,562

thanks a lot Rich

sandeep

Read only

LucianoBentiveg
Active Contributor
0 Likes
1,562

Are you filling the field catalog for all the columns?

Read only

abdul_hakim
Active Contributor
0 Likes
1,562

hi akula,

have you created the field catalog for all your columns?

This should be the reason in your scenario..

Cheers,

Abdul Hakim

Read only

Former Member
0 Likes
1,562

HI,

<b>Field catalog</b> internal table with the list of all fields and their attributes which are to be printed ,

Thanks

Sudheer

Read only

Former Member
0 Likes
1,562

Hi,

Can you paste your code and then we can see what's problem.

Thanks,

Pramod

Read only

Former Member
0 Likes
1,562

Hi Sandeep,

I guess you check your field catlog..

You might have not filled it for all 15 columns..

For sample ALV programs, refer package SLIS.

Regards,

Tanveer.

<b>Please mark helpful answers</b>

Read only

Former Member
0 Likes
1,562

Hi

Instead of filling using FM CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'

Try to fill all 15 field to field cataloge manually.

x_fieldcat-col_pos = 1.

x_fieldcat-tabname = 'ITAB'.

x_fieldcat-fieldname = 'VBELN'.

x_fieldcat-outputlen = 15.

append x_fieldcat_vbrk to it_fieldcat.

clear x_fieldcat.

Thanks,

Pramod