11-02-2007 5:44 PM
Hi Everyone,
is it possible for you to tell me moree on PS reporting , as i am new into PS , and I have lot reeport to do for my Client,
we don't have ABAP guy or BW/BI person here,
i want basic steps to start over with PS reports,
i have to make reports like , the following,
<b>1. Set up and load 2008 projects so that:</b>
a. Monthly forecasts at project level are mandatory
b. Financial forecasts to be tied with schedule of project i.e., moving anticipated close dates should prompt for changes to monthly forecasts
c. Original forecast and budget as loaded should always be preserved. Changes should reflect in a current version of monthly and total budgets.
I want to know the basic steps to be followed to make a PS or IM report and where to go and what kind of Tcodes can be used to make a report ,
your help greately appreciated,
Thank you ,
Krishna
11-03-2007 9:39 AM
Hi,
find below a report which might fullfill all ur needs
but u might need to make some changes to suit ur req
modify the GL codes.
tc
saji
REPORT zinps_unit_capex_rpt.
TYPE-POOLS :slis.
TABLES : proj, prps, rpsco, cosp, jcds,
ekkn, ekko, bseg, prte, t087j, taif5t.
DATA: g_repid LIKE sy-repid,
gs_print TYPE slis_print_alv,
gt_list_top_of_page TYPE slis_t_listheader,
gt_events TYPE slis_t_event,
gt_sort TYPE slis_t_sortinfo_alv,
gs_layout TYPE slis_layout_alv OCCURS 0 WITH HEADER LINE,
gt_fieldcat TYPE slis_t_fieldcat_alv WITH HEADER LINE.
DATA : gs_sort TYPE slis_sortinfo_alv,
output TYPE ssfcrescl,
g_save,
lv_tabix TYPE sy-tabix.
DATA : zperiod TYPE char2,
zbudat TYPE sy-datum,
zfcmnr(2) TYPE n,
zfcltx(10) TYPE c,
zfcltx1(4) TYPE c,
zfcltx2(15) TYPE c,
zfcltx3(15) TYPE c,
zfcltx4(15) TYPE c,
zfcltx5(45) TYPE c,
zclike TYPE c LENGTH 24,
zwpl00 TYPE bp_wpl,
zwpl01 TYPE bp_wpl,
zwpl02 TYPE bp_wpl,
zwpl03 TYPE bp_wpl,
zwtg00 TYPE wtgxxx,
zwtg03 TYPE wtgxxx,
zwtg02 TYPE wtgxxx,
zwtg04 TYPE wtgxxx,
zwtg05 TYPE wtgxxx,
zwtg01 TYPE wtgxxx.
DATA : git_jest TYPE TABLE OF jest WITH HEADER LINE,
git_jest1 TYPE TABLE OF jest WITH HEADER LINE,
git_t087j TYPE TABLE OF t087j WITH HEADER LINE,
git_taif5t TYPE TABLE OF taif5t WITH HEADER LINE,
zhead TYPE TABLE OF thead WITH HEADER LINE,
zline TYPE TABLE OF tline WITH HEADER LINE.
TYPES : BEGIN OF wa_proj,
pspnr TYPE ps_intnr, "WBS Element
pspid TYPE ps_pspid, "Project Definition
post1 TYPE ps_post1, "PS: Short description
objnr TYPE j_objnr, "Object number
werks TYPE werks_d, "Plant
eprog TYPE ps_eprog, "Actual Order date
zclike(8) TYPE n,
END OF wa_proj.
TYPES : BEGIN OF wa_cosp,
objnr TYPE j_objnr, "Object number
gjahr TYPE gjahr, "Fiscal Year
wrttp TYPE co_wrttp, "Value Type
kstar TYPE kstar, "Cost Element
wtg001 TYPE wtgxxx, "Total Value in Transaction Currency
wtg002 TYPE wtgxxx, "Total Value in Transaction Currency
wtg003 TYPE wtgxxx, "Total Value in Transaction Currency
wtg004 TYPE wtgxxx, "Total Value in Transaction Currency
wtg005 TYPE wtgxxx, "Total Value in Transaction Currency
wtg006 TYPE wtgxxx, "Total Value in Transaction Currency
wtg007 TYPE wtgxxx, "Total Value in Transaction Currency
wtg008 TYPE wtgxxx, "Total Value in Transaction Currency
wtg009 TYPE wtgxxx, "Total Value in Transaction Currency
wtg010 TYPE wtgxxx, "Total Value in Transaction Currency
wtg011 TYPE wtgxxx, "Total Value in Transaction Currency
wtg012 TYPE wtgxxx, "Total Value in Transaction Currency
wtg013 TYPE wtgxxx, "Total Value in Transaction Currency
wtg014 TYPE wtgxxx, "Total Value in Transaction Currency
wtg015 TYPE wtgxxx, "Total Value in Transaction Currency
wtg016 TYPE wtgxxx, "Total Value in Transaction Currency
END OF wa_cosp.
TYPES : BEGIN OF wa_ekbe,
ebeln TYPE ebeln,
ebelp TYPE ebelp,
vgabe TYPE vgabe,
bwart TYPE bwart,
gjahr TYPE mjahr,
belnr TYPE mblnr,
budat TYPE budat,
dmbtr TYPE dmbtr,
shkzg TYPE shkzg,
werks TYPE werks_d,
END OF wa_ekbe.
DATA : git_ekbe TYPE TABLE OF wa_ekbe WITH HEADER LINE.
DATA : git_proj TYPE TABLE OF wa_proj WITH HEADER LINE,
git_proj1 TYPE TABLE OF proj WITH HEADER LINE,
git_proj2 TYPE TABLE OF proj WITH HEADER LINE,
git_cosp TYPE TABLE OF wa_cosp WITH HEADER LINE,
git_cosp1 TYPE TABLE OF wa_cosp WITH HEADER LINE,
git_cosp2 TYPE TABLE OF wa_cosp WITH HEADER LINE.
TYPES : BEGIN OF wa_prps,
pspnr TYPE ps_posnr, "WBS Element
posid TYPE ps_posid, "WBS Element
post1 TYPE ps_post1, "PS Short description
objnr TYPE j_objnr, "Object number
psphi TYPE ps_psphi, "Current number of the appropriate project
stufe TYPE ps_stufe, "Level in Project Hierarchy
akstl TYPE ps_akstl, "Requesting cost center
pspri TYPE nw_prio, "Priority
werks TYPE werks_d, "Plant
usr07 TYPE usr07prps, "2nd user field for values (length 10,3) -WBS element
usr08 TYPE usr08prps, "1st user field for date -WBS element
usr09 TYPE usr09prps, "2nd user field for date -WBS element
usr02 TYPE usr02prps, "2nd user field for date -WBS element
usr04 TYPE usr04prps, "1st user-defined field for quantity(length 10,3) WBS element
izwek TYPE izwek, "Reason for investment
isize TYPE im_sizecl, "Scale of investment objects
END OF wa_prps.
DATA : git_prps TYPE TABLE OF wa_prps WITH HEADER LINE.
TYPES : BEGIN OF wa_jcds,
objnr TYPE j_objnr, "Object number
chgnr TYPE j_chgnr, "Change number
udate TYPE cddatum, "Creation date of the change document
END OF wa_jcds.
DATA : git_jcds TYPE TABLE OF wa_jcds WITH HEADER LINE.
TYPES : BEGIN OF wa_prte,
posnr TYPE ps_posnr, "WBS Element
psphi TYPE ps_psphi, "Current number of the appropriate project
estrt TYPE ps_estrt, "Forecasted start date of the WBS element
pende TYPE ps_pende, "WBS element: Basic finish date
eende TYPE ps_eende, "Forecasted finish date of the WBS element
iende TYPE ps_iende, "Actual finish date of the WBS element
END OF wa_prte.
DATA : git_prte TYPE TABLE OF wa_prte WITH HEADER LINE.
TYPES : BEGIN OF wa_imakz,
posnr TYPE ima_posnr,
objnr TYPE j_objnr,
END OF wa_imakz.
DATA : zposnr TYPE ima_posnr.
DATA : git_imakz TYPE TABLE OF wa_imakz WITH HEADER LINE.
TYPES : BEGIN OF wa_imakt,
posnr TYPE ima_posnr,
txt50 TYPE ima_txt50,
END OF wa_imakt.
DATA : ztxt50 TYPE ima_txt50.
DATA : git_imakt TYPE TABLE OF wa_imakt WITH HEADER LINE.
TYPES : BEGIN OF wa_ekkn,
ebeln TYPE ebeln,
ebelp TYPE ebelp,
aedat TYPE erdat,
ps_psp_pnr TYPE ps_psp_pnr,
END OF wa_ekkn.
DATA : git_ekkn TYPE TABLE OF wa_ekkn WITH HEADER LINE,
git_ekkn1 TYPE TABLE OF wa_ekkn WITH HEADER LINE.
TYPES : BEGIN OF wa_rpsco,
objnr TYPE bp_objekt, "Object number
wrttp TYPE co_wrttp, "Value Type
gjahr TYPE gjahr, "Fiscal Year
vorga TYPE bp_vorgang, "Budget Type Budgeting/Planning
wlp00 TYPE bp_wpl, "Period value in ledger currency
wlp01 TYPE bp_wpl, "Period value in ledger currency
wlp02 TYPE bp_wpl, "Period value in ledger currency
wlp03 TYPE bp_wpl, "Period value in ledger currency
wlp04 TYPE bp_wpl, "Period value in ledger currency
wlp05 TYPE bp_wpl, "Period value in ledger currency
wlp06 TYPE bp_wpl, "Period value in ledger currency
wlp07 TYPE bp_wpl, "Period value in ledger currency
wlp08 TYPE bp_wpl, "Period value in ledger currency
wlp09 TYPE bp_wpl, "Period value in ledger currency
wlp10 TYPE bp_wpl, "Period value in ledger currency
wlp11 TYPE bp_wpl, "Period value in ledger currency
wlp12 TYPE bp_wpl, "Period value in ledger currency
wlp13 TYPE bp_wpl, "Period value in ledger currency
wlp14 TYPE bp_wpl, "Period value in ledger currency
wlp15 TYPE bp_wpl, "Period value in ledger currency
wlp16 TYPE bp_wpl, "Period value in ledger currency
END OF wa_rpsco.
DATA : git_rpsco TYPE TABLE OF wa_rpsco WITH HEADER LINE.
TYPES : BEGIN OF wa_final,
isize TYPE im_sizecl, "Scale of investment objects
izwek TYPE izwek, "Reason for investment
pspid TYPE ps_pspid, "Current number of the appropriate project
post1 TYPE ps_post1, "PS Short description
objnr TYPE j_objnr, "Object number
wlp00 TYPE bp_wpl, "Period value in ledger currency
wlp001 TYPE bp_wpl, "Period value in ledger currency
wtg001 TYPE wtgxxx, "Total Value in Transaction Currency
wtg002 TYPE wtgxxx, "Total Value in Transaction Currency
wtg003 TYPE wtgxxx, "Total Value in Transaction Currency
wtg004 TYPE wtgxxx, "Total Value in Transaction Currency
wtg005 TYPE wtgxxx, "Total Value in Transaction Currency
dmbtr TYPE dmbtr, "Advance
udate TYPE cddatum, "Creation date of the change document
usr08 TYPE usr08prps, "1st user field for date -WBS element
usr09 TYPE usr09prps, "2nd user field for date -WBS element
usr10 TYPE usr09prps, "1st user field for 'Ind. for evaluatio
usr02 TYPE usr02prps, "1st user field for 'Ind. for evaluatio
revdate TYPE char26, "Combination of PENDE/ESTRT/EENDE
iende TYPE ps_iende, "Actual finish date of the WBS element
usr07 TYPE usr07prps, "2nd user field for values (length 10,3) -WBS element
znum(10) TYPE p DECIMALS 2,
usr04 TYPE usr04prps, "1st user-defined field for quantity(length 10,3) WBS element
text1(150) TYPE c, "Long Text
pspri TYPE nw_prio, "Priority
ztext TYPE char50,
ztext1 TYPE char50,
ztext2 TYPE char15,
ztext3 TYPE char15,
ztext4 TYPE char15,
ztext5 TYPE char15,
ztext6 TYPE char15,
ztext7 TYPE char45,
stat TYPE j_status, " Object status
ztxt04 TYPE j_stext, " Status Text
END OF wa_final.
DATA : final_tab TYPE TABLE OF wa_final WITH HEADER LINE.
DATA : final_tab1 TYPE TABLE OF wa_final WITH HEADER LINE.
DATA : zoutput(8) TYPE c,
zlin TYPE i,
zdmbtr TYPE dmbtr,
zdmbtr1 TYPE dmbtr,
zdmbtr3 TYPE dmbtr,
zdmbtr4 TYPE dmbtr,
zdmbtr5 TYPE dmbtr,
zdmbtr6 TYPE dmbtr,
zdmbtr2(13) TYPE c,
zdmbtr7(13) TYPE c,
zdmbtr8(13) TYPE c,
zdmbtr9(13) TYPE c,
zdmbtr10(13) TYPE c,
zdmbtr11(13) TYPE c,
zdmbtr12(13) TYPE c.
DATA : zmonthtext(20) TYPE c.
*data : git_finaltab type table of final_wa with header line.
SELECTION-SCREEN BEGIN OF BLOCK a1 WITH FRAME TITLE a001.
SELECT-OPTIONS : s_posnr FOR proj-pspid,
s_budat FOR zbudat NO-DISPLAY,
zkstar FOR cosp-kstar NO-DISPLAY.
PARAMETERS : p_werks LIKE proj-werks OBLIGATORY.
SELECT-OPTIONS : s_gjahr FOR cosp-gjahr NO-EXTENSION NO INTERVALS OBLIGATORY.
PARAMETERS : p_period LIKE zperiod OBLIGATORY,
p_profl LIKE proj-profl DEFAULT 'GCI' NO-DISPLAY,
p_dept LIKE prps-akstl.
SELECTION-SCREEN END OF BLOCK a1.
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE b001.
PARAMETERS : r_open RADIOBUTTON GROUP g1,
r_all RADIOBUTTON GROUP g1.
SELECTION-SCREEN END OF BLOCK b1.
AT SELECTION-SCREEN .
CALL FUNCTION 'CAT_PS_DESCRIBE_LENGTH'
EXPORTING
variable = p_period
IMPORTING
laenge = zlin.
IF zlin < 2.
MESSAGE 'Period must be 2 characters' TYPE 'E'.
ENDIF.
START-OF-SELECTION.
PERFORM convert_posnr.
PERFORM cal_date.
PERFORM cal_months.
PERFORM getdata.
PERFORM dispdata_alv.
&----
*& Form getdata
&----
text
----
--> p1 text
<-- p2 text
----
FORM getdata .
Selection of data
SELECT * FROM taif5t INTO TABLE git_taif5t WHERE spras = 'EN'.
SELECT * FROM t087j INTO TABLE git_t087j WHERE spras = 'EN'.
SELECT pspnr pspid post1 objnr werks eprog
FROM proj INTO TABLE git_proj
WHERE profl = p_profl AND
pspnr IN s_posnr AND
werks = p_werks.
LOOP AT git_proj.
lv_tabix = sy-tabix.
CALL FUNCTION 'CONVERSION_EXIT_KONPD_INPUT'
EXPORTING
input = git_proj-pspid
IMPORTING
output = zclike
projwa = git_proj1
EXCEPTIONS
not_found = 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.
REPLACE ALL OCCURRENCES OF '-' IN zclike WITH space.
CONDENSE zclike.
git_proj-zclike = git_proj1-pspnr.
MODIFY git_proj INDEX lv_tabix TRANSPORTING zclike.
ENDLOOP.
IF p_dept IS INITIAL.
SELECT pspnr posid post1 objnr psphi stufe
akstl pspri werks usr07 usr08 usr09 usr02 usr04 izwek isize
FROM prps INTO TABLE git_prps
FOR ALL ENTRIES IN git_proj WHERE
psphi = git_proj-zclike AND
werks = git_proj-werks. " AND
akstl = p_dept.
ELSE.
SELECT pspnr posid post1 objnr psphi stufe
akstl pspri werks usr07 usr08 usr09 usr02 usr04 izwek isize
FROM prps INTO TABLE git_prps
FOR ALL ENTRIES IN git_proj WHERE
psphi = git_proj-zclike AND
werks = git_proj-werks AND
akstl = p_dept.
ENDIF.
SELECT posnr objnr FROM imakz INTO TABLE git_imakz FOR ALL
ENTRIES IN git_prps WHERE
objnr = git_prps-objnr.
SELECT posnr txt50 FROM imakt INTO TABLE git_imakt FOR ALL
ENTRIES IN git_imakz WHERE
posnr = git_imakz-posnr.
IF r_open = 'X'.
SELECT * FROM jest INTO TABLE git_jest FOR ALL ENTRIES
IN git_prps WHERE objnr = git_prps-objnr AND
( stat = 'E0004' OR stat = 'E0009' )
AND inact <> 'X'.
ENDIF.
IF r_all = 'X'.
SELECT * FROM jest INTO TABLE git_jest1 FOR ALL ENTRIES
IN git_prps WHERE objnr = git_prps-objnr AND
( stat = 'E0004' OR stat = 'E0009' OR
stat = 'E0010' ) AND
inact <> 'X'.
ENDIF.
SORT git_prps BY psphi objnr.
SELECT objnr gjahr wrttp kstar
wtg001 wtg002 wtg003
wtg004 wtg005 wtg006
wtg007 wtg008 wtg009
wtg010 wtg011 wtg012
wtg013 wtg014 wtg015
wtg016 FROM cosp INTO TABLE git_cosp
FOR ALL ENTRIES IN git_prps WHERE
objnr = git_prps-objnr AND
gjahr IN s_gjahr AND
( wrttp = '04' OR wrttp = '22' ).
SORT git_prps BY psphi objnr.
SELECT objnr gjahr wrttp kstar
wtg001 wtg002 wtg003
wtg004 wtg005 wtg006
wtg007 wtg008 wtg009
wtg010 wtg011 wtg012
wtg013 wtg014 wtg015
wtg016 FROM cosp INTO TABLE git_cosp2
FOR ALL ENTRIES IN git_prps WHERE
objnr = git_prps-objnr AND
( wrttp = '04' OR wrttp = '22' ).
SELECT ebeln ebelp aedat ps_psp_pnr INTO TABLE
git_ekkn FROM ekkn FOR ALL ENTRIES IN git_prps WHERE
ps_psp_pnr = git_prps-pspnr.
CHANGED ON 22.10.2007 AS PER RAVI FOR ADVANCE LOGIC
Period filter applied
SELECT ebeln ebelp vgabe bwart gjahr belnr
budat dmbtr shkzg werks FROM ekbe
INTO TABLE git_ekbe FOR ALL ENTRIES IN git_ekkn
WHERE ebeln = git_ekkn-ebeln AND
ebelp = git_ekkn-ebelp AND
( vgabe = 1 OR vgabe = 4 ) AND
gjahr IN s_gjahr AND
budat IN s_budat.
SORT git_ekkn DESCENDING BY ps_psp_pnr ebeln ebelp.
SELECT ebeln aedat FROM ekko INTO TABLE git_ekko
FOR ALL ENTRIES IN git_ekkn WHERE ebeln = git_ekkn-ebeln.
SELECT objnr gjahr wrttp kstar
wtg001 wtg002 wtg003
wtg004 wtg005 wtg006
wtg007 wtg008 wtg009
wtg010 wtg011 wtg012
wtg013 wtg014 wtg015
wtg016 FROM cosp INTO TABLE git_cosp1
FOR ALL ENTRIES IN git_prps WHERE
objnr = git_prps-objnr AND
gjahr IN s_gjahr AND
wrttp = '04'.
AND kstar NOT IN zkstar. " CONFIRM
SELECT objnr chgnr udate FROM jcds
INTO TABLE git_jcds
FOR ALL ENTRIES IN git_cosp
WHERE objnr = git_cosp-objnr.
SORT git_jcds DESCENDING BY objnr chgnr.
SELECT objnr wrttp gjahr vorga wlp00
FROM rpsco INTO TABLE git_rpsco
FOR ALL ENTRIES IN git_prps
WHERE objnr = git_prps-objnr AND
wrttp = '41' AND
gjahr = '0000'.
SELECT posnr psphi estrt pende eende iende
FROM prte INTO TABLE git_prte
FOR ALL ENTRIES IN git_prps
WHERE posnr = git_prps-pspnr.
IF r_open = 'X'.
LOOP AT git_prps.
lv_tabix = sy-tabix.
READ TABLE git_jest WITH KEY objnr = git_prps-objnr.
IF sy-subrc = 0.
ELSE.
DELETE git_prps INDEX lv_tabix.
ENDIF.
ENDLOOP.
ELSEIF r_all = 'X'.
LOOP AT git_prps.
lv_tabix = sy-tabix.
READ TABLE git_jest1 WITH KEY objnr = git_prps-objnr.
IF sy-subrc = 0.
ELSE.
DELETE git_prps INDEX lv_tabix.
ENDIF.
ENDLOOP.
ENDIF.
End of Selection of data
Compile the data.
LOOP AT git_proj.
PERFORM get_text.
CONCATENATE git_proj-pspid0(4) '-' git_proj-pspid4(3) '-'
git_proj-pspid+7(5) INTO git_proj-pspid.
Get Longtext data
LOOP AT git_prps WHERE psphi = git_proj-pspnr.
Move data from prps to final table
PERFORM convert_posid.
LOOP AT git_ekkn WHERE ps_psp_pnr = zoutput.
APPEND git_ekkn TO git_ekkn1.
ENDLOOP.
SORT git_ekkn1 DESCENDING BY ps_psp_pnr ebeln ebelp.
CLEAR : zdmbtr, zdmbtr3, zdmbtr4.
ADVANCES
LOOP AT git_ekkn1.
LOOP AT git_ekbe WHERE ebeln = git_ekkn1-ebeln AND
ebelp = git_ekkn1-ebelp.
IF ( git_ekbe-shkzg = 'S' AND git_ekbe-vgabe = 4 ).
zdmbtr = git_ekbe-dmbtr.
zdmbtr1 = zdmbtr1 + zdmbtr.
ELSEIF ( git_ekbe-shkzg = 'H' AND git_ekbe-vgabe = 4 ).
zdmbtr3 = git_ekbe-dmbtr.
zdmbtr5 = zdmbtr5 + zdmbtr3.
ENDIF.
zdmbtr2 = zdmbtr1 - zdmbtr5.
CLEAR : zdmbtr, zdmbtr3.
IF git_ekbe-bwart = '101'.
zdmbtr10 = git_ekbe-dmbtr.
zdmbtr8 = zdmbtr8 + zdmbtr10.
ELSEIF git_ekbe-bwart = '102'.
zdmbtr11 = git_ekbe-dmbtr.
zdmbtr9 = zdmbtr9 + zdmbtr11.
ENDIF.
AT END OF ebeln .
zdmbtr6 = zdmbtr8 - zdmbtr9.
CLEAR : zdmbtr10, zdmbtr11.
ENDAT.
ENDLOOP.
zdmbtr7 = zdmbtr2 - zdmbtr6.
SEARCH zdmbtr7 FOR '-'.
IF sy-subrc = 0.
zdmbtr7 = 0.
ENDIF.
zdmbtr12 = zdmbtr7 + zdmbtr12.
CLEAR : zdmbtr7, zdmbtr2, zdmbtr6, zdmbtr1, zdmbtr5, zdmbtr8, zdmbtr9.
ENDLOOP.
final_tab-dmbtr = zdmbtr12.
CLEAR zdmbtr12.
REFRESH git_ekkn1.
CLEAR : zdmbtr, zdmbtr3, zdmbtr1, zdmbtr5,
zdmbtr6, zdmbtr7.
IF git_prps-stufe = '1'.
PERFORM get_text.
final_tab-isize = git_prps-isize.
final_tab-izwek = git_prps-izwek.
final_tab-usr08 = git_prps-usr08.
final_tab-usr07 = git_prps-usr07 * 10.
final_tab-znum = final_tab-usr07.
final_tab-pspri = git_prps-pspri.
final_tab-udate = git_prps-usr09.
final_tab-usr04 = git_prps-usr04.
final_tab-usr02 = git_prps-usr02.
final_tab-objnr = git_prps-objnr.
ENDIF.
final_tab-usr09 = git_proj-eprog.
final_tab-pspid = git_proj-pspid.
final_tab-post1 = git_proj-post1.
Loop IMAKZ and IMAKT to get description
LOOP AT git_imakz WHERE objnr = final_tab-objnr.
zposnr = git_imakz-posnr.
ENDLOOP.
LOOP AT git_imakt WHERE posnr = zposnr.
ztxt50 = git_imakt-txt50.
ENDLOOP.
final_tab-post1 = ztxt50.
final_tab-objnr = git_prps-objnr.
Get text for ISIZE & IZWEK
LOOP AT git_t087j WHERE izwek = final_tab-izwek.
final_tab-ztext = git_t087j-txt50.
ENDLOOP.
LOOP AT git_taif5t WHERE sizecl = final_tab-isize.
final_tab-ztext1 = git_taif5t-sztxt.
ENDLOOP.
Get Original date of completion
PERFORM add_months.
Move data from rpsco to final table
LOOP AT git_rpsco WHERE objnr = git_prps-objnr.
zwpl00 = ( git_rpsco-wlp00 + git_rpsco-wlp01 + git_rpsco-wlp02 +
git_rpsco-wlp03 + git_rpsco-wlp04 + git_rpsco-wlp05 +
git_rpsco-wlp06 + git_rpsco-wlp07 + git_rpsco-wlp08 +
git_rpsco-wlp09 + git_rpsco-wlp10 + git_rpsco-wlp11 +
git_rpsco-wlp12 + git_rpsco-wlp13 + git_rpsco-wlp14 +
git_rpsco-wlp15 + git_rpsco-wlp16 ).
zwpl01 = zwpl01 + zwpl00.
ENDLOOP.
final_tab-wlp00 = zwpl01.
Move data from rpsco to final table (KBUD Values only)
LOOP AT git_rpsco WHERE objnr = git_prps-objnr.
IF git_rpsco-vorga = 'KBUD'.
zwpl02 = ( git_rpsco-wlp00 + git_rpsco-wlp01 + git_rpsco-wlp02 +
git_rpsco-wlp03 + git_rpsco-wlp04 + git_rpsco-wlp05 +
git_rpsco-wlp06 + git_rpsco-wlp07 + git_rpsco-wlp08 +
git_rpsco-wlp09 + git_rpsco-wlp10 + git_rpsco-wlp11 +
git_rpsco-wlp12 + git_rpsco-wlp13 + git_rpsco-wlp14 +
git_rpsco-wlp15 + git_rpsco-wlp16 ).
zwpl03 = zwpl03 + zwpl02.
ENDIF.
ENDLOOP.
final_tab-wlp001 = zwpl03.
Move data from cosp to final table
Comitted values
LOOP AT git_cosp2 WHERE objnr = git_prps-objnr.
IF ( git_cosp2-wrttp = 04 ). " git_cosp-wrttp = 22 ).
IF p_period = '01'.
zwtg00 = git_cosp2-wtg001.
ELSEIF p_period = '02'.
zwtg00 = ( git_cosp2-wtg001 + git_cosp2-wtg002 ).
ELSEIF p_period = '03'.
zwtg00 = ( git_cosp2-wtg001 + git_cosp2-wtg002 + git_cosp2-wtg003 ).
ELSEIF p_period = '04'.
zwtg00 = ( git_cosp2-wtg001 + git_cosp2-wtg002 + git_cosp2-wtg003
+ git_cosp2-wtg004 ).
ELSEIF p_period = '05'.
zwtg00 = ( git_cosp2-wtg001 + git_cosp2-wtg002 + git_cosp2-wtg003 +
git_cosp2-wtg004 + git_cosp2-wtg005 ).
ELSEIF p_period = '06'.
zwtg00 = ( git_cosp2-wtg001 + git_cosp2-wtg002 + git_cosp2-wtg003 +
git_cosp2-wtg004 + git_cosp2-wtg005 + git_cosp2-wtg006 ).
ELSEIF p_period = '07'.
zwtg00 = ( git_cosp2-wtg001 + git_cosp2-wtg002 + git_cosp2-wtg003 +
git_cosp2-wtg004 + git_cosp2-wtg005 + git_cosp2-wtg006 +
git_cosp2-wtg007 ).
ELSEIF p_period = '08'.
zwtg00 = ( git_cosp2-wtg001 + git_cosp2-wtg002 + git_cosp2-wtg003 +
git_cosp2-wtg004 + git_cosp2-wtg005 + git_cosp2-wtg006 +
git_cosp2-wtg007 + git_cosp2-wtg008 ).
ELSEIF p_period = '09'.
zwtg00 = ( git_cosp2-wtg001 + git_cosp2-wtg002 + git_cosp2-wtg003 +
git_cosp2-wtg004 + git_cosp2-wtg005 + git_cosp2-wtg006 +
git_cosp2-wtg007 + git_cosp2-wtg008 + git_cosp2-wtg009 ).
ELSEIF p_period = '10'.
zwtg00 = ( git_cosp2-wtg001 + git_cosp2-wtg002 + git_cosp2-wtg003 +
git_cosp2-wtg004 + git_cosp2-wtg005 + git_cosp2-wtg006 +
git_cosp2-wtg007 + git_cosp2-wtg008 + git_cosp2-wtg009 +
git_cosp2-wtg010 ).
ELSEIF p_period = '11'.
zwtg00 = ( git_cosp2-wtg001 + git_cosp2-wtg002 + git_cosp2-wtg003 +
git_cosp2-wtg004 + git_cosp2-wtg005 + git_cosp2-wtg006 +
git_cosp2-wtg007 + git_cosp2-wtg008 + git_cosp2-wtg009 +
git_cosp2-wtg010 + git_cosp2-wtg011 ).
ELSEIF p_period = '12'.
zwtg00 = ( git_cosp2-wtg001 + git_cosp2-wtg002 + git_cosp2-wtg003 +
git_cosp2-wtg004 + git_cosp2-wtg005 + git_cosp2-wtg006 +
git_cosp2-wtg007 + git_cosp2-wtg008 + git_cosp2-wtg009 +
git_cosp2-wtg010 + git_cosp2-wtg011 + git_cosp2-wtg012 ).
ELSEIF p_period = '13'.
zwtg00 = ( git_cosp2-wtg001 + git_cosp2-wtg002 + git_cosp2-wtg003 +
git_cosp2-wtg004 + git_cosp2-wtg005 + git_cosp2-wtg006 +
git_cosp2-wtg007 + git_cosp2-wtg008 + git_cosp2-wtg009 +
git_cosp2-wtg010 + git_cosp2-wtg011 + git_cosp2-wtg012 +
git_cosp2-wtg013 ).
ELSEIF p_period = '14'.
zwtg00 = ( git_cosp2-wtg001 + git_cosp2-wtg002 + git_cosp2-wtg003 +
git_cosp2-wtg004 + git_cosp2-wtg005 + git_cosp2-wtg006 +
git_cosp2-wtg007 + git_cosp2-wtg008 + git_cosp2-wtg009 +
git_cosp2-wtg010 + git_cosp2-wtg011 + git_cosp2-wtg012 +
git_cosp2-wtg013 + git_cosp2-wtg014 ).
ELSEIF p_period = '15'.
zwtg00 = ( git_cosp2-wtg001 + git_cosp2-wtg002 + git_cosp2-wtg003 +
git_cosp2-wtg004 + git_cosp2-wtg005 + git_cosp2-wtg006 +
git_cosp2-wtg007 + git_cosp2-wtg008 + git_cosp2-wtg009 +
git_cosp2-wtg010 + git_cosp2-wtg011 + git_cosp2-wtg012 +
git_cosp2-wtg013 + git_cosp2-wtg014 + git_cosp2-wtg015 ).
ELSEIF p_period = '16'.
zwtg00 = ( git_cosp2-wtg001 + git_cosp2-wtg002 + git_cosp2-wtg003 +
git_cosp2-wtg004 + git_cosp2-wtg005 + git_cosp2-wtg006 +
git_cosp2-wtg007 + git_cosp2-wtg008 + git_cosp2-wtg009 +
git_cosp2-wtg010 + git_cosp2-wtg011 + git_cosp2-wtg012 +
git_cosp2-wtg013 + git_cosp2-wtg014 + git_cosp2-wtg015 +
git_cosp2-wtg016 ).
ENDIF.
zwtg01 = zwtg01 + zwtg00.
ENDIF.
IF git_cosp2-wrttp = 22.
zwtg00 = ( git_cosp2-wtg001 + git_cosp2-wtg002 + git_cosp2-wtg003 +
git_cosp2-wtg004 + git_cosp2-wtg005 + git_cosp2-wtg006 +
git_cosp2-wtg007 + git_cosp2-wtg008 + git_cosp2-wtg009 +
git_cosp2-wtg010 + git_cosp2-wtg011 + git_cosp2-wtg012 +
git_cosp2-wtg013 + git_cosp2-wtg014 + git_cosp2-wtg015 +
git_cosp2-wtg016 ).
ENDIF.
zwtg01 = zwtg01 + zwtg00.
ENDLOOP.
LOOP AT git_cosp1 WHERE objnr = git_prps-objnr.
IF p_period = '01'.
zwtg03 = git_cosp1-wtg001.
zwtg04 = git_cosp1-wtg001.
ELSEIF p_period = '02'.
zwtg03 = git_cosp1-wtg002 .
zwtg04 = git_cosp1-wtg001.
ELSEIF p_period = '03'.
zwtg03 = git_cosp1-wtg003 .
zwtg04 = ( git_cosp1-wtg001 + git_cosp1-wtg002 ).
ELSEIF p_period = '04'.
zwtg03 = git_cosp1-wtg004 .
zwtg04 = ( git_cosp1-wtg001 + git_cosp1-wtg002 + git_cosp1-wtg003 ).
ELSEIF p_period = '05'.
zwtg03 = git_cosp1-wtg005 .
zwtg04 = ( git_cosp1-wtg001 + git_cosp1-wtg002 + git_cosp1-wtg003 +
git_cosp1-wtg004 ).
ELSEIF p_period = '06'.
zwtg03 = git_cosp1-wtg006 .
zwtg04 = ( git_cosp1-wtg001 + git_cosp1-wtg002 + git_cosp1-wtg003 +
git_cosp1-wtg004 + git_cosp1-wtg005 ).
ELSEIF p_period = '07'.
zwtg03 = git_cosp1-wtg007.
zwtg04 = ( git_cosp1-wtg001 + git_cosp1-wtg002 + git_cosp1-wtg003 +
git_cosp1-wtg004 + git_cosp1-wtg005 + git_cosp1-wtg006 ).
ELSEIF p_period = '08'.
zwtg03 = git_cosp1-wtg008 .
zwtg04 = ( git_cosp1-wtg001 + git_cosp1-wtg002 + git_cosp1-wtg003 +
git_cosp1-wtg004 + git_cosp1-wtg005 + git_cosp1-wtg006 +
git_cosp1-wtg007 ).
ELSEIF p_period = '09'.
zwtg03 = git_cosp1-wtg009 .
zwtg04 = ( git_cosp1-wtg001 + git_cosp1-wtg002 + git_cosp1-wtg003 +
git_cosp1-wtg004 + git_cosp1-wtg005 + git_cosp1-wtg006 +
git_cosp1-wtg007 + git_cosp1-wtg008 ).
ELSEIF p_period = '10'.
zwtg03 = git_cosp1-wtg010 .
zwtg04 = ( git_cosp1-wtg001 + git_cosp1-wtg002 + git_cosp1-wtg003 +
git_cosp1-wtg004 + git_cosp1-wtg005 + git_cosp1-wtg006 +
git_cosp1-wtg007 + git_cosp1-wtg008 + git_cosp1-wtg009 ).
ELSEIF p_period = '11'.
zwtg03 = git_cosp1-wtg011 .
zwtg04 = ( git_cosp1-wtg001 + git_cosp1-wtg002 + git_cosp1-wtg003 +
git_cosp1-wtg004 + git_cosp1-wtg005 + git_cosp1-wtg006 +
git_cosp1-wtg007 + git_cosp1-wtg008 + git_cosp1-wtg009 +
git_cosp1-wtg010 ).
ELSEIF p_period = '12'.
zwtg03 = git_cosp1-wtg012 .
zwtg04 = ( git_cosp1-wtg001 + git_cosp1-wtg002 + git_cosp1-wtg003 +
git_cosp1-wtg004 + git_cosp1-wtg005 + git_cosp1-wtg006 +
git_cosp1-wtg007 + git_cosp1-wtg008 + git_cosp1-wtg009 +
git_cosp1-wtg010 + git_cosp1-wtg011 ).
ELSEIF p_period = '13'.
zwtg03 = git_cosp1-wtg013 .
zwtg04 = ( git_cosp1-wtg001 + git_cosp1-wtg002 + git_cosp1-wtg003 +
git_cosp1-wtg004 + git_cosp1-wtg005 + git_cosp1-wtg006 +
git_cosp1-wtg007 + git_cosp1-wtg008 + git_cosp1-wtg009 +
git_cosp1-wtg010 + git_cosp1-wtg011 + git_cosp1-wtg012 ).
ELSEIF p_period = '14'.
zwtg03 = git_cosp1-wtg014 .
zwtg04 = ( git_cosp1-wtg001 + git_cosp1-wtg002 + git_cosp1-wtg003 +
git_cosp1-wtg004 + git_cosp1-wtg005 + git_cosp1-wtg006 +
git_cosp1-wtg007 + git_cosp1-wtg008 + git_cosp1-wtg009 +
git_cosp1-wtg010 + git_cosp1-wtg011 + git_cosp1-wtg012 +
git_cosp1-wtg013 ).
ELSEIF p_period = '15'.
zwtg03 = git_cosp1-wtg015 .
zwtg04 = ( git_cosp1-wtg001 + git_cosp1-wtg002 + git_cosp1-wtg003 +
git_cosp1-wtg004 + git_cosp1-wtg005 + git_cosp1-wtg006 +
git_cosp1-wtg007 + git_cosp1-wtg008 + git_cosp1-wtg009 +
git_cosp1-wtg010 + git_cosp1-wtg011 + git_cosp1-wtg012 +
git_cosp1-wtg013 + git_cosp1-wtg014 ).
ELSEIF p_period = '16'.
zwtg03 = git_cosp1-wtg016 .
zwtg04 = ( git_cosp1-wtg001 + git_cosp1-wtg002 + git_cosp1-wtg003 +
git_cosp1-wtg004 + git_cosp1-wtg005 + git_cosp1-wtg006 +
git_cosp1-wtg007 + git_cosp1-wtg008 + git_cosp1-wtg009 +
git_cosp1-wtg010 + git_cosp1-wtg011 + git_cosp1-wtg012 +
git_cosp1-wtg013 + git_cosp1-wtg014 + git_cosp1-wtg015 ).
ENDIF.
zwtg02 = zwtg02 + zwtg03.
zwtg05 = zwtg05 + zwtg04.
ENDLOOP.
final_tab-wtg001 = zwtg01 .
final_tab-wtg002 = zwtg05.
final_tab-wtg003 = zwtg02.
final_tab-wtg004 = final_tab-wtg002 + final_tab-wtg003 + final_tab-dmbtr.
final_tab-wtg005 = final_tab-wlp00 - final_tab-wtg004.
IF git_prps-stufe = 1.
READ TABLE git_prte WITH KEY posnr = git_prps-pspnr
psphi = git_prps-psphi.
IF sy-subrc = 0.
CONCATENATE git_prte-pende '/' git_prte-estrt '/' git_prte-eende
INTO final_tab-revdate.
final_tab-iende = git_prte-iende.
ENDIF.
ENDIF.
ENDLOOP.
APPEND final_tab.
CLEAR : zwpl00, zwpl01, zwpl02, zwpl03, zwtg00, zwtg03,
zwtg02, zwtg04, zwtg05, zwtg01, final_tab.
ENDLOOP.
ENDFORM. " getdata
&----
*& Form convert_posnr
&----
text
----
--> p1 text
<-- p2 text
----
FORM convert_posnr .
DATA : zinclike TYPE c LENGTH 24,
zoutclike TYPE c LENGTH 24,
zoutclike1 TYPE c LENGTH 24,
zlowclike TYPE c LENGTH 24,
zhighclike TYPE c LENGTH 24.
COMPUTE s_gjahr-low = s_gjahr-low - 1.
s_gjahr-sign = 'I'.
s_gjahr-option = 'BT'.
s_gjahr-high = s_gjahr-low.
s_gjahr-low = '0000'.
REFRESH s_gjahr.
APPEND s_gjahr.
IF s_gjahr-high > sy-datum+0(4).
MESSAGE 'Selected Year is in future' TYPE 'E'.
ENDIF.
IF s_posnr-option = 'EQ'.
zinclike = s_posnr-low.
CALL FUNCTION 'CONVERSION_EXIT_KONPD_INPUT'
EXPORTING
input = zinclike
IMPORTING
output = zoutclike
projwa = git_proj1
EXCEPTIONS
not_found = 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.
REFRESH s_posnr.
s_posnr-sign = 'I'.
s_posnr-option = 'EQ'.
s_posnr-low = zoutclike.
APPEND s_posnr.
ENDIF.
IF s_posnr-option = 'BT'.
zlowclike = s_posnr-low.
CALL FUNCTION 'CONVERSION_EXIT_KONPD_INPUT'
EXPORTING
input = zlowclike
IMPORTING
output = zoutclike
projwa = git_proj1
EXCEPTIONS
not_found = 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.
zhighclike = s_posnr-high.
CALL FUNCTION 'CONVERSION_EXIT_KONPD_INPUT'
EXPORTING
input = zhighclike
IMPORTING
output = zoutclike1
projwa = git_proj2
EXCEPTIONS
not_found = 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.
REFRESH s_posnr.
s_posnr-sign = 'I'.
s_posnr-option = 'BT'.
s_posnr-low = zoutclike.
s_posnr-high = zoutclike1.
APPEND s_posnr.
ENDIF.
REFRESH : git_proj1, git_proj2.
ENDFORM. " convert_posnr
&----
*& Form dispdata_alv
&----
text
----
--> p1 text
<-- p2 text
----
FORM dispdata_alv .
PERFORM eventtab_build USING gt_events[].
PERFORM buildcatalogue.
PERFORM call_alv1.
ENDFORM. " dispdata_alv
&----
*& Form eventtab_build
&----
text
----
-->P_GT_EVENTS[] text
----
FORM eventtab_build USING rt_events TYPE slis_t_event.
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
i_list_type = 0
IMPORTING
et_events = rt_events.
ENDFORM. " eventtab_build
&----
*& Form buildcatalogue
&----
text
----
--> p1 text
<-- p2 text
----
FORM buildcatalogue .
DATA: ls_fieldcat_ln TYPE slis_fieldcat_alv.
CLEAR ls_fieldcat_ln.
ls_fieldcat_ln-row_pos = 1.
ls_fieldcat_ln-col_pos = 1.
ls_fieldcat_ln-fieldname = 'ZTEXT1'.
ls_fieldcat_ln-tabname = 'FINAL_TAB'.
ls_fieldcat_ln-seltext_l = 'Investment Profile'.
ls_fieldcat_ln-outputlen = 50.
ls_fieldcat_ln-key = 'X'.
APPEND ls_fieldcat_ln TO gt_fieldcat.
CLEAR ls_fieldcat_ln.
ls_fieldcat_ln-row_pos = 1.
ls_fieldcat_ln-col_pos = 2.
ls_fieldcat_ln-fieldname = 'ZTEXT'.
ls_fieldcat_ln-tabname = 'FINAL_TAB'.
ls_fieldcat_ln-seltext_l = 'Inv Reason'.
ls_fieldcat_ln-outputlen = 50.
APPEND ls_fieldcat_ln TO gt_fieldcat.
CLEAR ls_fieldcat_ln.
ls_fieldcat_ln-row_pos = 1.
ls_fieldcat_ln-col_pos = 3.
ls_fieldcat_ln-fieldname = 'PSPID'.
ls_fieldcat_ln-tabname = 'FINAL_TAB'.
ls_fieldcat_ln-seltext_l = 'Project No'.
ls_fieldcat_ln-outputlen = 24.
APPEND ls_fieldcat_ln TO gt_fieldcat.
CLEAR ls_fieldcat_ln.
ls_fieldcat_ln-row_pos = 1.
ls_fieldcat_ln-col_pos = 4.
ls_fieldcat_ln-fieldname = 'POST1'.
ls_fieldcat_ln-tabname = 'FINAL_TAB'.
ls_fieldcat_ln-seltext_l = 'Scheme Name'.
ls_fieldcat_ln-outputlen = 40 .
APPEND ls_fieldcat_ln TO gt_fieldcat.
CLEAR ls_fieldcat_ln.
ls_fieldcat_ln-row_pos = 1.
ls_fieldcat_ln-col_pos = 5.
ls_fieldcat_ln-fieldname = 'OBJNR'.
ls_fieldcat_ln-tabname = 'FINAL_TAB'.
ls_fieldcat_ln-seltext_l = 'Sanction'.
ls_fieldcat_ln-outputlen = 22.
APPEND ls_fieldcat_ln TO gt_fieldcat.
CLEAR ls_fieldcat_ln.
ls_fieldcat_ln-row_pos = 1.
ls_fieldcat_ln-col_pos = 5.
ls_fieldcat_ln-fieldname = 'WLP00'.
ls_fieldcat_ln-tabname = 'FINAL_TAB'.
ls_fieldcat_ln-seltext_l = 'Sanction'.
ls_fieldcat_ln-outputlen = 15.
ls_fieldcat_ln-do_sum = 'X'.
APPEND ls_fieldcat_ln TO gt_fieldcat.
CLEAR ls_fieldcat_ln.
ls_fieldcat_ln-row_pos = 1.
ls_fieldcat_ln-col_pos = 6.
ls_fieldcat_ln-fieldname = 'WTG001'.
ls_fieldcat_ln-tabname = 'FINAL_TAB'.
ls_fieldcat_ln-seltext_l = 'Committed'.
ls_fieldcat_ln-outputlen = 15.
ls_fieldcat_ln-do_sum = 'X'.
APPEND ls_fieldcat_ln TO gt_fieldcat.
CLEAR ls_fieldcat_ln.
ls_fieldcat_ln-row_pos = 1.
ls_fieldcat_ln-col_pos = 7.
ls_fieldcat_ln-fieldname = 'WTG002'.
ls_fieldcat_ln-tabname = 'FINAL_TAB'.
ls_fieldcat_ln-seltext_l = 'Spent Upto Prev Month'.
ls_fieldcat_ln-outputlen = 15.
ls_fieldcat_ln-do_sum = 'X'.
APPEND ls_fieldcat_ln TO gt_fieldcat.
CLEAR ls_fieldcat_ln.
ls_fieldcat_ln-row_pos = 1.
ls_fieldcat_ln-col_pos = 8.
ls_fieldcat_ln-fieldname = 'WTG003'.
ls_fieldcat_ln-tabname = 'FINAL_TAB'.
ls_fieldcat_ln-seltext_l = 'Spent in Current Month'.
ls_fieldcat_ln-outputlen = 15.
ls_fieldcat_ln-do_sum = 'X'.
APPEND ls_fieldcat_ln TO gt_fieldcat.
CLEAR ls_fieldcat_ln.
ls_fieldcat_ln-row_pos = 1.
ls_fieldcat_ln-col_pos = 9.
ls_fieldcat_ln-fieldname = 'DMBTR'.
ls_fieldcat_ln-tabname = 'FINAL_TAB'.
ls_fieldcat_ln-seltext_l = 'Advance'.
ls_fieldcat_ln-outputlen = 13.
ls_fieldcat_ln-do_sum = 'X'.
APPEND ls_fieldcat_ln TO gt_fieldcat.
CLEAR ls_fieldcat_ln.
ls_fieldcat_ln-row_pos = 1.
ls_fieldcat_ln-col_pos = 10.
ls_fieldcat_ln-fieldname = 'WTG004'.
ls_fieldcat_ln-tabname = 'FINAL_TAB'.
ls_fieldcat_ln-seltext_l = 'Total Spent'.
ls_fieldcat_ln-outputlen = 15.
ls_fieldcat_ln-do_sum = 'X'.
APPEND ls_fieldcat_ln TO gt_fieldcat.
CLEAR ls_fieldcat_ln.
ls_fieldcat_ln-row_pos = 1.
ls_fieldcat_ln-col_pos = 11.
ls_fieldcat_ln-fieldname = 'WTG005'.
ls_fieldcat_ln-tabname = 'FINAL_TAB'.
ls_fieldcat_ln-seltext_l = 'Balance to be spent'.
ls_fieldcat_ln-outputlen = 15.
ls_fieldcat_ln-do_sum = 'X'.
APPEND ls_fieldcat_ln TO gt_fieldcat.
CLEAR ls_fieldcat_ln.
ls_fieldcat_ln-row_pos = 1.
ls_fieldcat_ln-col_pos = 12.
ls_fieldcat_ln-fieldname = 'UDATE'.
ls_fieldcat_ln-fieldname = 'ZTEXT2'.
ls_fieldcat_ln-tabname = 'FINAL_TAB'.
ls_fieldcat_ln-seltext_l = 'Date of Sanction'.
ls_fieldcat_ln-outputlen = 15.
ls_fieldcat_ln-do_sum = 'X'.
APPEND ls_fieldcat_ln TO gt_fieldcat.
CLEAR ls_fieldcat_ln.
ls_fieldcat_ln-row_pos = 1.
ls_fieldcat_ln-col_pos = 13.
ls_fieldcat_ln-fieldname = 'USR08'.
ls_fieldcat_ln-fieldname = 'ZTEXT3'.
ls_fieldcat_ln-tabname = 'FINAL_TAB'.
ls_fieldcat_ln-seltext_l = 'Target Order Date'.
ls_fieldcat_ln-outputlen = 15.
ls_fieldcat_ln-do_sum = 'X'.
APPEND ls_fieldcat_ln TO gt_fieldcat.
CLEAR ls_fieldcat_ln.
ls_fieldcat_ln-row_pos = 1.
ls_fieldcat_ln-col_pos = 14.
ls_fieldcat_ln-fieldname = 'USR09'.
ls_fieldcat_ln-fieldname = 'ZTEXT4'.
ls_fieldcat_ln-tabname = 'FINAL_TAB'.
ls_fieldcat_ln-seltext_l = 'Actual Order Date'.
ls_fieldcat_ln-outputlen = 15.
ls_fieldcat_ln-do_sum = 'X'.
APPEND ls_fieldcat_ln TO gt_fieldcat.
CLEAR ls_fieldcat_ln.
ls_fieldcat_ln-row_pos = 1.
ls_fieldcat_ln-col_pos = 15.
ls_fieldcat_ln-fieldname = 'USR10'.
ls_fieldcat_ln-fieldname = 'ZTEXT5'.
ls_fieldcat_ln-tabname = 'FINAL_TAB'.
ls_fieldcat_ln-seltext_l = 'Original date of completion'.
ls_fieldcat_ln-outputlen = 15.
ls_fieldcat_ln-do_sum = 'X'.
APPEND ls_fieldcat_ln TO gt_fieldcat.
CLEAR ls_fieldcat_ln.
ls_fieldcat_ln-row_pos = 1.
ls_fieldcat_ln-col_pos = 16.
ls_fieldcat_ln-fieldname = 'REVDATE'.
ls_fieldcat_ln-fieldname = 'ZTEXT7'.
ls_fieldcat_ln-tabname = 'FINAL_TAB'.
ls_fieldcat_ln-seltext_l = 'Revised date of completion'.
ls_fieldcat_ln-outputlen = 15.
ls_fieldcat_ln-do_sum = 'X'.
APPEND ls_fieldcat_ln TO gt_fieldcat.
CLEAR ls_fieldcat_ln.
ls_fieldcat_ln-row_pos = 1.
ls_fieldcat_ln-col_pos = 17.
ls_fieldcat_ln-fieldname = 'IENDE'.
ls_fieldcat_ln-fieldname = 'ZTEXT6'.
ls_fieldcat_ln-tabname = 'FINAL_TAB'.
ls_fieldcat_ln-seltext_l = 'Actual Date of completion'.
ls_fieldcat_ln-outputlen = 15.
ls_fieldcat_ln-do_sum = 'X'.
APPEND ls_fieldcat_ln TO gt_fieldcat.
CLEAR ls_fieldcat_ln.
ls_fieldcat_ln-row_pos = 1.
ls_fieldcat_ln-col_pos = 18.
ls_fieldcat_ln-fieldname = 'ZNUM'.
ls_fieldcat_ln-tabname = 'FINAL_TAB'.
ls_fieldcat_ln-seltext_l = 'Expected Gross Saving'.
ls_fieldcat_ln-outputlen = 10.
ls_fieldcat_ln-do_sum = 'X'.
APPEND ls_fieldcat_ln TO gt_fieldcat.
CLEAR ls_fieldcat_ln.
ls_fieldcat_ln-row_pos = 1.
ls_fieldcat_ln-col_pos = 19.
ls_fieldcat_ln-fieldname = 'TEXT1'.
ls_fieldcat_ln-tabname = 'FINAL_TAB'.
ls_fieldcat_ln-seltext_l = 'Remarks'.
ls_fieldcat_ln-outputlen = 150.
ls_fieldcat_ln-do_sum = 'X'.
APPEND ls_fieldcat_ln TO gt_fieldcat.
CLEAR ls_fieldcat_ln.
ls_fieldcat_ln-row_pos = 1.
ls_fieldcat_ln-col_pos = 20.
ls_fieldcat_ln-fieldname = 'PSPRI'.
ls_fieldcat_ln-tabname = 'FINAL_TAB'.
ls_fieldcat_ln-seltext_l = 'Priority'.
ls_fieldcat_ln-outputlen = 15.
ls_fieldcat_ln-do_sum = 'X'.
APPEND ls_fieldcat_ln TO gt_fieldcat.
CLEAR ls_fieldcat_ln.
ls_fieldcat_ln-row_pos = 1.
ls_fieldcat_ln-col_pos = 21.
ls_fieldcat_ln-fieldname = 'WLP001'.
ls_fieldcat_ln-tabname = 'FINAL_TAB'.
ls_fieldcat_ln-seltext_l = 'P&B Budget'.
ls_fieldcat_ln-outputlen = 15.
ls_fieldcat_ln-do_sum = 'X'.
APPEND ls_fieldcat_ln TO gt_fieldcat.
CLEAR ls_fieldcat_ln.
ls_fieldcat_ln-row_pos = 1.
ls_fieldcat_ln-col_pos = 22.
ls_fieldcat_ln-fieldname = 'USR02'.
ls_fieldcat_ln-tabname = 'FINAL_TAB'.
ls_fieldcat_ln-seltext_l = 'Capitalized in legacy'.
ls_fieldcat_ln-outputlen = 15.
ls_fieldcat_ln-do_sum = 'X'.
APPEND ls_fieldcat_ln TO gt_fieldcat.
CLEAR ls_fieldcat_ln.
ls_fieldcat_ln-row_pos = 1.
ls_fieldcat_ln-col_pos = 23.
ls_fieldcat_ln-fieldname = 'ZTXT04'.
ls_fieldcat_ln-tabname = 'FINAL_TAB'.
ls_fieldcat_ln-seltext_l = 'Status'.
ls_fieldcat_ln-outputlen = 4.
APPEND ls_fieldcat_ln TO gt_fieldcat.
gs_layout-box_fieldname = 'FLAG'.
gs_layout-box_tabname = 'FINAL_TAB'.
gs_layout-zebra = 'X'.
gs_layout-colwidth_optimize = 'X'.
APPEND gs_layout.
ENDFORM. " buildcatalogue
&----
*& Form call_alv1
&----
text
----
--> p1 text
<-- p2 text
----
FORM call_alv1 .
CLEAR lv_tabix.
g_repid = sy-repid.
DELETE final_tab WHERE pspid IS INITIAL.
DELETE ADJACENT DUPLICATES FROM final_tab COMPARING pspid.
LOOP AT final_tab.
lv_tabix = sy-tabix.
final_tab-wlp00 = ( final_tab-wlp00 / 100000 ).
final_tab-wlp001 = ( final_tab-wlp001 / 100000 ).
final_tab-wtg001 = ( final_tab-wtg001 / 100000 ).
final_tab-wtg002 = ( final_tab-wtg002 / 100000 ).
final_tab-wtg003 = ( final_tab-wtg003 / 100000 ).
final_tab-wtg004 = ( final_tab-wtg004 / 100000 ).
final_tab-wtg005 = ( final_tab-wtg005 / 100000 ).
final_tab-dmbtr = ( final_tab-dmbtr / 100000 ).
zfcmnr = final_tab-udate+4(2).
zfcltx1 = final_tab-udate+0(4).
CALL FUNCTION '/OBIZ/P_MONTH_DESC'
EXPORTING
month = zfcmnr
IMPORTING
desc = zfcltx
EXCEPTIONS
invalidmonth = 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.
CONCATENATE zfcltx zfcltx1 INTO zfcltx2.
final_tab-ztext2 = zfcltx2.
CLEAR : zfcltx, zfcltx1, zfcltx2, zfcmnr.
zfcmnr = final_tab-usr08+4(2).
zfcltx1 = final_tab-usr08+0(4).
CALL FUNCTION '/OBIZ/P_MONTH_DESC'
EXPORTING
month = zfcmnr
IMPORTING
desc = zfcltx
EXCEPTIONS
invalidmonth = 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.
CONCATENATE zfcltx zfcltx1 INTO zfcltx2.
final_tab-ztext3 = zfcltx2.
CLEAR : zfcltx, zfcltx1, zfcltx2, zfcmnr.
zfcmnr = final_tab-usr09+4(2).
zfcltx1 = final_tab-usr09+0(4).
CALL FUNCTION '/OBIZ/P_MONTH_DESC'
EXPORTING
month = zfcmnr
IMPORTING
desc = zfcltx
EXCEPTIONS
invalidmonth = 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.
CONCATENATE zfcltx zfcltx1 INTO zfcltx2.
final_tab-ztext4 = zfcltx2.
CLEAR : zfcltx, zfcltx1, zfcltx2, zfcmnr.
zfcmnr = final_tab-usr10+4(2).
zfcltx1 = final_tab-usr10+0(4).
CALL FUNCTION '/OBIZ/P_MONTH_DESC'
EXPORTING
month = zfcmnr
IMPORTING
desc = zfcltx
EXCEPTIONS
invalidmonth = 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.
CONCATENATE zfcltx zfcltx1 INTO zfcltx2.
final_tab-ztext5 = zfcltx2.
CLEAR : zfcltx, zfcltx1, zfcltx2, zfcmnr.
zfcmnr = final_tab-iende+4(2).
zfcltx1 = final_tab-iende+0(4).
CALL FUNCTION '/OBIZ/P_MONTH_DESC'
EXPORTING
month = zfcmnr
IMPORTING
desc = zfcltx
EXCEPTIONS
invalidmonth = 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.
CONCATENATE zfcltx zfcltx1 INTO zfcltx2.
final_tab-ztext6 = zfcltx2.
CLEAR : zfcltx, zfcltx1, zfcltx2, zfcmnr.
zfcmnr = final_tab-revdate+4(2).
zfcltx1 = final_tab-revdate+0(4).
CALL FUNCTION '/OBIZ/P_MONTH_DESC'
EXPORTING
month = zfcmnr
IMPORTING
desc = zfcltx
EXCEPTIONS
invalidmonth = 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.
CONCATENATE zfcltx zfcltx1 INTO zfcltx2.
final_tab-ztext6 = zfcltx2.
CLEAR : zfcltx, zfcltx1, zfcmnr.
zfcmnr = final_tab-revdate+13(2).
zfcltx1 = final_tab-revdate+9(4).
CALL FUNCTION '/OBIZ/P_MONTH_DESC'
EXPORTING
month = zfcmnr
IMPORTING
desc = zfcltx
EXCEPTIONS
invalidmonth = 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.
CONCATENATE zfcltx zfcltx1 INTO zfcltx3.
final_tab-ztext6 = zfcltx2.
CLEAR : zfcltx, zfcltx1, zfcmnr.
zfcmnr = final_tab-revdate+22(2).
zfcltx1 = final_tab-revdate+18(4).
CALL FUNCTION '/OBIZ/P_MONTH_DESC'
EXPORTING
month = zfcmnr
IMPORTING
desc = zfcltx
EXCEPTIONS
invalidmonth = 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.
CONCATENATE zfcltx zfcltx1 INTO zfcltx4.
final_tab-ztext6 = zfcltx2.
CLEAR : zfcltx, zfcltx1, zfcmnr.
CONCATENATE zfcltx2 '/' zfcltx3 '/' zfcltx4 INTO zfcltx5.
final_tab-ztext7 = zfcltx5.
CLEAR : zfcltx2, zfcltx3, zfcltx4, zfcltx5.
CALL FUNCTION 'STATUS_TEXT_EDIT'
EXPORTING
client = sy-mandt
flg_user_stat = 'X'
objnr = final_tab-objnr
only_active = 'X'
spras = 'E'
BYPASS_BUFFER = ' '
IMPORTING
ANW_STAT_EXISTING =
E_STSMA =
LINE =
user_line = final_tab-ztxt04
STONR =
EXCEPTIONS
object_not_found = 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.
MODIFY final_tab INDEX lv_tabix.
ENDLOOP.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = g_repid
i_callback_pf_status_set = 'UNIT_CAPEX'
i_callback_user_command = 'USER_COMMAND'
i_callback_top_of_page = 'TOP_PAGE'
is_layout = gs_layout
it_fieldcat = gt_fieldcat[]
it_events = gt_events[]
TABLES
t_outtab = final_tab[]
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. " call_alv1
&----
*& Form user_command
&----
text
----
-->PV_UCOMM text
-->RS_SELFIELD text
----
FORM user_command USING pv_ucomm LIKE sy-ucomm
rs_selfield TYPE slis_selfield.
CASE sy-ucomm.
WHEN 'BACK'.
LEAVE PROGRAM.
WHEN 'LEAVE'.
LEAVE PROGRAM.
WHEN 'CANCEL'.
LEAVE PROGRAM.
WHEN '&SUMMARY'.
LOOP AT final_tab.
final_tab1-ztext1 = 'Non-Return'.
IF final_tab-isize = 'NR' AND final_tab-pspri <> '1'.
zwpl00 = final_tab-wlp00 + zwpl00.
zwtg01 = final_tab-wtg001 + zwtg01.
zwtg02 = final_tab-wtg002 + zwtg02.
zwtg03 = final_tab-wtg003 + zwtg03.
zwtg04 = final_tab-wtg004 + zwtg04.
zwtg05 = final_tab-wtg005 + zwtg05.
final_tab1-isize = final_tab-isize.
ENDIF.
final_tab1-wlp00 = zwpl00.
final_tab1-wtg001 = zwtg01.
final_tab1-wtg002 = zwtg02.
final_tab1-wtg003 = zwtg03.
final_tab1-wtg004 = zwtg04.
final_tab1-wtg005 = zwtg05.
ENDLOOP.
APPEND final_tab1.
CLEAR final_tab1.
CLEAR : zwpl00 , zwtg01 , zwtg02 , zwtg03 , zwtg04 , zwtg05.
LOOP AT final_tab.
final_tab1-ztext1 = 'Return based and strategic'.
IF final_tab-isize = 'RB' OR final_tab-pspri = '1'.
zwpl00 = final_tab-wlp00 + zwpl00.
zwtg01 = final_tab-wtg001 + zwtg01.
zwtg02 = final_tab-wtg002 + zwtg02.
zwtg03 = final_tab-wtg003 + zwtg03.
zwtg04 = final_tab-wtg004 + zwtg04.
zwtg05 = final_tab-wtg005 + zwtg05.
final_tab1-isize = final_tab-isize.
ENDIF.
final_tab1-wlp00 = zwpl00.
final_tab1-wtg001 = zwtg01.
final_tab1-wtg002 = zwtg02.
final_tab1-wtg003 = zwtg03.
final_tab1-wtg004 = zwtg04.
final_tab1-wtg005 = zwtg05.
ENDLOOP.
APPEND final_tab1.
CLEAR final_tab1.
CLEAR : zwpl00 , zwtg01 , zwtg02 , zwtg03 , zwtg04 , zwtg05.
LOOP AT final_tab.
final_tab1-ztext1 = 'Discretionary'.
IF final_tab-isize = 'DC' AND final_tab-pspri <> '1'.
zwpl00 = final_tab-wlp00 + zwpl00.
zwtg01 = final_tab-wtg001 + zwtg01.
zwtg02 = final_tab-wtg002 + zwtg02.
zwtg03 = final_tab-wtg003 + zwtg03.
zwtg04 = final_tab-wtg004 + zwtg04.
zwtg05 = final_tab-wtg005 + zwtg05.
final_tab1-isize = final_tab-isize.
ENDIF.
final_tab1-wlp00 = zwpl00.
final_tab1-wtg001 = zwtg01.
final_tab1-wtg002 = zwtg02.
final_tab1-wtg003 = zwtg03.
final_tab1-wtg004 = zwtg04.
final_tab1-wtg005 = zwtg05.
ENDLOOP.
APPEND final_tab1.
CLEAR final_tab1.
CLEAR : zwpl00 , zwtg01 , zwtg02 , zwtg03 , zwtg04 , zwtg05.
LOOP AT final_tab.
final_tab1-ztext1 = 'Scheme > Rs 50 Crs'.
IF final_tab-izwek = '50' AND final_tab-pspri <> '1'.
zwpl00 = final_tab-wlp00 + zwpl00.
zwtg01 = final_tab-wtg001 + zwtg01.
zwtg02 = final_tab-wtg002 + zwtg02.
zwtg03 = final_tab-wtg003 + zwtg03.
zwtg04 = final_tab-wtg004 + zwtg04.
zwtg05 = final_tab-wtg005 + zwtg05.
final_tab1-isize = final_tab-isize.
ENDIF.
final_tab1-wlp00 = zwpl00.
final_tab1-wtg001 = zwtg01.
final_tab1-wtg002 = zwtg02.
final_tab1-wtg003 = zwtg03.
final_tab1-wtg004 = zwtg04.
final_tab1-wtg005 = zwtg05.
ENDLOOP.
APPEND final_tab1.
CLEAR final_tab1.
CLEAR : zwpl00 , zwtg01 , zwtg02 , zwtg03 , zwtg04 , zwtg05.
LOOP AT final_tab.
final_tab1-ztext1 = 'Green/Brown field Project'.
IF final_tab-izwek = 'GB' AND final_tab-pspri <> '1'.
zwpl00 = final_tab-wlp00 + zwpl00.
zwtg01 = final_tab-wtg001 + zwtg01.
zwtg02 = final_tab-wtg002 + zwtg02.
zwtg03 = final_tab-wtg003 + zwtg03.
zwtg04 = final_tab-wtg004 + zwtg04.
zwtg05 = final_tab-wtg005 + zwtg05.
final_tab1-isize = final_tab-isize.
ENDIF.
final_tab1-wlp00 = zwpl00.
final_tab1-wtg001 = zwtg01.
final_tab1-wtg002 = zwtg02.
final_tab1-wtg003 = zwtg03.
final_tab1-wtg004 = zwtg04.
final_tab1-wtg005 = zwtg05.
ENDLOOP.
APPEND final_tab1.
CLEAR final_tab1.
CLEAR : zwpl00 , zwtg01 , zwtg02 , zwtg03 , zwtg04 , zwtg05.
DELETE ADJACENT DUPLICATES FROM final_tab1 COMPARING isize.
DELETE final_tab1 WHERE isize IS INITIAL.
ENDCASE.
PERFORM eventtab_build1 USING gt_events[].
PERFORM buildcatalogue1.
PERFORM call_alv2.
ENDFORM. "user_command
&----
*& Form top_page
&----
text
----
FORM top_page.
TYPES : BEGIN OF wa_t001w,
werks TYPE werks_d,
name1 TYPE name1,
END OF wa_t001w.
DATA :git_t001w TYPE TABLE OF wa_t001w WITH HEADER LINE.
SELECT werks name1 FROM t001w INTO TABLE git_t001w WHERE
werks = p_werks.
DATA: ls_line TYPE slis_listheader.
DATA : sdate(10) TYPE c,
stime(10) TYPE c,
zwerks TYPE werks_d,
zname1(30) TYPE c,
txt2(50) TYPE c,
txt4(50) TYPE c,
txt5(50) TYPE c,
txt3(50) TYPE c.
READ TABLE git_t001w INDEX 1.
zwerks = git_t001w-werks.
zname1 = git_t001w-name1.
CONCATENATE sy-datum6(2) '/' sy-datum4(2) '/' sy-datum+0(4)
INTO sdate .
CONCATENATE sy-uzeit0(2) ':' sy-uzeit2(2) ':' sy-uzeit+4(2)
INTO stime .
CONCATENATE ' Date :' sdate 'Time' stime
INTO txt2 SEPARATED BY space.
CONCATENATE 'Fiscal :' : s_gjahr-low 'Month' p_period
INTO txt3 SEPARATED BY space.
CONCATENATE 'Plant :' zname1 INTO txt4 SEPARATED BY space.
txt5 = 'Amount in Lakhs of Rupees'.
REFRESH gt_list_top_of_page.
CLEAR ls_line.
ls_line-typ = 'H'.
ls_line-info = 'GRASIM INDUSTRIES LIMITED'.
APPEND ls_line TO gt_list_top_of_page.
CLEAR ls_line.
ls_line-typ = 'S'.
ls_line-info = 'Unit capex report - GCI'.
APPEND ls_line TO gt_list_top_of_page.
CLEAR ls_line.
ls_line-typ = 'S'.
ls_line-info = txt3.
APPEND ls_line TO gt_list_top_of_page.
CLEAR ls_line.
ls_line-typ = 'S'.
ls_line-info = txt2.
APPEND ls_line TO gt_list_top_of_page.
CLEAR ls_line.
ls_line-typ = 'S'.
ls_line-info = txt4.
APPEND ls_line TO gt_list_top_of_page.
CLEAR ls_line.
ls_line-typ = 'S'.
ls_line-info = txt5.
APPEND ls_line TO gt_list_top_of_page.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
it_list_commentary = gt_list_top_of_page.
ENDFORM. "top_page
&----
*& Form po_remin_tab
&----
text
----
-->P_EXTAB text
----
FORM unit_capex USING p_extab TYPE slis_t_extab.
SET PF-STATUS 'UNIT_CAPEX'.
ENDFORM. "STDPOPBX_FULLSCREEN
&----
*& Form convert_posid
&----
text
----
--> p1 text
<-- p2 text
----
FORM convert_posid .
CLEAR zoutput.
CALL FUNCTION 'CONVERSION_EXIT_ABPSP_INPUT'
EXPORTING
input = git_prps-posid
IMPORTING
output = zoutput
EXCEPTIONS
not_found = 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. " convert_posid
&----
*& Form add_months
&----
text
----
--> p1 text
<-- p2 text
----
FORM add_months .
DATA : zmonth TYPE char8.
*data :
MOVE final_tab-usr04 TO zmonth.
CALL FUNCTION '/BEV4/PLPS__ADD_MONTH_TO_DATE'
EXPORTING
months = zmonth
olddate = final_tab-udate
IMPORTING
newdate = final_tab-usr10.
ENDFORM. " add_months
&----
*& Form get_text
&----
text
----
--> p1 text
<-- p2 text
----
FORM get_text .
DATA : zname TYPE char70,
ztext(150) TYPE c,
ztext1(150) TYPE c,
lv_tabix1 TYPE sy-tabix.
lv_tabix1 = 1.
CONCATENATE 'D' git_proj-pspnr INTO zname.
CALL FUNCTION 'READ_TEXT'
EXPORTING
client = sy-mandt
id = 'LTXT'
language = 'E'
name = zname
object = 'PMS'
TABLES
lines = zline
EXCEPTIONS
id = 1
language = 2
name = 3
not_found = 4
object = 5
reference_check = 6
wrong_access_to_archive = 7
OTHERS = 8.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
DELETE zline INDEX lv_tabix1.
LOOP AT zline.
ztext = zline-tdline.
CONCATENATE ztext1 ztext INTO ztext1.
ENDLOOP.
final_tab-text1 = ztext1.
ENDFORM. " get_text
&----
*& Form cal_months
&----
text
----
--> p1 text
<-- p2 text
----
FORM cal_months .
IF p_period = '01'.
zmonthtext = 'April'.
ELSEIF p_period = '02'.
zmonthtext = 'May'.
ELSEIF p_period = '03'.
zmonthtext = 'June'.
ELSEIF p_period = '04'.
zmonthtext = 'July'.
ELSEIF p_period = '05'.
zmonthtext = 'August'.
ELSEIF p_period = '06'.
zmonthtext = 'September'.
ELSEIF p_period = '07'.
zmonthtext = 'October'.
ELSEIF p_period = '08'.
zmonthtext = 'November'.
ELSEIF p_period = '09'.
zmonthtext = 'December'.
ELSEIF p_period = '10'.
zmonthtext = 'January'.
ELSEIF p_period = '11'.
zmonthtext = 'February'.
ELSEIF p_period = '12'.
zmonthtext = 'March'.
ENDIF.
ENDFORM. " cal_months
&----
*& Form eventtab_build1
&----
text
----
-->P_GT_EVENTS[] text
----
FORM eventtab_build1 USING rt_events TYPE slis_t_event.
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
i_list_type = 0
IMPORTING
et_events = rt_events.
ENDFORM. " eventtab_build1
&----
*& Form buildcatalogue1
&----
text
----
--> p1 text
<-- p2 text
----
FORM buildcatalogue1 .
REFRESH gt_fieldcat.
DATA: ls_fieldcat_ln TYPE slis_fieldcat_alv.
CLEAR ls_fieldcat_ln.
ls_fieldcat_ln-row_pos = 1.
ls_fieldcat_ln-col_pos = 1.
ls_fieldcat_ln-fieldname = 'ZTEXT1'.
ls_fieldcat_ln-tabname = 'FINAL_TAB'.
ls_fieldcat_ln-seltext_l = 'Investment Profile'.
ls_fieldcat_ln-outputlen = 50.
ls_fieldcat_ln-key = 'X'.
APPEND ls_fieldcat_ln TO gt_fieldcat.
CLEAR ls_fieldcat_ln.
CLEAR ls_fieldcat_ln.
ls_fieldcat_ln-row_pos = 1.
ls_fieldcat_ln-col_pos = 2.
ls_fieldcat_ln-fieldname = 'WLP00'.
ls_fieldcat_ln-tabname = 'FINAL_TAB'.
ls_fieldcat_ln-seltext_l = 'Sanction'.
ls_fieldcat_ln-outputlen = 15.
ls_fieldcat_ln-do_sum = 'X'.
APPEND ls_fieldcat_ln TO gt_fieldcat.
CLEAR ls_fieldcat_ln.
ls_fieldcat_ln-row_pos = 1.
ls_fieldcat_ln-col_pos = 3.
ls_fieldcat_ln-fieldname = 'WTG001'.
ls_fieldcat_ln-tabname = 'FINAL_TAB'.
ls_fieldcat_ln-seltext_l = 'Committed'.
ls_fieldcat_ln-outputlen = 15.
ls_fieldcat_ln-do_sum = 'X'.
APPEND ls_fieldcat_ln TO gt_fieldcat.
CLEAR ls_fieldcat_ln.
ls_fieldcat_ln-row_pos = 1.
ls_fieldcat_ln-col_pos = 4.
ls_fieldcat_ln-fieldname = 'WTG002'.
ls_fieldcat_ln-tabname = 'FINAL_TAB'.
ls_fieldcat_ln-seltext_l = 'Spent Upto Prev Month'.
ls_fieldcat_ln-outputlen = 15.
ls_fieldcat_ln-do_sum = 'X'.
APPEND ls_fieldcat_ln TO gt_fieldcat.
CLEAR ls_fieldcat_ln.
ls_fieldcat_ln-row_pos = 1.
ls_fieldcat_ln-col_pos = 5.
ls_fieldcat_ln-fieldname = 'WTG003'.
ls_fieldcat_ln-tabname = 'FINAL_TAB'.
ls_fieldcat_ln-seltext_l = 'Spent in Current Month'.
ls_fieldcat_ln-outputlen = 15.
ls_fieldcat_ln-do_sum = 'X'.
APPEND ls_fieldcat_ln TO gt_fieldcat.
CLEAR ls_fieldcat_ln.
ls_fieldcat_ln-row_pos = 1.
ls_fieldcat_ln-col_pos = 6.
ls_fieldcat_ln-fieldname = 'WTG004'.
ls_fieldcat_ln-tabname = 'FINAL_TAB'.
ls_fieldcat_ln-seltext_l = 'Total Spent'.
ls_fieldcat_ln-outputlen = 15.
ls_fieldcat_ln-do_sum = 'X'.
APPEND ls_fieldcat_ln TO gt_fieldcat.
CLEAR ls_fieldcat_ln.
ls_fieldcat_ln-row_pos = 1.
ls_fieldcat_ln-col_pos = 7.
ls_fieldcat_ln-fieldname = 'WTG005'.
ls_fieldcat_ln-tabname = 'FINAL_TAB'.
ls_fieldcat_ln-seltext_l = 'Balance to be spent'.
ls_fieldcat_ln-outputlen = 15.
ls_fieldcat_ln-do_sum = 'X'.
APPEND ls_fieldcat_ln TO gt_fieldcat.
gs_layout-zebra = 'X'.
gs_layout-colwidth_optimize = 'X'.
APPEND gs_layout.
ENDFORM. " buildcatalogue1
&----
*& Form call_alv2
&----
text
----
--> p1 text
<-- p2 text
----
FORM call_alv2 .
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = g_repid
i_callback_pf_status_set = 'UNIT_CAPEX'
i_callback_user_command = 'USER_COMMAND'
i_callback_top_of_page = 'TOP_PAGE'
is_layout = gs_layout
it_fieldcat = gt_fieldcat[]
it_events = gt_events[]
TABLES
t_outtab = final_tab1[]
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.
REFRESH final_tab1.
ENDFORM. " call_alv2
&----
*& Form cal_date
&----
text
----
--> p1 text
<-- p2 text
----
FORM cal_date .
IF p_period = '01'.
s_budat-sign = 'I'.
s_budat-option = 'BT'.
s_budat-low = '00000000'.
s_budat-high = '20070430'.
REFRESH s_budat.
APPEND s_budat.
ELSEIF p_period = '02'.
s_budat-sign = 'I'.
s_budat-option = 'BT'.
s_budat-low = '00000000'.
s_budat-high = '20070531'.
REFRESH s_budat.
APPEND s_budat.
ELSEIF p_period = '03'.
s_budat-sign = 'I'.
s_budat-option = 'BT'.
s_budat-low = '00000000'.
s_budat-high = '20070630'.
REFRESH s_budat.
APPEND s_budat.
ELSEIF p_period = '04'.
s_budat-sign = 'I'.
s_budat-option = 'BT'.
s_budat-low = '00000000'.
s_budat-high = '20070731'.
REFRESH s_budat.
APPEND s_budat.
ELSEIF p_period = '05'.
s_budat-sign = 'I'.
s_budat-option = 'BT'.
s_budat-low = '00000000'.
s_budat-high = '20070830'.
REFRESH s_budat.
APPEND s_budat.
ELSEIF p_period = '06'.
s_budat-sign = 'I'.
s_budat-option = 'BT'.
s_budat-low = '00000000'.
s_budat-high = '20070931'.
REFRESH s_budat.
APPEND s_budat.
ELSEIF p_period = '07'.
s_budat-sign = 'I'.
s_budat-option = 'BT'.
s_budat-low = '00000000'.
s_budat-high = '20071030'.
REFRESH s_budat.
APPEND s_budat.
ELSEIF p_period = '08'.
s_budat-sign = 'I'.
s_budat-option = 'BT'.
s_budat-low = '00000000'.
s_budat-high = '20071131'.
REFRESH s_budat.
APPEND s_budat.
ELSEIF p_period = '09'.
s_budat-sign = 'I'.
s_budat-option = 'BT'.
s_budat-low = '00000000'.
s_budat-high = '20071230'.
REFRESH s_budat.
APPEND s_budat.
ELSEIF p_period = '10'.
s_budat-sign = 'I'.
s_budat-option = 'BT'.
s_budat-low = '00000000'.
s_budat-high = '20080131'.
REFRESH s_budat.
APPEND s_budat.
ELSEIF p_period = '11'.
s_budat-sign = 'I'.
s_budat-option = 'BT'.
s_budat-low = '00000000'.
s_budat-high = '20080229'.
REFRESH s_budat.
APPEND s_budat.
ELSEIF p_period = '12'.
s_budat-sign = 'I'.
s_budat-option = 'BT'.
s_budat-low = '00000000'.
s_budat-high = '20080330'.
REFRESH s_budat.
APPEND s_budat.
ENDIF.
ENDFORM. " cal_date
11-07-2007 8:18 PM
hi Solmon,
I really appreciate that,
but to be frank what I am looking at i donno, is that programme actually serves all my 3 reports which i asked for?
I want to know what might be the functional specifications? I am basically FICO guy turned into PS ,
I have no ABAP knowledge all I know is we can write Functional specifications and the ABAP guy will take care from there.
can you please mail me to citigenx@gmail.com
Thank you .
Krishna
please let me know how to reward points?
11-07-2007 8:20 PM
Sorry man,
instead of Sajimon,
I pronounced you as Solmon,
my Bad