2006 Jul 27 1:27 PM
Hi,
Iam Running a report. If i key in Project # and weekend dates , The Report Should fetch WBS element, WBS element - Billing Level , etc etc
Suppose a project 13381 has wbs elements 13381.001, 13381.101, 13381.501. The WBS Element Billing level for them are 13381-B01, 13381-B02, 13381-B03.
This is coming Properly in the Report.
But When I Key In Project Number as Select-options.
Project # 13381 to 13382
Iam Not Getting The Billing level of 13382 , But Iam properly getting The billing level for 13381. If the execute the report with single Project I get it properly , But The same thing with range Iam not getting Billing level for the Other Projects in the Range.
Below is the Code only for Fetching WBS level 2 .
Plz Tell me , How do i get the billing level for the all the projects in Range. What should i change in the code
DATA: TEMP_PSPNR LIKE PRPS-PSPNR.
DATA: BEGIN OF INT_PRHI OCCURS 0,
LEVEL(1) TYPE C, "level in the hierarchy
WBS LIKE PRHI, "Record for hierarchy
END OF INT_PRHI.
DATA: LEVEL2_INIT(1) TYPE C. "set to initial for each new proj
DATA: BEGIN OF LEVEL2_PRPS OCCURS 0,
POSNR LIKE PRHI-POSNR,
POSID LIKE PRPS-POSID,
POST1 LIKE PRPS-POST1,
END OF LEVEL2_PRPS.
IF PRPS-PSPNR <> TEMP_PSPNR.
MOVE PRPS-PSPNR TO TEMP_PSPNR.
MOVE PRPS-POSID TO ITAB-X_WBSELEMENT.
ENDIF.
PERFORM FIND_LEVEL_2
USING PROJ-PSPNR
TEMP_PSPNR.
ITAB-X_WBS_LEVEL2TITLE = LEVEL2_PRPS-POST1.
ITAB-X_WBS_LEVEL2 = LEVEL2_PRPS-POSID.
FORM FIND_LEVEL_2
USING PROJECT
WBS.
DATA: TOP_POSNR LIKE PRHI-POSNR,
FIND_POSNR LIKE PRHI-POSNR,
SECOND_POSNR LIKE PRHI-POSNR.
IF LEVEL2_INIT IS INITIAL.
LEVEL2_INIT = 'X'.
CLEAR INT_PRHI.
REFRESH INT_PRHI.
SELECT * FROM PRHI
WHERE PSPHI = PROJECT.
MOVE-CORRESPONDING PRHI TO INT_PRHI-WBS.
APPEND INT_PRHI.
ENDSELECT.
SORT INT_PRHI BY WBS-POSNR.
LOOP AT INT_PRHI WHERE WBS-UP = '00000000'.
EXIT.
ENDLOOP.
TOP_POSNR = INT_PRHI-WBS-POSNR.
LOOP AT INT_PRHI WHERE
WBS-UP = TOP_POSNR.
INT_PRHI-LEVEL = '2'.
MODIFY INT_PRHI.
SECOND_POSNR = INT_PRHI-WBS-POSNR.
LOOP AT INT_PRHI WHERE
WBS-UP = SECOND_POSNR.
INT_PRHI-LEVEL = '3'.
MODIFY INT_PRHI.
ENDLOOP.
ENDLOOP.
ENDIF.
FIND_POSNR = WBS.
DO 10 TIMES.
LOOP AT INT_PRHI
WHERE WBS-POSNR = FIND_POSNR.
ENDLOOP.
IF INT_PRHI-LEVEL = '2'.
SECOND_POSNR = INT_PRHI-WBS-UP.
SELECT SINGLE * FROM PRPS WHERE PSPNR = FIND_POSNR.
SELECT SINGLE * FROM PRPS WHERE PSPNR = SECOND_POSNR.
LEVEL2_PRPS-POST1 = PRPS-POST1.
LEVEL2_PRPS-POSID = PRPS-POSID.
EXIT.
ENDIF.
FIND_POSNR = INT_PRHI-WBS-UP.
ENDDO.
SELECT SINGLE * FROM PRPS WHERE PSPNR = WBS. "resets prps!!!
ENDFORM.
2006 Jul 27 2:27 PM
Hey Guys,
I Corrected it Myself, the problem was in the
FORM FIND_LEVEL_2
USING PROJECT
WBS.
<b>IF LEVEL2_INIT IS INITIAL. ]
LEVEL2_INIT = 'X'.</b> ]
These shud be taken off , if the Projects are in range , The above works only for a single project.
| User | Count |
|---|---|
| 4 | |
| 2 | |
| 2 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 |