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

dynamic ALV

Former Member
0 Likes
1,227

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

6 REPLIES 6
Read only

Former Member
0 Likes
1,006

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

Read only

Former Member
0 Likes
1,006

Hi,

Dynamic ALV

Check this link:

Regards

Adil

Read only

0 Likes
1,006

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.

Read only

0 Likes
1,006

Show me your code. lets find the mistake..

Read only

0 Likes
1,006

&----


*& 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

Read only

Former Member
0 Likes
1,006

Hi

Go through the link given below :

With Regards

Nikunj shah