2007 Jul 29 9:48 AM
Hi,
Is it correct statement for below code?
<b>Statement :</b>If the document type(FKART) of the input structure is not empty and does not contains any of the following doocument types B1, B1E, B2, B2E, B3, B3E, B4, BK1, BK3, FXG, G2, G2S, JGL, RE, VLG2, BM1, BM3, FXL, JLL or L2 .
<b>Code</b> :
Ranges : r_fkart for CE0_M200-fkart.
r_fkart-sign = 'I'.
r_fkart-option = 'EQ'.
r_fkart-low = 'B1'.
Append r_fkart.
r_fkart-sign = 'I'.
r_fkart-option = 'EQ'.
r_fkart-low = 'B1E'.
Append r_fkart. -
Etc.....
IF NOT CE0_M200-FKART IN r_fkart.
<b>statement</b>:
if the document type(FKART) of the input structure is not empty and contains any one the following document type B1, B1E, B2, B2E, B3, B3E, B4, BK1, BK3, FXG,G2, G2S, JGL, RE, VLG2, BM1, BM3, FXL, JLL or L2 .
Code<b></b> ElseiF CE0_M200-FKART IN r_fkart.
Is it correct?Please give me suggestions?
Sudhakar
Message was edited by:
suhhakar goud goud
2007 Jul 29 11:45 AM
It seems correct,the only proposition i can think about it's to group B1-B4 in
r_fkart-sign = 'I'.
r_fkart-option = 'BT'.
r_fkart-low = 'B1'.
r_fkart-low = 'B4'.
Append r_fkart.
to save code space
Regards
Yossi
2007 Jul 29 10:00 AM
2007 Jul 29 11:45 AM
It seems correct,the only proposition i can think about it's to group B1-B4 in
r_fkart-sign = 'I'.
r_fkart-option = 'BT'.
r_fkart-low = 'B1'.
r_fkart-low = 'B4'.
Append r_fkart.
to save code space
Regards
Yossi
2007 Jul 29 4:37 PM
Hi,
yes, looks good. But do't miss the "not empty" condition (NOT IN ... includes empty!)
for better overview, you may do
data:
r_fkart type range of CE0_M200-fkart.
perform insert_range using 'IEQ':
'B1' '' CHANGING r_fkart,
'B1E' '' CHANGING r_fkart,
'B2' '' CHANGING r_fkart,
'B2E' '' CHANGING r_fkart,
'B3' '' CHANGING r_fkart,
'B3E' '' CHANGING r_fkart,
'B4' '' CHANGING r_fkart,
'BK1' '' CHANGING r_fkart,
'BK3' '' CHANGING r_fkart,
'FXG' '' CHANGING r_fkart,
'G2' '' CHANGING r_fkart,
'G2S' '' CHANGING r_fkart,
'JGL' '' CHANGING r_fkart,
'RE' '' CHANGING r_fkart,
'VLG2' '' CHANGING r_fkart,
'BM1' '' CHANGING r_fkart,
'BM3' '' CHANGING r_fkart,
'FXL' '' CHANGING r_fkart,
'JLL' '' CHANGING r_fkart,
'L2' '' CHANGING r_fkart.
IF CE0_M200-FKART NOT IN r_fkart AND CE0_M200-FKART is NOT INITIAL.
* ...
ElseiF CE0_M200-FKART IN r_fkart.
* ...
ENDIF
*&---------------------------------------------------------------------*
*& Form insert_range
*&---------------------------------------------------------------------*
* insert selection range - handles any range type "CLI20061218
*----------------------------------------------------------------------*
FORM insert_range USING p_signopt TYPE c "#EC CALLED
p_low TYPE any
p_high TYPE any
CHANGING pt_range TYPE table.
FIELD-SYMBOLS:
<range> TYPE ANY,
<sign> TYPE ANY,
<option> TYPE ANY,
<low> TYPE ANY,
<high> TYPE ANY.
DATA:
lv_ref TYPE REF TO data.
CHECK NOT ( p_signopt IS INITIAL AND
p_low IS INITIAL AND
p_high IS INITIAL ).
CREATE DATA lv_ref LIKE LINE OF pt_range.
ASSIGN lv_ref->* TO <range>.
CHECK sy-subrc = 0.
ASSIGN COMPONENT 'SIGN' OF STRUCTURE <range> TO <sign>.
CHECK sy-subrc = 0.
ASSIGN COMPONENT 'OPTION' OF STRUCTURE <range> TO <option>.
CHECK sy-subrc = 0.
ASSIGN COMPONENT 'LOW' OF STRUCTURE <range> TO <low>.
CHECK sy-subrc = 0.
ASSIGN COMPONENT 'HIGH' OF STRUCTURE <range> TO <high>.
CHECK sy-subrc = 0.
<sign> = p_signopt(1).
<option> = p_signopt+1(2).
<low> = p_low.
<high> = p_high.
READ TABLE pt_range WITH KEY table_line = <range> BINARY SEARCH
TRANSPORTING NO FIELDS.
CHECK sy-subrc <> 0.
INSERT <range> INTO pt_range INDEX sy-tabix.
ENDFORM. " insert_range
Message was edited by:
Clemens Li
2007 Jul 30 4:19 AM
Thanks for replies.I will assign points.
Thanks & Regards,
T.sudhakar