‎2006 Aug 07 3:17 PM
Hi All,
Few days back I had posted Query Regarding Date range where in I enter Proj# from_month, from_year, To_month and To_year.
The output data for the project must be within this year range.
suppose I enter proj no. 13381 and
from_month - 05
from_year - 2004
To_month - 04
from_year - 2005
This is the Desired Output:
yearmonth plan14
200406 -
13381 -
100
200407 -
13381 -
100
200409 -
13381 -
678
Right Now the Output what Iam getting is:
yearmonth plan14
200405 -
13381 -
0
200406 -
13381 -
100
200407 -
13381 -
100
200408 -
13381 -
0
200409 -
13381 -
678
I Just want the NON ZERO PLan14 values. The PLan14 values with '0' should be deleted .
Below is the Jist of the code.
RANGES: S_GJAHR FOR COSP-GJAHR,
R_YEAR FOR COSP-GJAHR,
R_DATE FOR PROJ-ERDAT,
R_MONTH FOR CKML1-POPER,
S_OBJNR FOR COSP-OBJNR,
S_KSTAR FOR COSP-KSTAR.
DATA: MNT_INDX(20) TYPE C,
HLD_INDX(3) TYPE N.
DATA: W_MTH(2) TYPE N,
W_DATE LIKE PROJ-ERDAT.
DATA: BEGIN OF ITAB_OUT_TYPE,
PERIOD(10) TYPE C,
PROJDEF(20) TYPE C,
PROJ_TITLE(20) TYPE C,
STATUS(20) TYPE C,
PROJECT_TYPE(20) TYPE C,
START_DATE(20) TYPE C,
FINISH_DATE(20) TYPE C,
CONTRACT(20) TYPE C,
CLIENT(20) TYPE C,
PLAN14(25) TYPE C,
END OF ITAB_OUT_TYPE.
DATA ITAB_OUT LIKE ITAB_OUT_TYPE OCCURS 10 WITH HEADER LINE.
FIELD-SYMBOLS <FS>.
PARAMETERS FR_MONTH(2) TYPE N OBLIGATORY.
PARAMETERS FR_YEAR(4) TYPE N OBLIGATORY.
PARAMETERS TO_MONTH(2) TYPE N .
PARAMETERS TO_YEAR(4) TYPE N .
DATA: W_TXT(20) TYPE C.
R_YEAR-LOW = FR_YEAR.
R_YEAR-HIGH = TO_YEAR .
R_YEAR-OPTION = 'BT'.
R_YEAR-SIGN = 'I'.
APPEND R_YEAR.
concatenate FR_YEAR FR_MONTH INTO R_DATE-LOW .
concatenate TO_YEAR TO_MONTH INTO R_DATE-HIGH.
R_DATE-OPTION = 'BT'.
R_DATE-SIGN = 'I'.
APPEND R_DATE.
SELECT * FROM COSP
WHERE OBJNR = PRPS-OBJNR AND
GJAHR IN R_YEAR AND
KSTAR BETWEEN '0000400996' AND '0000400999' AND
VERSN = '014' AND
WRTTP = '01' .
DO 12 TIMES.
W_MTH = SY-INDEX.
CONCATENATE COSP-GJAHR W_MTH INTO W_DATE.
CHECK W_DATE IN R_DATE.
PERFORM CONVERT-DATE1 USING W_DATE.
MOVE HOLDDATE1 TO ITAB_OUT-PERIOD.
HLD_INDX = SY-INDEX.
CONCATENATE 'COSP-WKG' HLD_INDX INTO W_TXT.
ASSIGN (W_TXT) TO <FS>.
CLEAR ITAB_OUT-PLAN14.
ITAB_OUT-PLAN14 = ITAB_OUT-PLAN14 + <FS>.
APPEND ITAB_OUT.
enddo.
ENDSELECT.
I need all positive values of the month that are in the range. The Zero values must be deleted . How can i do that. PLease do let me know.
Thanks in advance
Dan
‎2006 Aug 07 3:25 PM
You can do this easily just by deleting all records in one shot.
delete ITAB_OUT where plan14 = 0.You can put that statement after the SELECT...ENDSELECT.
Or you can not even add them to the internal table at all. You can check before you APPEND to the table.
CLEAR ITAB_OUT-PLAN14.
ITAB_OUT-PLAN14 = ITAB_OUT-PLAN14 + <FS>.
<b>If itab_out-plan14 > 0.
APPEND ITAB_OUT.
endif.</b>
enddo.
ENDSELECT.
Regards,
Rich Heilman
‎2006 Aug 07 3:23 PM
have this statement as the last statement.
delete itab_out where plan14 = 0.
Regards,
ravi
‎2006 Aug 07 3:25 PM
hi,
Make use of delete stament..
i.e, delete itab_out where field = 0.Regards,
santosh
‎2006 Aug 07 3:25 PM
You can do this easily just by deleting all records in one shot.
delete ITAB_OUT where plan14 = 0.You can put that statement after the SELECT...ENDSELECT.
Or you can not even add them to the internal table at all. You can check before you APPEND to the table.
CLEAR ITAB_OUT-PLAN14.
ITAB_OUT-PLAN14 = ITAB_OUT-PLAN14 + <FS>.
<b>If itab_out-plan14 > 0.
APPEND ITAB_OUT.
endif.</b>
enddo.
ENDSELECT.
Regards,
Rich Heilman
‎2006 Aug 07 3:27 PM
Daniel
The easiet way is not to append the data if it is less than or equal to zero.
DO 12 TIMES.
W_MTH = SY-INDEX.
CONCATENATE COSP-GJAHR W_MTH INTO W_DATE.
CHECK W_DATE IN R_DATE.
PERFORM CONVERT-DATE1 USING W_DATE.
MOVE HOLDDATE1 TO ITAB_OUT-PERIOD.
HLD_INDX = SY-INDEX.
CONCATENATE 'COSP-WKG' HLD_INDX INTO W_TXT.
ASSIGN (W_TXT) TO <FS>.
CLEAR ITAB_OUT-PLAN14.
ITAB_OUT-PLAN14 = ITAB_OUT-PLAN14 + <FS>.
<b>check itab_out-plan14 > 0.</b>
APPEND ITAB_OUT.
enddo.
ENDSELECT.
‎2006 Aug 07 3:27 PM
Hi,
This Correction in ur code might help u
DO 12 TIMES.
W_MTH = SY-INDEX.
CONCATENATE COSP-GJAHR W_MTH INTO W_DATE.
CHECK W_DATE IN R_DATE.
PERFORM CONVERT-DATE1 USING W_DATE.
MOVE HOLDDATE1 TO ITAB_OUT-PERIOD.
HLD_INDX = SY-INDEX.
CONCATENATE 'COSP-WKG' HLD_INDX INTO W_TXT.
ASSIGN (W_TXT) TO <FS>.
CLEAR ITAB_OUT-PLAN14.
ITAB_OUT-PLAN14 = ITAB_OUT-PLAN14 + <FS>.
if itab_out-plan14 NE 0. <---
APPEND ITAB_OUT.
endif. <---
enddo.
ENDSELECT.
With Regards,
T.Jeyagopi.