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

CASE STMT

Former Member
0 Likes
933

Hi,

How do I write the following CASE stmt or may be IF stmt,

CASE VBAK-ERNAM.

WHEN VBAK-ERNAM = 'BATCHUSER'.

NO_ORDER1 = NO_ORDER1 + 1.

WHEN VBAK-ERNAM = 'REDDYV'.

NO_ORDER2 = NO_ORDER2 + 1.

ENDCASE.

Thanks

Veni.

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
898

CASE VBAK-ERNAM.

WHEN 'BATCHUSER'.

NO_ORDER1 = NO_ORDER1 + 1.

WHEN 'REDDYV'.

NO_ORDER2 = NO_ORDER2 + 1.

ENDCASE.

or

if vbak-ernam = 'BATCHUSER'.

NO_ORDER1 = NO_ORDER1 + 1.

ELSEIF VBAK-ERNAM = 'REDDYV'.

NO_ORDER2 = NO_ORDER2 + 1.

ENDIF.

Regards,

Ravi

P>S: Please reward if it helps.

Regards,

Ravi

8 REPLIES 8
Read only

Former Member
0 Likes
899

CASE VBAK-ERNAM.

WHEN 'BATCHUSER'.

NO_ORDER1 = NO_ORDER1 + 1.

WHEN 'REDDYV'.

NO_ORDER2 = NO_ORDER2 + 1.

ENDCASE.

or

if vbak-ernam = 'BATCHUSER'.

NO_ORDER1 = NO_ORDER1 + 1.

ELSEIF VBAK-ERNAM = 'REDDYV'.

NO_ORDER2 = NO_ORDER2 + 1.

ENDIF.

Regards,

Ravi

P>S: Please reward if it helps.

Regards,

Ravi

Read only

0 Likes
898

Hi Ravi,

Thank you, Can I do somthing like this.

IF VBAK-ERNAM = 'BATCHUSER'

OR VBAK-ERNAM = 'REDDYV'.

NO_ORDER1 = NO_ORDER1 + 1.

ELSE.

NO_ORDER2 = NO_ORDER2 + 1.

ENDIF.

Thanks

Veni.

Read only

0 Likes
898

Hi Veni,

Technically there is nothing wrong, but what exactly are you trying to do?

IF VBAK-ERNAM = 'BATCHUSER'

OR VBAK-ERNAM = 'REDDYV'.

NO_ORDER1 = NO_ORDER1 + 1.

ELSE.

NO_ORDER2 = NO_ORDER2 + 1.

ENDIF.

is not equivalent to

IF VBAK-ERNAM = 'BATCHUSER'

NO_ORDER1 = NO_ORDER1 + 1.

ELSEif VBAK-ERNAM = 'REDDYV'.

NO_ORDER2 = NO_ORDER2 + 1.

ENDIF.

REgards,

Ravi

P.S: Please award points if it helps.

Read only

0 Likes
898

Yes

CASE VBAK-ERNAM.
  WHEN 'BATCHUSER' or 'REDDYV'.
    NO_ORDER1 = NO_ORDER1 + 1.
  WHEN others.
    NO_ORDER2 = NO_ORDER2 + 1.
ENDCASE.

Read only

0 Likes
898

Hi Ravi,

I want the order count, if order is created by BATCHUSER or REDDYV, then I want NO_ORDER1 to increment else NO_ORDER2. This looks right to me, but it is not incrementing properly.

IF VBAK-ERNAM = 'BATCHUSER'

OR VBAK-ERNAM = 'REDDYV'.

NO_ORDER1 = NO_ORDER1 + 1.

ELSE.

NO_ORDER2 = NO_ORDER2 + 1.

ENDIF.

Is this correct Ravi.

Thanks

Veni.

Read only

0 Likes
898

Nothing wrong with the IF statement.. Put a break point & check the value of VBAK-ERNAM in debug mode..

Regards,

Suresh Datti

Read only

Former Member
0 Likes
898

check this..

CASE VBAK-ERNAM.
WHEN 'BATCHUSER'.
NO_ORDER1 = NO_ORDER1 + 1.
WHEN 'REDDYV'.
NO_ORDER2 = NO_ORDER2 + 1.
ENDCASE.

Regards

vijay

Read only

Former Member
0 Likes
898

The case statement should be written as :

CASE VBAK-ERNAM.

WHEN 'BATCHUSER'.

NO_ORDER1 = NO_ORDER1 + 1.

WHEN 'REDDYV'.

NO_ORDER2 = NO_ORDER2 + 1.

ENDCASE.

Yes you can use if statement also as you have done.

IF VBAK-ERNAM = 'BATCHUSER'OR VBAK-ERNAM = 'REDDYV'.

NO_ORDER1 = NO_ORDER1 + 1.

ELSE.

NO_ORDER2 = NO_ORDER2 + 1.

ENDIF.

the above stmt must achieve the desired result.

<b>However , you can use case stmt as below :

CASE VBAK-ERNAM.

WHEN 'BATCHUSER' or 'REDDYV'.

NO_ORDER1 = NO_ORDER1 + 1.

WHEN others .

NO_ORDER2 = NO_ORDER2 + 1.

ENDCASE.</b>

Regards,

Kunal

Message was edited by: Kunal Kumar