Application Development and Automation 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: 
Read only

Date Range - Delete ZERO Values

Former Member
0 Likes
1,197

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

1 ACCEPTED SOLUTION
Read only

RichHeilman
Developer Advocate
Developer Advocate
0 Likes
872

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

5 REPLIES 5
Read only

Former Member
0 Likes
872

have this statement as the last statement.

delete itab_out where plan14 = 0.

Regards,

ravi

Read only

0 Likes
872

hi,

Make use of delete stament..

i.e, delete itab_out where field = 0.

Regards,

santosh

Read only

RichHeilman
Developer Advocate
Developer Advocate
0 Likes
873

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

Read only

Former Member
0 Likes
872

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.

Read only

Former Member
0 Likes
872

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.