‎2006 Jun 06 7:10 PM
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
‎2006 Jun 06 7:15 PM
‎2006 Jun 06 7:15 PM
‎2006 Jun 06 7:37 PM
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
‎2006 Jun 06 7:53 PM
whether ZSOR structure contains all your resultant fields...
Cheers,
Abdul Hakim
‎2006 Jun 06 8:00 PM
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.
‎2006 Jun 06 8:28 PM
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
‎2006 Jun 06 8:40 PM
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
‎2006 Jun 06 9:04 PM
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
‎2006 Jun 06 9:14 PM
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
‎2006 Jun 06 11:24 PM
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
‎2006 Jun 06 11:26 PM
‎2006 Jun 06 11:51 PM
‎2006 Jun 06 7:16 PM
‎2006 Jun 06 7:16 PM
hi akula,
have you created the field catalog for all your columns?
This should be the reason in your scenario..
Cheers,
Abdul Hakim
‎2006 Jun 06 7:17 PM
HI,
<b>Field catalog</b> internal table with the list of all fields and their attributes which are to be printed ,
Thanks
Sudheer
‎2006 Jun 06 7:20 PM
Hi,
Can you paste your code and then we can see what's problem.
Thanks,
Pramod
‎2006 Jun 06 7:23 PM
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>
‎2006 Jun 06 8:40 PM
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