Application Development 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: 

PS Reporing

Former Member
0 Kudos

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

3 REPLIES 3

Former Member
0 Kudos

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

0 Kudos

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?

0 Kudos

Sorry man,

instead of Sajimon,

I pronounced you as Solmon,

my Bad