‎2008 Jul 31 12:19 PM
Hi all,
I have a requirement wherein i have to display an ALV with some static fields and some dynamic fields.
when i choose icon for views in the output for list output then only dynamic fields are displayed.
What could be the probable reasons, please tell. and suggest the remedy also.
Please reply fast, its urgent.
regards,
Kushagra
‎2008 Jul 31 12:40 PM
Check the sample code for Display using the ALV grid.
REPORT y_test.
TYPE-POOLS:slis.
DATA: lo_struct_type TYPE REF TO cl_abap_structdescr.
DATA: lo_table_type TYPE REF TO cl_abap_tabledescr.
DATA: lo_dataref TYPE REF TO data.
DATA: wa_layout TYPE slis_layout_alv .
DATA: lt_comp_tab TYPE cl_abap_structdescr=>component_table.
DATA: ls_comp_tab LIKE LINE OF lt_comp_tab.
DATA: it_fieldcat TYPE slis_t_fieldcat_alv.
DATA: wa_fcat LIKE LINE OF it_fieldcat.
FIELD-SYMBOLS: <lt_table> TYPE STANDARD TABLE,
<ls_table> TYPE ANY,
<lv_field> TYPE ANY.
ls_comp_tab-name = 'VBELN'.
ls_comp_tab-type ?= cl_abap_datadescr=>describe_by_name( 'CHAR10' ).
APPEND ls_comp_tab TO lt_comp_tab.
ls_comp_tab-name = 'POSNR'.
ls_comp_tab-type ?= cl_abap_datadescr=>describe_by_name( 'CHAR10' ).
APPEND ls_comp_tab TO lt_comp_tab.
wa_fcat-fieldname = 'VBELN'.
wa_fcat-outputlen = 10.
wa_fcat-seltext_l = 'Sales Order'.
APPEND wa_fcat TO it_fieldcat.
wa_fcat-fieldname = 'POSNR'.
wa_fcat-outputlen = 8.
wa_fcat-seltext_l = 'Sales Item'.
APPEND wa_fcat TO it_fieldcat.
*Create dynamic internal table based on LT_COMP_TAB
lo_struct_type = cl_abap_structdescr=>create( lt_comp_tab ).
lo_table_type = cl_abap_tabledescr=>create( p_line_type = lo_struct_type
).
*Create references to dyn internal table and work area
CREATE DATA lo_dataref TYPE HANDLE lo_table_type.
ASSIGN lo_dataref->* TO <lt_table>.
CREATE DATA lo_dataref TYPE HANDLE lo_struct_type.
ASSIGN lo_dataref->* TO <ls_table>.
ASSIGN COMPONENT 'VBELN' OF STRUCTURE <ls_table> TO <lv_field>.
IF sy-subrc = 0.
<lv_field> = '10085'.
ENDIF.
ASSIGN COMPONENT 'POSNR' OF STRUCTURE <ls_table> TO <lv_field>.
IF sy-subrc = 0.
<lv_field> = '000010'.
ENDIF.
APPEND <ls_table> TO <lt_table>.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = sy-repid
i_callback_user_command = 'USER_COMMAND'
is_layout = wa_layout
it_fieldcat = it_fieldcat
i_save = 'A'
TABLES
t_outtab = <lt_table>.Regards
Vijay Babu Dudla
‎2008 Jul 31 12:46 PM
‎2008 Jul 31 3:51 PM
i have already develpoed the dynamic alv but the problem is that when you choose the alv standard icon for viewing display in list output then only my dynamic fields appear in the output but and rest of the fields disappear.
thank you.
‎2008 Jul 31 3:53 PM
‎2008 Jul 31 3:55 PM
&----
*& Report Y_ALV_DYNAMIC *
*& *
&----
*& *
*& *
&----
REPORT y_alv_dynamic .
************************************************************************
I N C L U D E S **
************************************************************************
*INCLUDE zsdsro_reso_qt_rep_top.
************************************************************************
TYPE POOLS **
************************************************************************
TYPE-POOLS: slis.
************************************************************************
T A B L E S **
************************************************************************
TABLES: ekko ,
ekpo ,
eket ,
mard ,
makt ,
t001 ,
t024 ,
t023 ,
t161 .
************************************************************************
T Y P E S **
************************************************************************
TYPES : BEGIN OF tp_eket, "Scheduling Agreement Schedule Lines
ebeln TYPE ebeln, "(key) Purchasing Document Number
ebelp TYPE ebelp, "(key) Item Number of Purchasing Document
etenr TYPE eeten, "(key) Delivery Schedule Line Counter
eindt TYPE eindt, "Item delivery date
wemng TYPE weemg, "Quantity of goods received
END OF tp_eket.
TYPES : tp_ekko TYPE ekko.
TYPES : tp_ekpo TYPE ekpo.
TYPES : BEGIN OF tp_makt, "Material Descriptions
matnr TYPE matnr, "(key) Material Number
spras TYPE spras, "(key) Language Key
maktx TYPE maktx, "Material Description
END OF tp_makt.
TYPES : BEGIN OF tp_mard, "Storage Location Data for Material
matnr TYPE matnr, "(key) Material Number
werks TYPE werks_d, "(key) Plant
lgort TYPE lgort_d, "(key) Storage Location
labst TYPE labst, "Valuated stock with unrestricted use
w_labst TYPE labst, "Total Stock perPlant
END OF tp_mard.
TYPES : BEGIN OF tp_final1,
ebeln LIKE ekko-ebeln,
bukrs LIKE ekko-bukrs,
bstyp LIKE ekko-bstyp,
bsart LIKE ekko-bsart,
bsakz LIKE ekko-bsakz,
loekz LIKE ekko-loekz,
statu LIKE ekko-statu,
aedat LIKE ekko-aedat,
ernam LIKE ekko-ernam,
pincr LIKE ekko-pincr,
lponr LIKE ekko-lponr,
lifnr LIKE ekko-lifnr,
spras LIKE ekko-spras,
zterm LIKE ekko-zterm,
zbd1t LIKE ekko-zbd1t,
zbd2t LIKE ekko-zbd2t,
zbd3t LIKE ekko-zbd3t,
zbd1p LIKE ekko-zbd1p,
zbd2p LIKE ekko-zbd2p,
ekorg LIKE ekko-ekorg,
ekgrp LIKE ekko-ekgrp,
waers LIKE ekko-waers,
wkurs LIKE ekko-wkurs,
kufix LIKE ekko-kufix,
bedat LIKE ekko-bedat,
kdatb LIKE ekko-kdatb,
kdate LIKE ekko-kdate,
bwbdt LIKE ekko-bwbdt,
angdt LIKE ekko-angdt,
bnddt LIKE ekko-bnddt,
gwldt LIKE ekko-gwldt,
ausnr LIKE ekko-ausnr,
angnr LIKE ekko-angnr,
ihran LIKE ekko-ihran,
ihrez LIKE ekko-ihrez,
verkf LIKE ekko-verkf,
telf1 LIKE ekko-telf1,
llief LIKE ekko-llief,
kunnr LIKE ekko-kunnr,
konnr LIKE ekko-konnr,
abgru LIKE ekko-abgru,
autlf LIKE ekko-autlf,
weakt LIKE ekko-weakt,
reswk LIKE ekko-reswk,
lblif LIKE ekko-lblif,
inco1 LIKE ekko-inco1,
inco2 LIKE ekko-inco2,
ktwrt LIKE ekko-ktwrt,
submi LIKE ekko-submi,
knumv LIKE ekko-knumv,
kalsm LIKE ekko-kalsm,
stafo LIKE ekko-stafo,
lifre LIKE ekko-lifre,
exnum LIKE ekko-exnum,
unsez LIKE ekko-unsez,
logsy LIKE ekko-logsy,
upinc LIKE ekko-upinc,
stako LIKE ekko-stako,
frggr LIKE ekko-frggr,
frgsx LIKE ekko-frgsx,
frgke LIKE ekko-frgke,
frgzu LIKE ekko-frgzu,
frgrl LIKE ekko-frgrl,
lands LIKE ekko-lands,
lphis LIKE ekko-lphis,
adrnr LIKE ekko-adrnr,
stceg_l LIKE ekko-stceg_l,
stceg LIKE ekko-stceg,
absgr LIKE ekko-absgr,
addnr LIKE ekko-addnr,
kornr LIKE ekko-kornr,
memory LIKE ekko-memory,
procstat LIKE ekko-procstat,
rlwrt LIKE ekko-rlwrt,
revno LIKE ekko-revno,
plc LIKE ekko-plc,
smb LIKE ekko-smb,
ecc LIKE ekko-ecc,
ipp LIKE ekko-ipp,
cur LIKE ekko-cur,
eco LIKE ekko-eco,
pco LIKE ekko-pco,
dpt LIKE ekko-dpt,
top LIKE ekko-top,
sus LIKE ekko-sus,
pcn LIKE ekko-pcn,
tru LIKE ekko-tru,
pcy LIKE ekko-pcy,
pcd LIKE ekko-pcd,
pbn LIKE ekko-pbn,
amn LIKE ekko-amn,
dno LIKE ekko-dno,
postat LIKE ekko-postat,
ebelp LIKE ekpo-ebelp,
loekz_i LIKE ekpo-loekz,
statu_i LIKE ekpo-statu,
aedat_i LIKE ekpo-aedat,
txz01 LIKE ekpo-txz01,
matnr LIKE ekpo-matnr,
ematn LIKE ekpo-ematn,
bukrs_i LIKE ekpo-bukrs,
werks LIKE ekpo-werks,
lgort LIKE ekpo-lgort,
bednr LIKE ekpo-bednr,
matkl LIKE ekpo-matkl,
infnr LIKE ekpo-infnr,
idnlf LIKE ekpo-idnlf,
ktmng LIKE ekpo-ktmng,
menge LIKE ekpo-menge,
meins LIKE ekpo-meins,
bprme LIKE ekpo-bprme,
bpumz LIKE ekpo-bpumz,
bpumn LIKE ekpo-bpumn,
umrez LIKE ekpo-umrez,
umren LIKE ekpo-umren,
netpr LIKE ekpo-netpr,
peinh LIKE ekpo-peinh,
netwr LIKE ekpo-netwr,
brtwr LIKE ekpo-brtwr,
agdat LIKE ekpo-agdat,
webaz LIKE ekpo-webaz,
mwskz LIKE ekpo-mwskz,
bonus LIKE ekpo-bonus,
insmk LIKE ekpo-insmk,
spinf LIKE ekpo-spinf,
prsdr LIKE ekpo-prsdr,
schpr LIKE ekpo-schpr,
mahnz LIKE ekpo-mahnz,
mahn1 LIKE ekpo-mahn1,
mahn2 LIKE ekpo-mahn2,
mahn3 LIKE ekpo-mahn3,
uebto LIKE ekpo-uebto,
uebtk LIKE ekpo-uebtk,
untto LIKE ekpo-untto,
bwtar LIKE ekpo-bwtar,
bwtty LIKE ekpo-bwtty,
abskz LIKE ekpo-abskz,
agmem LIKE ekpo-agmem,
elikz LIKE ekpo-elikz,
erekz LIKE ekpo-erekz,
pstyp LIKE ekpo-pstyp,
knttp LIKE ekpo-knttp,
kzvbr LIKE ekpo-kzvbr,
vrtkz LIKE ekpo-vrtkz,
twrkz LIKE ekpo-twrkz,
wepos LIKE ekpo-wepos,
weunb LIKE ekpo-weunb,
repos LIKE ekpo-repos,
webre LIKE ekpo-webre,
kzabs LIKE ekpo-kzabs,
labnr LIKE ekpo-labnr,
konnr_i LIKE ekpo-konnr,
ktpnr LIKE ekpo-ktpnr,
abdat LIKE ekpo-abdat,
abftz LIKE ekpo-abftz,
etfz1 LIKE ekpo-etfz1,
etfz2 LIKE ekpo-etfz2,
kzstu LIKE ekpo-kzstu,
notkz LIKE ekpo-notkz,
lmein LIKE ekpo-lmein,
evers LIKE ekpo-evers,
zwert LIKE ekpo-zwert,
navnw LIKE ekpo-navnw,
abmng LIKE ekpo-abmng,
prdat LIKE ekpo-prdat,
bstyp_i LIKE ekpo-bstyp,
effwr LIKE ekpo-effwr,
xoblr LIKE ekpo-xoblr,
kunnr_i LIKE ekpo-kunnr,
adrnr_i LIKE ekpo-adrnr,
ekkol LIKE ekpo-ekkol,
sktof LIKE ekpo-sktof,
stafo_i LIKE ekpo-stafo,
plifz LIKE ekpo-plifz,
ntgew LIKE ekpo-ntgew,
gewei LIKE ekpo-gewei,
txjcd LIKE ekpo-txjcd,
etdrk LIKE ekpo-etdrk,
sobkz LIKE ekpo-sobkz,
arsnr LIKE ekpo-arsnr,
arsps LIKE ekpo-arsps,
insnc LIKE ekpo-insnc,
ssqss LIKE ekpo-ssqss,
zgtyp LIKE ekpo-zgtyp,
ean11 LIKE ekpo-ean11,
bstae LIKE ekpo-bstae,
revlv LIKE ekpo-revlv,
geber LIKE ekpo-geber,
fistl LIKE ekpo-fistl,
fipos LIKE ekpo-fipos,
ko_gsber LIKE ekpo-ko_gsber,
ko_pargb LIKE ekpo-ko_pargb,
ko_prctr LIKE ekpo-ko_prctr,
ko_pprctr LIKE ekpo-ko_pprctr,
meprf LIKE ekpo-meprf,
brgew LIKE ekpo-brgew,
volum LIKE ekpo-volum,
voleh LIKE ekpo-voleh,
inco1_i LIKE ekpo-inco1,
inco2_i LIKE ekpo-inco2,
vorab LIKE ekpo-vorab,
kolif LIKE ekpo-kolif,
ltsnr LIKE ekpo-ltsnr,
packno LIKE ekpo-packno,
fplnr LIKE ekpo-fplnr,
gnetwr LIKE ekpo-gnetwr,
stapo LIKE ekpo-stapo,
uebpo LIKE ekpo-uebpo,
lewed LIKE ekpo-lewed,
emlif LIKE ekpo-emlif,
lblkz LIKE ekpo-lblkz,
satnr LIKE ekpo-satnr,
attyp LIKE ekpo-attyp,
kanba LIKE ekpo-kanba,
adrn2 LIKE ekpo-adrn2,
cuobj LIKE ekpo-cuobj,
xersy LIKE ekpo-xersy,
eildt LIKE ekpo-eildt,
drdat LIKE ekpo-drdat,
druhr LIKE ekpo-druhr,
drunr LIKE ekpo-drunr,
aktnr LIKE ekpo-aktnr,
abeln LIKE ekpo-abeln,
abelp LIKE ekpo-abelp,
anzpu LIKE ekpo-anzpu,
punei LIKE ekpo-punei,
saiso LIKE ekpo-saiso,
saisj LIKE ekpo-saisj,
ebon2 LIKE ekpo-ebon2,
ebon3 LIKE ekpo-ebon3,
ebonf LIKE ekpo-ebonf,
mlmaa LIKE ekpo-mlmaa,
mhdrz LIKE ekpo-mhdrz,
anfnr LIKE ekpo-anfnr,
anfps LIKE ekpo-anfps,
kzkfg LIKE ekpo-kzkfg,
usequ LIKE ekpo-usequ,
umsok LIKE ekpo-umsok,
banfn LIKE ekpo-banfn,
bnfpo LIKE ekpo-bnfpo,
mtart LIKE ekpo-mtart,
uptyp LIKE ekpo-uptyp,
upvor LIKE ekpo-upvor,
kzwi1 LIKE ekpo-kzwi1,
kzwi2 LIKE ekpo-kzwi2,
kzwi3 LIKE ekpo-kzwi3,
kzwi4 LIKE ekpo-kzwi4,
kzwi5 LIKE ekpo-kzwi5,
kzwi6 LIKE ekpo-kzwi6,
sikgr LIKE ekpo-sikgr,
mfzhi LIKE ekpo-mfzhi,
ffzhi LIKE ekpo-ffzhi,
retpo LIKE ekpo-retpo,
aurel LIKE ekpo-aurel,
bsgru LIKE ekpo-bsgru,
lfret LIKE ekpo-lfret,
mfrgr LIKE ekpo-mfrgr,
nrfhg LIKE ekpo-nrfhg,
j_1bnbm LIKE ekpo-j_1bnbm,
j_1bmatuse LIKE ekpo-j_1bmatuse,
j_1bmatorg LIKE ekpo-j_1bmatorg,
j_1bownpro LIKE ekpo-j_1bownpro,
j_1bindust LIKE ekpo-j_1bindust,
abueb LIKE ekpo-abueb,
nlabd LIKE ekpo-nlabd,
nfabd LIKE ekpo-nfabd,
kzbws LIKE ekpo-kzbws,
bonba LIKE ekpo-bonba,
fabkz LIKE ekpo-fabkz,
j_1aindxp LIKE ekpo-j_1aindxp,
j_1aidatep LIKE ekpo-j_1aidatep,
mprof LIKE ekpo-mprof,
eglkz LIKE ekpo-eglkz,
kztlf LIKE ekpo-kztlf,
kzfme LIKE ekpo-kzfme,
rdprf LIKE ekpo-rdprf,
techs LIKE ekpo-techs,
chg_srv LIKE ekpo-chg_srv,
chg_fplnr LIKE ekpo-chg_fplnr,
mfrpn LIKE ekpo-mfrpn,
mfrnr LIKE ekpo-mfrnr,
emnfr LIKE ekpo-emnfr,
novet LIKE ekpo-novet,
afnam LIKE ekpo-afnam,
tzonrc LIKE ekpo-tzonrc,
iprkz LIKE ekpo-iprkz,
lebre LIKE ekpo-lebre,
berid LIKE ekpo-berid,
xconditions LIKE ekpo-xconditions,
apoms LIKE ekpo-apoms,
ccomp LIKE ekpo-ccomp,
grant_nbr LIKE ekpo-grant_nbr ,
fkber LIKE ekpo-fkber,
status LIKE ekpo-status,
reslo LIKE ekpo-reslo,
excpe LIKE ekpo-excpe,
zzdpas LIKE ekpo-zzdpas,
zzvbeln LIKE ekpo-zzvbeln,
zzvbelp LIKE ekpo-zzvbelp,
zzmodel LIKE ekpo-zzmodel,
zzanzsn LIKE ekpo-zzanzsn,
refsite LIKE ekpo-refsite,
/sapmp/gpose LIKE ekpo-/sapmp/gpose,
angpn LIKE ekpo-angpn,
admoi LIKE ekpo-admoi,
adpri LIKE ekpo-adpri,
lprio LIKE ekpo-lprio,
adacn LIKE ekpo-adacn,
afpnr LIKE ekpo-afpnr,
bsark LIKE ekpo-bsark,
audat LIKE ekpo-audat,
angnr_i LIKE ekpo-angnr,
pnstat LIKE ekpo-pnstat,
serru LIKE ekpo-serru,
anzsn LIKE ekpo-anzsn,
sernp LIKE ekpo-sernp,
disub_sobkz LIKE ekpo-disub_sobkz,
disub_pspnr LIKE ekpo-disub_pspnr,
disub_kunnr LIKE ekpo-disub_kunnr,
disub_vbeln LIKE ekpo-disub_vbeln,
disub_posnr LIKE ekpo-disub_posnr,
disub_owner LIKE ekpo-disub_owner,
stpac LIKE ekpo-stpac,
lgbzo LIKE ekpo-lgbzo,
lgbzo_b LIKE ekpo-lgbzo_b,
addrnum LIKE ekpo-addrnum,
consnum LIKE ekpo-consnum,
borgr_miss LIKE ekpo-borgr_miss,
eindt LIKE eket-eindt, "Item delivery date
maktx LIKE makt-maktx, "Material Description
w_labst_2010 TYPE labst,
w_labst_2020 TYPE labst,
w_labst_2030 TYPE labst,
w_labst_2040 TYPE labst,
w_labst_2050 TYPE labst,
w_labst_2060 TYPE labst,
w_labst_2070 TYPE labst,
w_labst_2080 TYPE labst,
END OF tp_final1.
DATA : BEGIN OF t_final_new OCCURS 0,
ebeln LIKE ekko-ebeln,
bukrs LIKE ekko-bukrs,
bstyp LIKE ekko-bstyp,
bsart LIKE ekko-bsart,
bsakz LIKE ekko-bsakz,
loekz LIKE ekko-loekz,
statu LIKE ekko-statu,
aedat LIKE ekko-aedat,
ernam LIKE ekko-ernam,
pincr LIKE ekko-pincr,
lponr LIKE ekko-lponr,
lifnr LIKE ekko-lifnr,
spras LIKE ekko-spras,
zterm LIKE ekko-zterm,
zbd1t LIKE ekko-zbd1t,
zbd2t LIKE ekko-zbd2t,
zbd3t LIKE ekko-zbd3t,
zbd1p LIKE ekko-zbd1p,
zbd2p LIKE ekko-zbd2p,
ekorg LIKE ekko-ekorg,
ekgrp LIKE ekko-ekgrp,
waers LIKE ekko-waers,
wkurs LIKE ekko-wkurs,
kufix LIKE ekko-kufix,
bedat LIKE ekko-bedat,
kdatb LIKE ekko-kdatb,
kdate LIKE ekko-kdate,
bwbdt LIKE ekko-bwbdt,
angdt LIKE ekko-angdt,
bnddt LIKE ekko-bnddt,
gwldt LIKE ekko-gwldt,
ausnr LIKE ekko-ausnr,
angnr LIKE ekko-angnr,
ihran LIKE ekko-ihran,
ihrez LIKE ekko-ihrez,
verkf LIKE ekko-verkf,
telf1 LIKE ekko-telf1,
llief LIKE ekko-llief,
kunnr LIKE ekko-kunnr,
konnr LIKE ekko-konnr,
abgru LIKE ekko-abgru,
autlf LIKE ekko-autlf,
weakt LIKE ekko-weakt,
reswk LIKE ekko-reswk,
lblif LIKE ekko-lblif,
inco1 LIKE ekko-inco1,
inco2 LIKE ekko-inco2,
ktwrt LIKE ekko-ktwrt,
submi LIKE ekko-submi,
knumv LIKE ekko-knumv,
kalsm LIKE ekko-kalsm,
stafo LIKE ekko-stafo,
lifre LIKE ekko-lifre,
exnum LIKE ekko-exnum,
unsez LIKE ekko-unsez,
logsy LIKE ekko-logsy,
upinc LIKE ekko-upinc,
stako LIKE ekko-stako,
frggr LIKE ekko-frggr,
frgsx LIKE ekko-frgsx,
frgke LIKE ekko-frgke,
frgzu LIKE ekko-frgzu,
frgrl LIKE ekko-frgrl,
lands LIKE ekko-lands,
lphis LIKE ekko-lphis,
adrnr LIKE ekko-adrnr,
stceg_l LIKE ekko-stceg_l,
stceg LIKE ekko-stceg,
absgr LIKE ekko-absgr,
addnr LIKE ekko-addnr,
kornr LIKE ekko-kornr,
memory LIKE ekko-memory,
procstat LIKE ekko-procstat,
rlwrt LIKE ekko-rlwrt,
revno LIKE ekko-revno,
plc LIKE ekko-plc,
smb LIKE ekko-smb,
ecc LIKE ekko-ecc,
ipp LIKE ekko-ipp,
cur LIKE ekko-cur,
eco LIKE ekko-eco,
pco LIKE ekko-pco,
dpt LIKE ekko-dpt,
top LIKE ekko-top,
sus LIKE ekko-sus,
pcn LIKE ekko-pcn,
tru LIKE ekko-tru,
pcy LIKE ekko-pcy,
pcd LIKE ekko-pcd,
pbn LIKE ekko-pbn,
amn LIKE ekko-amn,
dno LIKE ekko-dno,
postat LIKE ekko-postat,
ebelp LIKE ekpo-ebelp,
loekz_i LIKE ekpo-loekz,
statu_i LIKE ekpo-statu,
aedat_i LIKE ekpo-aedat,
txz01 LIKE ekpo-txz01,
matnr LIKE ekpo-matnr,
ematn LIKE ekpo-ematn,
bukrs_i LIKE ekpo-bukrs,
werks LIKE ekpo-werks,
lgort LIKE ekpo-lgort,
bednr LIKE ekpo-bednr,
matkl LIKE ekpo-matkl,
infnr LIKE ekpo-infnr,
idnlf LIKE ekpo-idnlf,
ktmng LIKE ekpo-ktmng,
menge LIKE ekpo-menge,
meins LIKE ekpo-meins,
bprme LIKE ekpo-bprme,
bpumz LIKE ekpo-bpumz,
bpumn LIKE ekpo-bpumn,
umrez LIKE ekpo-umrez,
umren LIKE ekpo-umren,
netpr LIKE ekpo-netpr,
peinh LIKE ekpo-peinh,
netwr LIKE ekpo-netwr,
brtwr LIKE ekpo-brtwr,
agdat LIKE ekpo-agdat,
webaz LIKE ekpo-webaz,
mwskz LIKE ekpo-mwskz,
bonus LIKE ekpo-bonus,
insmk LIKE ekpo-insmk,
spinf LIKE ekpo-spinf,
prsdr LIKE ekpo-prsdr,
schpr LIKE ekpo-schpr,
mahnz LIKE ekpo-mahnz,
mahn1 LIKE ekpo-mahn1,
mahn2 LIKE ekpo-mahn2,
mahn3 LIKE ekpo-mahn3,
uebto LIKE ekpo-uebto,
uebtk LIKE ekpo-uebtk,
untto LIKE ekpo-untto,
bwtar LIKE ekpo-bwtar,
bwtty LIKE ekpo-bwtty,
abskz LIKE ekpo-abskz,
agmem LIKE ekpo-agmem,
elikz LIKE ekpo-elikz,
erekz LIKE ekpo-erekz,
pstyp LIKE ekpo-pstyp,
knttp LIKE ekpo-knttp,
kzvbr LIKE ekpo-kzvbr,
vrtkz LIKE ekpo-vrtkz,
twrkz LIKE ekpo-twrkz,
wepos LIKE ekpo-wepos,
weunb LIKE ekpo-weunb,
repos LIKE ekpo-repos,
webre LIKE ekpo-webre,
kzabs LIKE ekpo-kzabs,
labnr LIKE ekpo-labnr,
konnr_i LIKE ekpo-konnr,
ktpnr LIKE ekpo-ktpnr,
abdat LIKE ekpo-abdat,
abftz LIKE ekpo-abftz,
etfz1 LIKE ekpo-etfz1,
etfz2 LIKE ekpo-etfz2,
kzstu LIKE ekpo-kzstu,
notkz LIKE ekpo-notkz,
lmein LIKE ekpo-lmein,
evers LIKE ekpo-evers,
zwert LIKE ekpo-zwert,
navnw LIKE ekpo-navnw,
abmng LIKE ekpo-abmng,
prdat LIKE ekpo-prdat,
bstyp_i LIKE ekpo-bstyp,
effwr LIKE ekpo-effwr,
xoblr LIKE ekpo-xoblr,
kunnr_i LIKE ekpo-kunnr,
adrnr_i LIKE ekpo-adrnr,
ekkol LIKE ekpo-ekkol,
sktof LIKE ekpo-sktof,
stafo_i LIKE ekpo-stafo,
plifz LIKE ekpo-plifz,
ntgew LIKE ekpo-ntgew,
gewei LIKE ekpo-gewei,
txjcd LIKE ekpo-txjcd,
etdrk LIKE ekpo-etdrk,
sobkz LIKE ekpo-sobkz,
arsnr LIKE ekpo-arsnr,
arsps LIKE ekpo-arsps,
insnc LIKE ekpo-insnc,
ssqss LIKE ekpo-ssqss,
zgtyp LIKE ekpo-zgtyp,
ean11 LIKE ekpo-ean11,
bstae LIKE ekpo-bstae,
revlv LIKE ekpo-revlv,
geber LIKE ekpo-geber,
fistl LIKE ekpo-fistl,
fipos LIKE ekpo-fipos,
ko_gsber LIKE ekpo-ko_gsber,
ko_pargb LIKE ekpo-ko_pargb,
ko_prctr LIKE ekpo-ko_prctr,
ko_pprctr LIKE ekpo-ko_pprctr,
meprf LIKE ekpo-meprf,
brgew LIKE ekpo-brgew,
volum LIKE ekpo-volum,
voleh LIKE ekpo-voleh,
inco1_i LIKE ekpo-inco1,
inco2_i LIKE ekpo-inco2,
vorab LIKE ekpo-vorab,
kolif LIKE ekpo-kolif,
ltsnr LIKE ekpo-ltsnr,
packno LIKE ekpo-packno,
fplnr LIKE ekpo-fplnr,
gnetwr LIKE ekpo-gnetwr,
stapo LIKE ekpo-stapo,
uebpo LIKE ekpo-uebpo,
lewed LIKE ekpo-lewed,
emlif LIKE ekpo-emlif,
lblkz LIKE ekpo-lblkz,
satnr LIKE ekpo-satnr,
attyp LIKE ekpo-attyp,
kanba LIKE ekpo-kanba,
adrn2 LIKE ekpo-adrn2,
cuobj LIKE ekpo-cuobj,
xersy LIKE ekpo-xersy,
eildt LIKE ekpo-eildt,
drdat LIKE ekpo-drdat,
druhr LIKE ekpo-druhr,
drunr LIKE ekpo-drunr,
aktnr LIKE ekpo-aktnr,
abeln LIKE ekpo-abeln,
abelp LIKE ekpo-abelp,
anzpu LIKE ekpo-anzpu,
punei LIKE ekpo-punei,
saiso LIKE ekpo-saiso,
saisj LIKE ekpo-saisj,
ebon2 LIKE ekpo-ebon2,
ebon3 LIKE ekpo-ebon3,
ebonf LIKE ekpo-ebonf,
mlmaa LIKE ekpo-mlmaa,
mhdrz LIKE ekpo-mhdrz,
anfnr LIKE ekpo-anfnr,
anfps LIKE ekpo-anfps,
kzkfg LIKE ekpo-kzkfg,
usequ LIKE ekpo-usequ,
umsok LIKE ekpo-umsok,
banfn LIKE ekpo-banfn,
bnfpo LIKE ekpo-bnfpo,
mtart LIKE ekpo-mtart,
uptyp LIKE ekpo-uptyp,
upvor LIKE ekpo-upvor,
kzwi1 LIKE ekpo-kzwi1,
kzwi2 LIKE ekpo-kzwi2,
kzwi3 LIKE ekpo-kzwi3,
kzwi4 LIKE ekpo-kzwi4,
kzwi5 LIKE ekpo-kzwi5,
kzwi6 LIKE ekpo-kzwi6,
sikgr LIKE ekpo-sikgr,
mfzhi LIKE ekpo-mfzhi,
ffzhi LIKE ekpo-ffzhi,
retpo LIKE ekpo-retpo,
aurel LIKE ekpo-aurel,
bsgru LIKE ekpo-bsgru,
lfret LIKE ekpo-lfret,
mfrgr LIKE ekpo-mfrgr,
nrfhg LIKE ekpo-nrfhg,
j_1bnbm LIKE ekpo-j_1bnbm,
j_1bmatuse LIKE ekpo-j_1bmatuse,
j_1bmatorg LIKE ekpo-j_1bmatorg,
j_1bownpro LIKE ekpo-j_1bownpro,
j_1bindust LIKE ekpo-j_1bindust,
abueb LIKE ekpo-abueb,
nlabd LIKE ekpo-nlabd,
nfabd LIKE ekpo-nfabd,
kzbws LIKE ekpo-kzbws,
bonba LIKE ekpo-bonba,
fabkz LIKE ekpo-fabkz,
j_1aindxp LIKE ekpo-j_1aindxp,
j_1aidatep LIKE ekpo-j_1aidatep,
mprof LIKE ekpo-mprof,
eglkz LIKE ekpo-eglkz,
kztlf LIKE ekpo-kztlf,
kzfme LIKE ekpo-kzfme,
rdprf LIKE ekpo-rdprf,
techs LIKE ekpo-techs,
chg_srv LIKE ekpo-chg_srv,
chg_fplnr LIKE ekpo-chg_fplnr,
mfrpn LIKE ekpo-mfrpn,
mfrnr LIKE ekpo-mfrnr,
emnfr LIKE ekpo-emnfr,
novet LIKE ekpo-novet,
afnam LIKE ekpo-afnam,
tzonrc LIKE ekpo-tzonrc,
iprkz LIKE ekpo-iprkz,
lebre LIKE ekpo-lebre,
berid LIKE ekpo-berid,
xconditions LIKE ekpo-xconditions,
apoms LIKE ekpo-apoms,
ccomp LIKE ekpo-ccomp,
grant_nbr LIKE ekpo-grant_nbr ,
fkber LIKE ekpo-fkber,
status LIKE ekpo-status,
reslo LIKE ekpo-reslo,
excpe LIKE ekpo-excpe,
zzdpas LIKE ekpo-zzdpas,
zzvbeln LIKE ekpo-zzvbeln,
zzvbelp LIKE ekpo-zzvbelp,
zzmodel LIKE ekpo-zzmodel,
zzanzsn LIKE ekpo-zzanzsn,
refsite LIKE ekpo-refsite,
/sapmp/gpose LIKE ekpo-/sapmp/gpose,
angpn LIKE ekpo-angpn,
admoi LIKE ekpo-admoi,
adpri LIKE ekpo-adpri,
lprio LIKE ekpo-lprio,
adacn LIKE ekpo-adacn,
afpnr LIKE ekpo-afpnr,
bsark LIKE ekpo-bsark,
audat LIKE ekpo-audat,
angnr_i LIKE ekpo-angnr,
pnstat LIKE ekpo-pnstat,
serru LIKE ekpo-serru,
anzsn LIKE ekpo-anzsn,
sernp LIKE ekpo-sernp,
disub_sobkz LIKE ekpo-disub_sobkz,
disub_pspnr LIKE ekpo-disub_pspnr,
disub_kunnr LIKE ekpo-disub_kunnr,
disub_vbeln LIKE ekpo-disub_vbeln,
disub_posnr LIKE ekpo-disub_posnr,
disub_owner LIKE ekpo-disub_owner,
stpac LIKE ekpo-stpac,
lgbzo LIKE ekpo-lgbzo,
lgbzo_b LIKE ekpo-lgbzo_b,
addrnum LIKE ekpo-addrnum,
consnum LIKE ekpo-consnum,
borgr_miss LIKE ekpo-borgr_miss,
eindt LIKE eket-eindt, "Item delivery date
maktx LIKE makt-maktx, "Material Description
w_labst_2010 TYPE labst,
w_labst_2020 TYPE labst,
w_labst_2030 TYPE labst,
w_labst_2040 TYPE labst,
w_labst_2050 TYPE labst,
w_labst_2060 TYPE labst,
w_labst_2070 TYPE labst,
w_labst_2080 TYPE labst,
END OF t_final_new.
************************************************************************
T A B L E S **
************************************************************************
DATA : t_final TYPE STANDARD TABLE OF tp_final1,
t_ekko TYPE STANDARD TABLE OF tp_ekko,
t_ekpo TYPE STANDARD TABLE OF tp_ekpo,
t_eket TYPE STANDARD TABLE OF tp_eket,
t_makt TYPE STANDARD TABLE OF tp_makt,
t_mard TYPE STANDARD TABLE OF tp_mard,
t_t001w TYPE STANDARD TABLE OF werks_d,
lt_fieldcat TYPE slis_t_fieldcat_alv, "Field catalog
it_variant LIKE disvariant,
it_variant1 LIKE disvariant.
************************************************************************
S T R U C T R U R E S **
************************************************************************
DATA : wa_final TYPE tp_final1,
wa_ekko TYPE tp_ekko,
wa_ekpo TYPE tp_ekpo,
wa_eket TYPE tp_eket,
wa_makt TYPE tp_makt,
wa_mard TYPE tp_mard,
wa_t001w TYPE werks_d.
************************************************************************
C O N S T A N T S **
************************************************************************
CONSTANTS : c_2010(4) TYPE c VALUE '2010',
c_2020(4) TYPE c VALUE '2020',
c_2030(4) TYPE c VALUE '2030',
c_2040(4) TYPE c VALUE '2040',
c_2050(4) TYPE c VALUE '2050',
c_2060(4) TYPE c VALUE '2060',
c_2070(4) TYPE c VALUE '2070',
c_2080(4) TYPE c VALUE '2080',
c_a(1) TYPE c VALUE 'A' ,
c_x(1) TYPE c VALUE 'X' .
*--Global Variable declaration
DATA : w_bedat TYPE ebdat, "Purchasing Document Date
w_bukrs TYPE bukrs, "Company code
w_ekgrp TYPE bkgrp, "Purchasing group
w_matkl TYPE matkl, "Material Group
w_bsart TYPE esart, "Purchasing Document Type
flag TYPE c,
w_var TYPE slis_vari.
----
Structures for ALV
----
DATA: wa_layout TYPE lvc_s_layo,
wa_fcat TYPE lvc_s_fcat.
----
internal tables for ALV
----
DATA : t_fcat TYPE lvc_t_fcat,
w_docking TYPE REF TO cl_gui_docking_container,
w_grid TYPE REF TO cl_gui_alv_grid,
t_sort TYPE lvc_t_sort.
----
FIELD SYMBOLS DECLARATION *
----
FIELD-SYMBOLS: <dyn_table> TYPE STANDARD TABLE,
<dyn_wa> TYPE ANY,
<dyn_line> TYPE ANY.
*If ALV Variant is required
DATA : wa_variant TYPE disvariant.
DATA: dy_table TYPE REF TO data,
dy_line TYPE REF TO data.
************************************************************************
S E L E C T I O N S C R E E N **
************************************************************************
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-t01.
SELECT-OPTIONS : s_bedat FOR ekko-bedat, "Purchasing Document Date
s_bukrs FOR ekko-bukrs, "Company Code
s_ekgrp FOR ekko-ekgrp, "Purchasing group
s_matkl FOR ekpo-matkl, "Material Group
s_bsart FOR ekko-bsart, "Purchasing Document Type
s_werks FOR mard-werks. "Plant
PARAMETERS p_varnt TYPE disvariant-variant.
SELECTION-SCREEN END OF BLOCK b1.
----
I N I T I A L I Z A T I O N
----
INITIALIZATION.
PERFORM default_variant.
*s_werks-low = '2010'.
*s_werks-high = '2080'.
*s_werks-sign = 'I'.
*s_werks-option = 'BT'.
*APPEND s_werks.
*&--Providing search help for the layout variant
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_varnt.
PERFORM sub_search_help_for_variant.
----
Validations of the Selection screen
----
AT SELECTION-SCREEN.
PERFORM sub_validating_variant.
Purchasing Document Date
SELECT bedat INTO ekko-bedat
FROM ekko
WHERE bedat IN s_bedat.
ENDSELECT.
IF sy-subrc <> 0.
*message
ENDIF.
Company Code
SELECT bukrs INTO t001-bukrs
FROM t001
WHERE bukrs IN s_bukrs.
ENDSELECT.
IF sy-subrc <> 0.
*message
ENDIF.
Purchasing group
SELECT ekgrp INTO t024-ekgrp
FROM t024
WHERE ekgrp IN s_ekgrp.
ENDSELECT.
IF sy-subrc <> 0.
*message
ENDIF.
Material Group
SELECT matkl INTO t023-matkl
FROM t023
WHERE matkl IN s_matkl.
ENDSELECT.
IF sy-subrc <> 0.
*message
ENDIF.
Purchasing Document Type
SELECT bsart INTO t161-bsart
FROM t161
WHERE bsart IN s_bsart.
ENDSELECT.
IF sy-subrc <> 0.
*message
ENDIF.
*&--Checking for the existence of the layout variant
AT SELECTION-SCREEN ON p_varnt.
PERFORM sub_validating_variant.
INCLUDE zsdsro_reso_qt_rep_forms.
************************************************************************
S T A R T O F S E L E C T I O N **
************************************************************************
START-OF-SELECTION.
*Plant
SELECT werks INTO TABLE t_t001w
FROM t001w
WHERE werks IN s_werks.
Get data
PERFORM get_data.
Process Data
PERFORM process_data.
Display data in ALV grid
CALL SCREEN 9000.
&----
*& Form get_data
&----
FORM get_data .
Get the PO Header
PERFORM get_po_header.
Get the PO Item
PERFORM get_po_item.
Get the PO Schedule Lines
PERFORM get_po_schedule_lines.
Get the Stock for the Material
PERFORM get_cross_plant_stock.
Get the Material Descriptions
PERFORM get_material_descriptions.
ENDFORM. " get_data
&----
*& Form get_po_header
&----
FORM get_po_header .
SELECT * FROM ekko
INTO TABLE t_ekko
WHERE bukrs IN s_bukrs AND
bsart IN s_bsart AND
ekgrp IN s_ekgrp AND
bedat IN s_bedat.
ENDFORM. " get_po_header
&----
*& Form get_po_item
&----
FORM get_po_item .
IF NOT t_ekko[] IS INITIAL.
SELECT * FROM ekpo
INTO TABLE t_ekpo
FOR ALL ENTRIES IN t_ekko
WHERE ebeln = t_ekko-ebeln AND
loekz <> 'L' AND
matnr <> ' ' AND
matkl IN s_matkl.
ENDIF.
ENDFORM. "get_po_item
" get_po_item
&----
*& Form get_po_schedule_lines
&----
FORM get_po_schedule_lines .
IF NOT t_ekpo[] IS INITIAL.
SELECT ebeln "(key) Purchasing Document Number
ebelp "(key) Item Number of Purchasing Document
etenr "(key) Delivery Schedule Line Counter
eindt "Item delivery date
wemng "Quantity of goods received
INTO TABLE t_eket
FROM eket
FOR ALL ENTRIES IN t_ekpo
WHERE ebeln = t_ekpo-ebeln AND
ebelp = t_ekpo-ebelp AND
wemng < t_ekpo-menge .
IF sy-subrc <> 0.
*message
ELSE.
SORT t_eket BY ebeln ebelp etenr.
ENDIF.
ENDIF.
ENDFORM. " get_po_schedule_lines
&----
*& Form get_cross_plant_stock
&----
FORM get_cross_plant_stock .
IF NOT t_ekpo[] IS INITIAL.
SELECT matnr "(key) Material Number
werks "(key) Plant
lgort "(key) Storage Location
labst "Valuated stock with unrestricted use
INTO TABLE t_mard
FROM mard
FOR ALL ENTRIES IN t_ekpo
WHERE matnr = t_ekpo-matnr AND
werks <> t_ekpo-werks .
lgort = t_ekpo-lgort.
IF sy-subrc <> 0.
*message
ELSE.
SORT t_mard BY matnr werks.
ENDIF.
Getting Total Sum of Stocks of Cross plansts
LOOP AT t_mard INTO wa_mard.
AT END OF werks.
SUM.
wa_mard-w_labst = wa_mard-labst.
MODIFY t_mard FROM wa_mard TRANSPORTING w_labst.
ENDAT.
ENDLOOP.
DELETE t_mard WHERE w_labst = 0.
ENDIF.
ENDFORM. " get_cross_plant_stock
&----
*& Form get_Material_Descriptions
&----
FORM get_material_descriptions .
IF NOT t_ekpo[] IS INITIAL.
SELECT matnr "(key) Material Number
spras "(key) Language Key
maktx "Material Description
INTO TABLE t_makt
FROM makt
FOR ALL ENTRIES IN t_ekpo
WHERE matnr = t_ekpo-matnr AND
spras = sy-langu.
IF sy-subrc <> 0.
*message
ELSE.
SORT t_makt BY matnr spras.
ENDIF.
ENDIF.
ENDFORM. " get_Material_Descriptions
&----
*& Form process_data
&----
FORM process_data .
LOOP AT t_ekpo INTO wa_ekpo.
READ TABLE t_ekko INTO wa_ekko WITH KEY ebeln = wa_ekpo-ebeln
BINARY SEARCH.
IF sy-subrc = 0.
wa_final-ebeln = wa_ekko-ebeln.
wa_final-lifnr = wa_ekko-lifnr.
move-corresponding wa_ekko to wa_final.
ENDIF.
move-corresponding wa_ekpo to wa_final.
wa_final-ebeln = wa_ekpo-ebeln.
wa_final-ebelp = wa_ekpo-ebelp.
wa_final-werks = wa_ekpo-werks.
wa_final-menge = wa_ekpo-menge.
wa_final-meins = wa_ekpo-meins.
wa_final-matnr = wa_ekpo-matnr.
*
READ TABLE t_eket INTO wa_eket WITH KEY ebeln = wa_ekpo-ebeln
ebelp = wa_ekpo-ebelp
BINARY SEARCH.
IF sy-subrc = 0.
flag = 'X'.
wa_final-eindt = wa_eket-eindt.
ENDIF.
LOOP AT s_werks.
READ TABLE t_mard INTO wa_mard WITH KEY matnr = wa_ekpo-matnr
werks = s_werks-low
BINARY SEARCH.
IF sy-subrc = 0.
flag = 'X'.
IF s_werks-low = c_2010.
wa_final-w_labst_2010 = wa_mard-w_labst.
ELSEIF s_werks-low = c_2020.
wa_final-w_labst_2020 = wa_mard-w_labst.
ELSEIF s_werks-low = c_2030.
wa_final-w_labst_2030 = wa_mard-w_labst.
ELSEIF s_werks-low = c_2040.
wa_final-w_labst_2040 = wa_mard-w_labst.
ELSEIF s_werks-low = c_2050.
wa_final-w_labst_2050 = wa_mard-w_labst.
ELSEIF s_werks-low = c_2060.
wa_final-w_labst_2060 = wa_mard-w_labst.
ELSEIF s_werks-low = c_2070.
wa_final-w_labst_2070 = wa_mard-w_labst.
ELSEIF s_werks-low = c_2080.
wa_final-w_labst_2080 = wa_mard-w_labst.
ENDIF.
ENDLOOP.
*
*
READ TABLE t_mard INTO wa_mard WITH KEY matnr = wa_ekpo-matnr
werks = c_2010
BINARY SEARCH.
IF sy-subrc = 0.
flag = 'X'.
wa_final-w_labst_2010 = wa_mard-w_labst.
ENDIF.
*
*
READ TABLE t_mard INTO wa_mard WITH KEY matnr = wa_ekpo-matnr
werks = c_2020
BINARY SEARCH.
IF sy-subrc = 0.
flag = 'X'.
wa_final-w_labst_2020 = wa_mard-w_labst.
ENDIF.
READ TABLE t_mard INTO wa_mard WITH KEY matnr = wa_ekpo-matnr
werks = c_2030
BINARY SEARCH.
IF sy-subrc = 0.
flag = 'X'.
wa_final-w_labst_2030 = wa_mard-w_labst.
ENDIF.
READ TABLE t_mard INTO wa_mard WITH KEY matnr = wa_ekpo-matnr
werks = c_2040
BINARY SEARCH.
IF sy-subrc = 0.
flag = 'X'.
wa_final-w_labst_2040 = wa_mard-w_labst.
ENDIF.
READ TABLE t_mard INTO wa_mard WITH KEY matnr = wa_ekpo-matnr
werks = c_2050
BINARY SEARCH.
IF sy-subrc = 0.
flag = 'X'.
wa_final-w_labst_2050 = wa_mard-w_labst.
ENDIF.
READ TABLE t_mard INTO wa_mard WITH KEY matnr = wa_ekpo-matnr
werks = c_2060
BINARY SEARCH.
IF sy-subrc = 0.
flag = 'X'.
wa_final-w_labst_2060 = wa_mard-w_labst.
ENDIF.
READ TABLE t_mard INTO wa_mard WITH KEY matnr = wa_ekpo-matnr
werks = c_2070
BINARY SEARCH.
IF sy-subrc = 0.
flag = 'X'.
wa_final-w_labst_2070 = wa_mard-w_labst.
ENDIF.
READ TABLE t_mard INTO wa_mard WITH KEY matnr = wa_ekpo-matnr
werks = c_2080
BINARY SEARCH.
IF sy-subrc = 0.
flag = 'X'.
wa_final-w_labst_2080 = wa_mard-w_labst.
ENDIF.
*
READ TABLE t_makt INTO wa_makt WITH KEY matnr = wa_ekpo-matnr
BINARY SEARCH.
IF sy-subrc = 0.
flag = 'X'.
wa_final-maktx = wa_makt-maktx.
ENDIF.
IF flag = 'X'.
APPEND wa_final TO t_final.
CLEAR wa_final.
ENDIF.
ENDLOOP.
ENDFORM. " process_data
&----
*& Form sub_validating_variant
&----
FORM sub_validating_variant .
IF NOT p_varnt IS INITIAL.
it_variant-report = sy-repid.
it_variant-variant = p_varnt.
*FM to check existance of the variant
CALL FUNCTION 'REUSE_ALV_VARIANT_EXISTENCE'
EXPORTING
i_save = 'A'
CHANGING
cs_variant = it_variant
EXCEPTIONS
wrong_input = 1
not_found = 2
program_error = 3
OTHERS = 4.
IF sy-subrc = 0.
CLEAR it_variant1.
MOVE p_varnt TO it_variant-variant.
MOVE sy-repid TO it_variant-report.
ELSE.
message e020 with text-009.
ENDIF.
ELSE.
CLEAR it_variant.
ENDIF.
ENDFORM. " sub_validating_variant
&----
*& Form sub_search_help_for_variant
&----
FORM sub_search_help_for_variant .
it_variant-report = sy-repid.
Utilising the name of the report , this function module will
search for a list of variants and will fetch the selected one into
the parameter field for variants
CALL FUNCTION 'REUSE_ALV_VARIANT_F4'
EXPORTING
is_variant = it_variant
I_TABNAME_HEADER =
I_TABNAME_ITEM =
IT_DEFAULT_FIELDCAT =
i_save = 'A'
i_display_via_grid = 'X'
IMPORTING
E_EXIT =
es_variant = it_variant
EXCEPTIONS
not_found = 1
program_error = 2
OTHERS = 3 .
IF sy-subrc = 0.
p_varnt = it_variant-variant.
ELSE.
CLEAR it_variant.
ENDIF.
ENDFORM. " sub_search_help_for_variant
&----
*& Module STATUS_9000 OUTPUT
&----
MODULE status_9000 OUTPUT.
SET PF-STATUS 'MAIN_STATUS'.
SET TITLEBAR 'ZSCM_PLT_PUR_STK'.
ENDMODULE. " STATUS_9000 OUTPUT
&----
*& Module display OUTPUT
&----
MODULE display OUTPUT.
*Build ALV layout
PERFORM build_layout.
*Build ALV field catelog
PERFORM build_fcat.
*CREATE DYNAMIC INTERNAL TABLE
PERFORM dynamic_table.
PERFORM populate_dyn_table.
Display ALV
PERFORM display_alv.
ENDMODULE. " display OUTPUT
&----
*& Module USER_COMMAND_9000 INPUT
&----
MODULE user_command_9000 INPUT.
CASE sy-ucomm.
WHEN 'BACK' OR 'EXIT' OR 'CANC'.
LEAVE TO SCREEN 0.
ENDCASE.
ENDMODULE. " USER_COMMAND_9000 INPUT
&----
*& Form build_layout
&----
FORM build_layout .
wa_layout-zebra = 'X'.
wa_layout-cwidth_opt = 'X'.
wa_layout-sel_mode = 'A'.
wa_layout-info_fname = 'L_CLR'.
wa_layout-grid_title = 'Cross Plant purchase Stock'(029).
ENDFORM. " build_layout
&----
*& Form build_fcat
&----
FORM build_fcat .
DATA: l_var TYPE char12.
FIELD-SYMBOLS: <fa_fldcat> TYPE slis_fieldcat_alv.
t_final_new[] = t_final[].
***Description of the Field
CLEAR wa_fcat.
wa_fcat-fieldname = 'EBELN'.
wa_fcat-tabname = 'T_FINAL'.
wa_fcat-scrtext_l = 'Purchasing Document Number'(001).
wa_fcat-scrtext_s = 'PO Number'(002).
wa_fcat-scrtext_m = 'PO Number'(002).
APPEND wa_fcat TO t_fcat.
**
***Description of the Field
CLEAR wa_fcat.
wa_fcat-fieldname = 'EBELP'.
wa_fcat-tabname = 'T_FINAL'.
wa_fcat-scrtext_l = 'Item Number of Purchasing Document'(003).
wa_fcat-scrtext_s = 'Item Number'(004).
wa_fcat-scrtext_m = 'Item No'(005).
APPEND wa_fcat TO t_fcat.
**
***Description of the Field
CLEAR wa_fcat.
wa_fcat-fieldname = 'WERKS'.
wa_fcat-tabname = 'T_FINAL'.
wa_fcat-scrtext_l = 'Plant'(006).
wa_fcat-scrtext_s = 'Plant'(006).
wa_fcat-scrtext_m = 'Plant'(006).
APPEND wa_fcat TO t_fcat.
**
***Description of the Field
CLEAR wa_fcat.
wa_fcat-fieldname = 'MENGE'.
wa_fcat-tabname = 'T_FINAL'.
wa_fcat-scrtext_l = 'Purchase order quantity'(007).
wa_fcat-scrtext_s = 'PO QTY'(008).
wa_fcat-scrtext_m = 'PO Quantity'(022).
APPEND wa_fcat TO t_fcat.
**
**
***Description of the Field
CLEAR wa_fcat.
wa_fcat-fieldname = 'MEINS'.
wa_fcat-tabname = 'T_FINAL'.
wa_fcat-scrtext_l = 'Order unit'(009).
wa_fcat-scrtext_s = 'Order unit'(009).
wa_fcat-scrtext_m = 'Order unit'(009).
APPEND wa_fcat TO t_fcat.
**
***Description of the Field
CLEAR wa_fcat.
wa_fcat-fieldname = 'EINDT'.
wa_fcat-tabname = 'T_FINAL'.
wa_fcat-scrtext_l = 'Item delivery date'(010).
wa_fcat-scrtext_s = 'Itm Del Dt'(011).
wa_fcat-scrtext_m = 'Item delivery date'(010).
APPEND wa_fcat TO t_fcat.
**
***Description of the Field
CLEAR wa_fcat.
wa_fcat-fieldname = 'LIFNR'.
wa_fcat-tabname = 'T_FINAL'.
wa_fcat-scrtext_l = 'Account Number of the Vendor'(012).
wa_fcat-scrtext_s = 'Acc No Vend'(013).
wa_fcat-scrtext_m = 'Acc No Of Vendor'(014).
APPEND wa_fcat TO t_fcat.
**
***Description of the Field
CLEAR wa_fcat.
wa_fcat-fieldname = 'MATNR'.
wa_fcat-tabname = 'T_FINAL'.
wa_fcat-scrtext_l = 'Material Number'(015).
wa_fcat-scrtext_s = 'Materil No'(016).
wa_fcat-scrtext_m = 'Material Number'(015).
APPEND wa_fcat TO t_fcat.
**
**
***Description of the Field
CLEAR wa_fcat.
wa_fcat-fieldname = 'MAKTX'.
wa_fcat-tabname = 'T_FINAL'.
wa_fcat-scrtext_l = 'Material Description'(017).
wa_fcat-scrtext_s = 'Mat Des'(018).
wa_fcat-scrtext_m = 'Material Description'(017).
APPEND wa_fcat TO t_fcat.
**
***Description of the Field
CLEAR wa_fcat.
wa_fcat-fieldname = 'W_LABST_2010'.
wa_fcat-tabname = 'T_FINAL'.
wa_fcat-scrtext_l = '2010'(028).
wa_fcat-scrtext_s = '2010'(028).
wa_fcat-scrtext_m = '2010'(028).
APPEND wa_fcat TO t_fcat.
**
***Description of the Field
CLEAR wa_fcat.
wa_fcat-fieldname = 'W_LABST_2020'.
wa_fcat-tabname = 'T_FINAL'.
wa_fcat-scrtext_l = '2020'(032).
wa_fcat-scrtext_s = '2020'(032).
wa_fcat-scrtext_m = '2020'(032).
APPEND wa_fcat TO t_fcat.
**
***Description of the Field
CLEAR wa_fcat.
wa_fcat-fieldname = 'W_LABST_2030'.
wa_fcat-tabname = 'T_FINAL'.
wa_fcat-scrtext_l = '2030'(030).
wa_fcat-scrtext_s = '2030'(030).
wa_fcat-scrtext_m = '2030'(030).
APPEND wa_fcat TO t_fcat.
**
***Description of the Field
CLEAR wa_fcat.
wa_fcat-fieldname = 'W_LABST_2040'.
wa_fcat-tabname = 'T_FINAL'.
wa_fcat-scrtext_l = '2040'(027).
wa_fcat-scrtext_s = '2040'(027).
wa_fcat-scrtext_m = '2040'(027).
APPEND wa_fcat TO t_fcat.
**
***Description of the Field
CLEAR wa_fcat.
wa_fcat-fieldname = 'W_LABST_2050'.
wa_fcat-tabname = 'T_FINAL'.
wa_fcat-scrtext_l = '2050'(023).
wa_fcat-scrtext_s = '2050'(023).
wa_fcat-scrtext_m = '2050'(023).
APPEND wa_fcat TO t_fcat.
**
***Description of the Field
CLEAR wa_fcat.
wa_fcat-fieldname = 'W_LABST_2060'.
wa_fcat-tabname = 'T_FINAL'.
wa_fcat-scrtext_l = '2060'(024).
wa_fcat-scrtext_s = '2060'(024).
wa_fcat-scrtext_m = '2060'(024).
APPEND wa_fcat TO t_fcat.
**
***Description of the Field
CLEAR wa_fcat.
wa_fcat-fieldname = 'W_LABST_2070'.
wa_fcat-tabname = 'T_FINAL'.
wa_fcat-scrtext_l = '2070'(025).
wa_fcat-scrtext_s = '2070'(025).
wa_fcat-scrtext_m = '2070'(025).
APPEND wa_fcat TO t_fcat.
**
***Description of the Field
CLEAR wa_fcat.
wa_fcat-fieldname = 'W_LABST_2080'.
wa_fcat-tabname = 'T_FINAL'.
wa_fcat-scrtext_l = '2080'(026).
wa_fcat-scrtext_s = '2080'(026).
wa_fcat-scrtext_m = '2080'(026).
APPEND wa_fcat TO t_fcat.
DATA: la_fldcat TYPE slis_fieldcat_alv.
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
i_program_name = 'Y_ALV_DYNAMIC'
i_internal_tabname = 'T_FINAL_NEW'
I_STRUCTURE_NAME =
I_CLIENT_NEVER_DISPLAY = 'X'
i_inclname = sy-repid "'Y_ALV_DYNAMIC'
I_BYPASSING_BUFFER =
I_BUFFER_ACTIVE =
CHANGING
ct_fieldcat = lt_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.
DATA: l_col_num TYPE i.
l_col_num = '330'.
LOOP AT s_werks.
LOOP AT t_t001w INTO wa_t001w.
l_col_num = l_col_num + 1.
CONCATENATE 'W_LABST_' wa_t001w INTO l_var.
la_fldcat-col_pos = l_col_num.
la_fldcat-fieldname = l_var.
la_fldcat-tabname = 'MARD'.
la_fldcat-seltext_l = wa_t001w.
la_fldcat-seltext_s = wa_t001w.
la_fldcat-seltext_m = wa_t001w.
la_fldcat-ref_fieldname = 'LABST'.
la_fldcat-ref_tabname = 'MARD'.
la_fldcat-DATATYPE = 'QUAN'.
la_fldcat-INTTYPE = 'P'.
la_fldcat-intlen = '7'.
APPEND la_fldcat TO lt_fieldcat.
ENDLOOP.
LOOP AT lt_fieldcat INTO la_fldcat.
wa_fcat-col_pos = la_fldcat-col_pos.
wa_fcat-fieldname = la_fldcat-fieldname.
wa_fcat-tabname = la_fldcat-tabname.
wa_fcat-ref_field = la_fldcat-ref_fieldname.
wa_fcat-ref_table = la_fldcat-ref_tabname.
wa_fcat-scrtext_l = la_fldcat-seltext_l.
wa_fcat-scrtext_m = la_fldcat-seltext_m.
wa_fcat-scrtext_s = la_fldcat-seltext_s.
wa_fcat-no_out = la_fldcat-no_out.
wa_fcat-DATATYPE = la_fldcat-DATATYPE.
wa_fcat-INTTYPE = la_fldcat-INTTYPE.
wa_fcat-intlen = la_fldcat-INTlen.
APPEND wa_fcat TO t_fcat.
ENDLOOP.
ENDFORM. " build_fcat
&----
*& Form display_alv
&----
FORM display_alv .
*Create docking container and dock at left side
CREATE OBJECT w_docking
EXPORTING
parent = cl_gui_container=>screen0
side = cl_gui_docking_container=>dock_at_left
ratio = 90 " 90% of screen
EXCEPTIONS
cntl_error = 1
cntl_system_error = 2
create_error = 3
lifetime_error = 4
lifetime_dynpro_dynpro_link = 5
OTHERS = 6.
IF sy-subrc <> 0.
ENDIF.
*Set very high extension -> not overruled by screen resizing
CALL METHOD w_docking->set_extension
EXPORTING
extension = 99999
EXCEPTIONS
cntl_error = 1
OTHERS = 2.
IF sy-subrc <> 0.
ENDIF.
*Create objects for Grid
CREATE OBJECT w_grid
EXPORTING
i_parent = w_docking.
*Set table to display ALV report
start of code by Kushagra
*data: wa_lt_exclude type ui_functions,
wa_ls_exclude type ui_func.
***Exclude Toolbar functions
wa_ls_exclude = cl_gui_alv_grid=>MC_FC_DETAIL.
append wa_ls_exclude to wa_lt_exclude.
wa_ls_exclude = cl_gui_alv_grid=>MC_FC_CHECK.
append wa_ls_exclude to wa_lt_exclude.
wa_ls_exclude = cl_gui_alv_grid=>MC_FC_REFRESH.
append wa_ls_exclude to wa_lt_exclude.
wa_ls_exclude = cl_gui_alv_grid=>MC_FC_LOC_CUT.
append wa_ls_exclude to wa_lt_exclude.
wa_ls_exclude = cl_gui_alv_grid=>MC_FC_LOC_DELETE_ROW.
append wa_ls_exclude to wa_lt_exclude.
wa_ls_exclude = cl_gui_alv_grid=>MC_FC_LOC_INSERT_ROW.
append wa_ls_exclude to wa_lt_exclude.
wa_ls_exclude = cl_gui_alv_grid=>MC_FC_LOC_COPY.
append wa_ls_exclude to wa_lt_exclude.
wa_ls_exclude = cl_gui_alv_grid=>MC_FC_LOC_COPY_ROW.
append wa_ls_exclude to wa_lt_exclude.
wa_ls_exclude = cl_gui_alv_grid=>MC_FC_LOC_UNDO.
append wa_ls_exclude to wa_lt_exclude.
wa_ls_exclude = cl_gui_alv_grid=>MC_FC_LOC_APPEND_ROW.
append wa_ls_exclude to wa_lt_exclude.
End of code by kushagra
CALL METHOD w_grid->set_table_for_first_display
EXPORTING
is_layout = wa_layout
is_variant = it_variant
i_save = 'A'
i_default = 'X'
IT_TOOLBAR_EXCLUDING = wa_lt_exclude
CHANGING
it_outtab = <dyn_table>
it_fieldcatalog = t_fcat
EXCEPTIONS
invalid_parameter_combination = 1
program_error = 2
too_many_lines = 3
OTHERS = 4.
IF sy-subrc <> 0.
MESSAGE e001 WITH 'Could not display grid'(031).
ENDIF.
ENDFORM. " display_alv
&----
*& Form dynamic_table
&----
text
----
--> p1 text
<-- p2 text
----
FORM dynamic_table .
CALL METHOD cl_alv_table_create=>create_dynamic_table
EXPORTING
it_fieldcatalog = t_fcat
IMPORTING
ep_table = dy_table.
ASSIGN dy_table->* TO <dyn_table>.
CREATE A DYNAMIC WORK AREA.
CREATE DATA dy_line LIKE LINE OF <dyn_table>.
ASSIGN dy_line->* TO <dyn_wa>.
ENDFORM. " dynamic_table
&----
*& Form default_variant
&----
text
----
--> p1 text
<-- p2 text
----
FORM default_variant .
it_variant-report = sy-repid.
Search default variant for the report
CALL FUNCTION 'REUSE_ALV_VARIANT_DEFAULT_GET'
EXPORTING
i_save = 'A'
CHANGING
cs_variant = it_variant
EXCEPTIONS
wrong_input = 1
not_found = 2
program_error = 3
OTHERS = 4.
IF sy-subrc = 0.
p_varnt = it_variant-variant.
ELSE.
p_varnt = '/DEFAULT1'.
ENDIF.
ENDFORM. " default_variant
&----
*& Form Populate_dyn_table
&----
text
----
--> p1 text
<-- p2 text
----
FORM populate_dyn_table .
FIELD-SYMBOLS: <fa_sym_dyn_tab> TYPE ANY,
<dyn_field> TYPE ANY.
DATA: l_col_num TYPE i,
l_num type i.
l_col_num = 331.
CLEAR : wa_final,
wa_mard,
wa_t001w,
<dyn_table>,
<dyn_wa>.
LOOP AT t_final INTO wa_final.
CLEAR <dyn_wa>.
MOVE-CORRESPONDING wa_final TO <dyn_wa>.
l_col_num = 331.
l_num = 0.
DO.
l_num = l_num + 1.
if <dyn_field> is assigned.
unassign <dyn_field>.
endif.
ASSIGN COMPONENT l_col_num OF STRUCTURE <dyn_wa> TO <dyn_field>.
IF sy-subrc = 0.
l_col_num = l_col_num + sy-index.
l_col_num = l_col_num + 1.
CLEAR wa_t001w.
READ TABLE t_t001w INTO wa_t001w INDEX sy-index.
READ TABLE t_t001w INTO wa_t001w INDEX l_num.
IF sy-subrc = 0.
CLEAR wa_mard.
READ TABLE t_mard INTO wa_mard WITH KEY matnr = wa_final-matnr
werks = wa_t001w.
IF sy-subrc = 0.
<dyn_field> = wa_mard-w_labst.
ENDIF.
ENDIF.
ELSE.
EXIT.
ENDIF.
ENDDO.
APPEND <dyn_wa> TO <dyn_table>.
CLEAR wa_final.
ENDLOOP.
ENDFORM. " Populate_dyn_table
‎2008 Jul 31 3:52 PM