‎2008 Apr 29 1:49 AM
Hi Experts,
i ve problem, in my report i got the required data into one it_final internal table fom several internal table,
it_final table having complete data.
but from this it_final int table i want to generate the report based on some conditions. bt am not able to do this.
can anybody help how to procede....
Thanks in advance..
Rgds,
sudharsan.
‎2008 Apr 29 2:05 AM
Can you post the code where you have the issue? We can then find out what the problem is.
Thanks
Venkata
‎2008 Apr 29 2:30 AM
Hi venkata,
here am pasting my code,
&----
*& Report ZBSR_PS_ROJ
*&
&----
*&
*&
&----
REPORT zbsr_ps_roj NO STANDARD PAGE HEADING LINE-COUNT 52(2) LINE-SIZE 320 .
TABLE DECLARATIONA
TABLES: proj, " Project definition
prps, " WBS Element Master Data
rpsco, " Project info database
aufk, " Order master data
afvc, " Operation within an order
coep,
prhis. " WBS Hierarchy Elements
------------------------------------------------------------------- *
SELECTION SCREEN
------------------------------------------------------------------- *
SELECT-OPTIONS: s_ccode FOR coep-bukrs. "Company Code(s)
PARAMETERS : p_year TYPE rpsco-gjahr, "FISCAL YEAR
p_month(2) TYPE c. " Period
DATA DICLARATION ****************
DATA: month(2) type n,
sum LIKE rpsco-wlp01,
tmp_pspnr LIKE proj-pspid,
first_projn LIKE afvc-projn,
last_projn LIKE afvc-projn,
tmp_prps_sw(1) TYPE c.
TYPES : BEGIN OF t_proj, " Project definition
pspnr LIKE proj-pspnr, "Project definition
pspid LIKE proj-pspid, "Project definition
post1 LIKE proj-post1, "Short description
objnr LIKE proj-objnr, "Object number
vernr LIKE proj-verna, "Name of Project manager
verna LIKE proj-verna, "Name of Project manager
vbukr LIKE proj-vbukr, "Company code for the proj
lednr LIKE tbp0l-lednr, "Budget / Planning ledger
END OF t_proj.
TYPES : BEGIN OF t_prps, " For WBS (Work Breakdown Structure) Element Master Data
pspnr LIKE prps-pspnr, "WBS element
posid LIKE prps-posid, "WBS element item number
post1 LIKE prps-post1, "Short description
objnr LIKE prps-objnr, "Object number
psphi LIKE prps-psphi, "Current number of project
pbukr LIKE prps-pbukr, "Company code
verna LIKE prps-verna, "Name of Project manager
END OF t_prps.
TYPES : BEGIN OF t_aufk, " For Order master data
pspel LIKE aufk-pspel, "WBS STRUCTURE
objnr LIKE aufk-objnr, "OBJECT NUMBER
bukrs LIKE aufk-bukrs,
aufnr LIKE aufk-aufnr, "ORDER NUMBER
auart LIKE aufk-auart, "ORDER TYPE
autyp LIKE aufk-autyp, "ORDER CATEGORY
waers LIKE aufk-waers, "ORDER CURRENCY
END OF t_aufk.
TYPES : BEGIN OF t_afvc, " Operation within an order
projn LIKE afvc-projn, "Project Number/WBS element
objnr LIKE afvc-objnr, "Object number
vornr LIKe afvc-vornr, " Network Activity number
ltxa1 LIKE afvc-ltxa1, "Short description
END OF t_afvc.
TYPES : BEGIN OF t_rpsco, " Project info database: Costs, revenues, finances
objnr LIKE rpsco-objnr, "Object number
wrttp LIKE rpsco-wrttp, "Value type
acpos LIKE rpsco-acpos, "Value category
vorga LIKE rpsco-vorga, "Budgeting/Planning Activity
versn LIKE rpsco-versn, "Budgeting/Planning Version
abkat LIKE rpsco-abkat, "Category: Variance/Res Anal
twaer LIKE rpsco-twaer, "Transaction currency
gjahr LIKE rpsco-gjahr, " Fiscal year
lednr LIKE rpsco-lednr, "Budget/Planning Ledger
beltp LIKE rpsco-beltp, "Debit type
wlp00 LIKE rpsco-wlp00, "Period value
wlp01 LIKE rpsco-wlp01, "Period value
wlp02 LIKE rpsco-wlp02, "Period value
wlp03 LIKE rpsco-wlp03, "Period value
wlp04 LIKE rpsco-wlp04, "Period value
wlp05 LIKE rpsco-wlp05, "Period value
wlp06 LIKE rpsco-wlp06, "Period value
wlp07 LIKE rpsco-wlp07, "Period value
wlp08 LIKE rpsco-wlp08, "Period value
wlp09 LIKE rpsco-wlp09, "Period value
wlp10 LIKE rpsco-wlp10, "Period value
wlp11 LIKE rpsco-wlp11, "Period value
wlp12 LIKE rpsco-wlp12, "Period value
wlp13 LIKE rpsco-wlp13, "Period value
wlp14 LIKE rpsco-wlp14, "Period value
wlp15 LIKE rpsco-wlp15, "Period value
wlp16 LIKE rpsco-wlp16, "Period value
END OF t_rpsco.
TYPES : BEGIN OF t_prhis, " -
>" WBS Hierarchy Elements
posnr LIKE prhis-posnr, " std WBS element
psphi like prhis-psphi, " Current project
up like prhis-up, " superior
down like prhis-down, " 1st subordinate
end of t_prhis.
TYPES: BEGIN OF I_FINAL,
PSPNR LIKE PROJ-PSPNR,
PSPID LIKE PROJ-PSPID,
POST1 LIKE PROJ-POST1,
VERNA LIKE PROJ-VERNA,
VBUKR LIKE PROJ-VBUKR,
pspnr1 LIKE prps-pspnr,
posid1 LIKE prps-posid,
psphi LIKE prps-psphi,
PROJN LIKE AFVC-PROJN,
vornr like afvc-vornr,
PSPEL LIKE AUFK-PSPEL,
WRTTP LIKE RPSCO-WRTTP,
vorga LIKE rpsco-vorga,
VERSN LIKE RPSCO-VERSN,
TWAER LIKE RPSCO-TWAER,
GJAHR LIKE RPSCO-GJAHR,
beltp LIKE rpsco-beltp,
WLP00 LIKE rpsco-wlp00,
WLP01 LIKE RPSCO-WLP01,
WLP02 LIKE RPSCO-WLP02,
WLP03 LIKE RPSCO-WLP03,
WLP04 LIKE RPSCO-WLP04,
WLP05 LIKE RPSCO-WLP05,
WLP06 LIKE RPSCO-WLP06,
WLP07 LIKE RPSCO-WLP07,
WLP08 LIKE RPSCO-WLP08,
WLP09 LIKE RPSCO-WLP09,
WLP10 LIKE RPSCO-WLP10,
WLP11 LIKE RPSCO-WLP11,
WLP12 LIKE RPSCO-WLP12,
WLP13 LIKE RPSCO-WLP13,
WLP14 LIKE RPSCO-WLP14,
WLP15 LIKE RPSCO-WLP15,
WLP16 LIKE RPSCO-WLP16,
END OF I_FINAL.
DATA : it_final TYPE STANDARD TABLE OF i_final WITH HEADER LINE,
wa_final TYPE i_final.
DATA : it_output TYPE STANDARD TABLE OF i_final WITH HEADER LINE,
wa_output TYPE i_final.
DATA : it_proj TYPE STANDARD TABLE OF t_proj WITH HEADER LINE,
wa_it_proj TYPE t_proj.
DATA : it_prps TYPE STANDARD TABLE OF t_prps WITH HEADER LINE,
wa_it_prps TYPE t_prps.
DATA : it_aufk TYPE STANDARD TABLE OF t_aufk WITH HEADER LINE,
wa_it_aufk TYPE t_aufk.
DATA : it_afvc TYPE STANDARD TABLE OF t_afvc WITH HEADER LINE,
wa_it_afvc TYPE t_afvc.
DATA : it_rpsco TYPE STANDARD TABLE OF t_rpsco WITH HEADER LINE,
wa_it_rpsco TYPE t_rpsco.
DATA : it_prhis TYPE STANDARD TABLE OF t_prhis WITH HEADER LINE,
wa_it_prhis TYPE t_prhis.
*TOP-OF-PAGE.
=================================================================== *
MAIN PROCESS BEGINS
=================================================================== *
START-OF-SELECTION.
initilization ****************************** *
CLEAR : it_proj,
it_prps,
it_aufk,
it_afvc,
it_rpsco,
it_prhis,
wa_it_proj,
wa_it_prps,
wa_it_aufk,
wa_it_afvc,
wa_it_rpsco.
month = p_month.
get data from PROJ table
SELECT pspnr
pspid
post1
objnr
vernr
verna
vbukr
FROM proj into TABLE it_proj
WHERE vbukr IN s_ccode.
get data from PRPS table
IF NOT it_proj[] IS INITIAL.
SELECT pspnr
posid
post1
objnr
psphi
pbukr
verna
FROM prps INTO TABLE it_prps
FOR ALL ENTRIES IN it_proj
WHERE psphi EQ it_proj-pspnr
AND pbukr IN s_ccode.
ENDIF.
SORT it_prps BY objnr.
getting values from PRHIS (Hierarchy for WBS Elements)
IF NOT it_prps[] is initial.
SELECT posnr " std WBS ele
psphi " Current proj
up " Superior
down " 1st subordinator
FROM PRHIS
INTO TABLE it_prhis
FOR ALL ENTRIES IN it_prps
WHERE posnr EQ it_prps-pspnr
AND psphi EQ it_prps-psphi.
ENDIF.
getting data from AUFK
IF NOT it_prps[] is initial.
SELECT pspel
objnr
bukrs
aufnr
auart
autyp
waers
FROM aufk INTO TABLE it_aufk
FOR ALL ENTRIES IN it_prps
WHERE pspel EQ it_prps-pspnr
AND bukrs IN s_ccode.
APPEND it_aufk.
ENDIF.
IF NOT it_prps[] IS INITIAL.
SELECT objnr
wrttp
acpos
vorga
versn
abkat
twaer
gjahr
lednr
beltp
wlp00
wlp01
wlp02
wlp03
wlp04
wlp05
wlp06
wlp07
wlp08
wlp09
wlp10
wlp11
wlp12
wlp13
wlp14
wlp15
wlp16
FROM rpsco
INTO TABLE it_rpsco
FOR ALL ENTRIES IN it_prps
WHERE objnr EQ it_prps-objnr
AND versn IN ('000','021')
AND gjahr EQ p_year.
ENDIF.
SORT it_rpsco BY objnr.
DELETE ADJACENT DUPLICATES FROM it_rpsco COMPARING objnr.
Finding the current proj number
LOOP AT it_proj.
CLEAR: first_projn, last_projn, tmp_prps_sw.
LOOP AT it_prps WHERE psphi = it_proj-pspnr.
IF tmp_prps_sw IS INITIAL.
first_projn = it_prps-pspnr.
tmp_prps_sw = 'Y'.
ENDIF.
last_projn = it_prps-pspnr.
ENDLOOP.
ENDLOOP.
getting Proj no, Objno and discription from AFVC
SELECT projn
objnr
vornr
ltxa1
FROM afvc
INTO TABLE it_afvc
WHERE projn BETWEEN first_projn
AND last_projn.
DELETE ADJACENT DUPLICATES FROM it_afvc COMPARING projn objnr.
loop at it_afvc.
SELECT * FROM rpsco INTO CORRESPONDING FIELDS OF it_rpsco
WHERE objnr EQ it_afvc-objnr
AND versn IN ('000','021')
AND gjahr EQ p_year.
APPEND it_rpsco.
ENDSELECT.
ENDLOOP.
IF NOT it_aufk[] IS INITIAL.
SELECT * FROM rpsco
INTO CORRESPONDING FIELDS OF it_rpsco
FOR ALL ENTRIES IN it_aufk
WHERE objnr = it_aufk-objnr
AND twaer = it_aufk-waers
and gjahr EQ p_year.
MOVE it_aufk-pspel TO it_rpsco-posid.
APPEND it_rpsco.
ENDSELECT.
ENDIF.
LOOP AT it_prps.
it_final-psphi = it_prps-psphi.
it_final-pspnr1 = it_prps-pspnr.
it_final-posid1 = it_prps-posid.
READ TABLE IT_PROJ WITH KEY PSPNR = IT_PRPS-PSPHI
BINARY SEARCH.
IF SY-SUBRC EQ 0.
it_final-pspnr = it_proj-pspnr.
it_final-pspid = it_proj-pspid.
it_final-post1 = it_proj-post1.
it_final-verna = it_proj-verna.
it_final-vbukr = it_proj-vbukr.
ENDIF.
READ TABLE it_AUFK WITH KEY PSPEL = it_PRPS-PSPNR
BINARY SEARCH.
IF SY-SUBRC EQ 0.
it_final-pspel = it_aufk-pspel.
ENDIF.
READ TABLE it_RPSCO WITH KEY OBJNR = it_PRPS-OBJNR
BINARY SEARCH.
IF SY-SUBRC EQ 0.
it_final-vorga = it_rpsco-vorga.
it_final-versn = it_rpsco-versn.
it_final-twaer = it_rpsco-twaer.
it_final-gjahr = it_rpsco-gjahr.
it_final-beltp = it_rpsco-beltp.
it_final-wlp00 = it_rpsco-wlp00.
it_final-wlp01 = it_rpsco-wlp01.
it_final-wlp02 = it_rpsco-wlp02.
it_final-wlp03 = it_rpsco-wlp03.
it_final-wlp04 = it_rpsco-wlp04.
it_final-wlp05 = it_rpsco-wlp05.
it_final-wlp06 = it_rpsco-wlp06.
it_final-wlp07 = it_rpsco-wlp07.
it_final-wlp08 = it_rpsco-wlp08.
it_final-wlp09 = it_rpsco-wlp09.
it_final-wlp10 = it_rpsco-wlp10.
it_final-wlp11 = it_rpsco-wlp11.
it_final-wlp12 = it_rpsco-wlp12.
it_final-wlp13 = it_rpsco-wlp13.
it_final-wlp14 = it_rpsco-wlp14.
it_final-wlp15 = it_rpsco-wlp15.
it_final-wlp16 = it_rpsco-wlp16.
ENDIF.
APPEND it_final.
MOVE it_final-psphi TO it_output-psphi.
*MOVE-CORRESPONDING it_final TO it_output.
APPEND it_output.
ENDLOOP. " end of it_prps
( up here is ok my final data isin it_final table. from here i want to process it_final tab based on some cond and to get planned revenue, planned cost, etc...
--> below am trying that bt am nt able to get values
--> pls anybody help on this... )
Calculating budgect values ........
DATA: ori_rev LIKE rpsco-wlp00,
ori_cost LIKE rpsco-wlp00,
tmp_ori_rev LIKE rpsco-wlp00.
DATA: pla_rev LIKE rpsco-wlp01,
t_pla_rev LIKE rpsco-wlp01,
pla_cost LIKE rpsco-wlp01,
actu_cost LIKE rpsco-wlp01.
loop at it_final
where wrttp = '01'
AND beltp = '02'
AND versn = '21'.
ADD it_final-wlp00 TO ori_rev.
tmp_ori_rev = tmp_ori_rev + ori_rev.
ENDLOOP.
Planned Revenues
LOOP AT it_final
WHERE posid1 = it_prps-posid
AND wrttp = '01'
AND ( vorga = 'sdor' OR vorga = 'rkp5' )
AND beltp = '02'
AND versn = '000'.
ADD it_final-wlp01
THEN it_final-wlp02 UNTIL it_final-wlp12
TO pla_rev.
t_pla_rev = t_pla_rev + pla_rev.
ENDLOOP.
ENDLOOP.
write :/20 'ori rev ', tmp_ori_rev.
write :/20 'plan rev ', t_pla_rev.
write:/10 'hi am from project ', it_final-psphi.
*pla_rev = pla_rev + it_final-wlp02.
*
write :/20 'plan rev ', pla_rev .
CASE month.
WHEN '02'.
LOOP AT it_final
WHERE wrttp = '01'.
where wrttp EQ '01'
AND beltp = '01'
AND versn = '000'.
CLEAR ori_rev.
pla_rev = ori_rev + it_final-wlp02.
MOVE it_final-wlp02 TO ori_rev.
ENDLOOP.
write :/20 'plan rev ', ori_rev .
ENDCASE.
ENDAT.
*ENDLOOP.
*write :/20 'Final data from it_final'.
*skip 3.
*LOOP AT it_final into wa_final.
write :/06 wa_final-psphi, "06 wa_final-vbukr,
20 wa_final-pspnr1,
40 wa_final-posid1,
60 wa_final-vorga,
70 wa_final-versn,
75 wa_final-twaer,
80 wa_final-gjahr,
90 wa_final-beltp,
100 wa_final-wlp01,
120 wa_final-wlp02,
140 wa_final-wlp03,
160 wa_final-wlp04,
180 wa_final-wlp05,
200 wa_final-wlp06,
220 wa_final-wlp07,
240 wa_final-wlp08,
260 wa_final-wlp09,
280 wa_final-wlp10,
300 wa_final-wlp11,
320 wa_final-wlp12.
endloop. " end of it_final
Thanks in advance,
sudharsan.
‎2008 Apr 29 2:23 AM
1、loop at it_final into itab where <condition>.
append itab.
endloop.
2、delete it_final where <condition> not in sel_conditon.
‎2008 Apr 29 2:50 AM
hi am using like this, but control is not going inside the loop.
here it_final and it_output both are same.
and wrttp,vorga,beltp and versn all fields are in it_final table.
-> if the below WHERE cond is satisfied then i want to get some amt values from it_final into one field.
but here WHERE cond is satisfying.
LOOP AT it_final into it_output
WHERE wrttp = '01'
AND ( vorga = 'sdor' OR vorga = 'rkp5' )
AND beltp = '02'
AND versn = '000'.
append it_output.
ENDLOOP.
could anybady tell me how to do this..
Thanks in advance,
sudha.
‎2008 Apr 29 3:22 AM
Hi Sudharsan,
First give the values in where condition in CAPITAL LETTERS and check the condition.
LOOP AT it_final into it_output
WHERE wrttp = '01'
AND ( vorga = 'SDOR' OR vorga = 'RKP5' )Second, please check the entries in the DATABASE table (SE11) by giving these restricted values.
By giving the values of WRTTP, VORGE, BELTP and VERSN in the database table check the number of entries . Depending on that u can verify the output.
reward if helpful
raam