02-15-2006 3:50 AM
Hi experts,
I have itab like this.
QMNUM |INDTX
000200000014|X
000200000014|X
000200000014|X
000200000014|X
000200000034|X
000200000034|
000200000034|
000200000035|X
000200000035|X
000200000036|X
000200000036|X
In the above table if all the INDTX values are 'X' i want to fill the t_disp table with FLAG = 'X'.If <b>any one</b> of INDTX is empty i want to fill the FLAG = '-'.
So t_disp table should display like this.
QMNUM FLAG
000200000014|X
000200000034|-
000200000035|X
000200000036|X
How can i do this?
reward guaranteed
thanks
kaki
02-15-2006 4:06 AM
Hi ,
My previous code works if t_disp is initialized. Else use this.
LOOP AT itab.
t_disp-qmnum = itab-qmnum.
APPEND t_disp.
DELETE ADJACENT DUPLICATES FROM t_disp.
ENDLOOP.
DATA cnt TYPE i.
SORT itab BY qmnum.
LOOP AT t_disp.
cnt = 0.
LOOP AT itab WHERE qmnum = t_disp-qmnum.
IF itab-indtx NE 'X'.
cnt = 1.
ENDIF.
ENDLOOP.
IF cnt = 0.
t_disp-flag = 'X'.
ELSE.
t_disp-flag = '-'.
ENDIF.
MODIFY t_disp TRANSPORTING flag.
ENDLOOP.
02-15-2006 3:54 AM
Hi Kaki,
Try this :
Data : L_tabix type sy-tabix.
Loop at itab.
L_tabix = Sy-tabix.
IF itab-INDTX = ' '.
move '-' to itab-INDTX.
Modify Itab idex l_tabix.
Endif.
Endloop.
Lanka
02-15-2006 3:57 AM
Kaki,
Lanka's solution will work, but before you utilise it, make sure you sort your table accordingly:
ie.
sort itab by qmnum ascending indtx descending.
Cheers,
Pat.
02-15-2006 3:55 AM
DATA cnt TYPE i.
LOOP AT t_disp.
cnt = 0.
LOOP itab WHERE qmnum = t_disp-qmnum.
IF itab-indtx NE 'X'.
cnt = 1.
ENDIF.
ENDLOOP.
IF cnt = 0.
t_disp-flag = 'X'.
ELSE.
t_disp-flag = '-'.
ENDIF.
MODIFY t_disp TRANSPORTING flag.
ENDLOOP.
02-15-2006 4:03 AM
Hi,
Try the following.
sort itab by qmnum indtx.
loop at itab into wa.
wa_disp-qmnum = wa1-qmnum.
read table itab into wa1 with key qmnum = wa-qunum
indtx = ' '.
if sy-subrc eq 0.
wa_disp-flag = '-'.
else.
wa_disp-flag = 'X'.
endif.
append wa_disp to t_disp.
delete itab where qmnum = wa-qmnum.
endloop.
02-15-2006 4:06 AM
Hi ,
My previous code works if t_disp is initialized. Else use this.
LOOP AT itab.
t_disp-qmnum = itab-qmnum.
APPEND t_disp.
DELETE ADJACENT DUPLICATES FROM t_disp.
ENDLOOP.
DATA cnt TYPE i.
SORT itab BY qmnum.
LOOP AT t_disp.
cnt = 0.
LOOP AT itab WHERE qmnum = t_disp-qmnum.
IF itab-indtx NE 'X'.
cnt = 1.
ENDIF.
ENDLOOP.
IF cnt = 0.
t_disp-flag = 'X'.
ELSE.
t_disp-flag = '-'.
ENDIF.
MODIFY t_disp TRANSPORTING flag.
ENDLOOP.
02-15-2006 4:27 AM
Thank you Wenceslaus G .
full points alloted
kaki
02-15-2006 4:13 AM
LOOP AT t_disp.
read itab with key qmnum = t_disp-qmnum and indtx = ''.
IF sy-subrc = 0.
t_disp-flag = '-'.
ELSE.
t_disp-flag = 'X'.
ENDIF.
MODIFY t_disp TRANSPORTING flag.
ENDLOOP.