‎2009 May 06 8:16 AM
DATA : BEGIN OF lt_icon OCCURS 0,
icon TYPE icon-id,
END OF lt_icon.
DATA:l_default_text_message(95) TYPE C.
DATA:begin of lt_text_data occurs 0,
l_tdspras like stxh-tdspras.
end of gt_text_data.
DATA: g_lang TYPE string.
REFRESH:lt_text_data.
CLEAR:l_lang.
lt_icon-icon = '@8R@'.
SELECT tdspras FROM stxh
INTO TABLE lt_text_data
WHERE tdname = 'CONSTRUCT'.
IF sy-subrc = 0.
LOOP AT lt_text_data.
CONCATENATE l_lang lt_text_data-l_tdspras ',' INTO l_lang.
IF sy-tabix > 3.
CONCATENATE text-046 l_lang text-047 INTO l_lang.
EXIT.
ENDIF.
ENDLOOP.
MOVE text-046 l_lang TO l_default_text_message.
ELSE.
MOVE lt_icon-icon text-047 l_lang TO l_default_text_message.
ENDIF.
Req:I want to surpress the coma for last language from from l_lang after loop.
say l_lang having languages D,E,F,(Here i have to truncate or say surpress ',' for last languagef from l_lang)
‎2009 May 06 8:29 AM
hi sailu,
Use the below code after the LOOP.
shift l_lang right deleting trailing space.
shift l_lang right deleting trailing ',' .
shift l_lang left deleting leading space.
Thanks,
Vamshi
‎2009 May 06 8:26 AM
‎2009 May 06 8:27 AM
hi,
.........
SELECT tdspras FROM stxh
INTO TABLE lt_text_data
WHERE tdname = 'CONSTRUCT'.
DATA xt LIKE sy-dbcnt.
xt = sy-dbcnt.
IF sy-subrc = 0.
LOOP AT lt_text_data.
IF sy-tabix = xt.
CONCATENATE l_lang lt_text_data-l_tdspras INTO l_lang.
ELSE.
CONCATENATE l_lang lt_text_data-l_tdspras ',' INTO l_lang.
ENDIF.
......
regards,darek
‎2009 May 06 8:29 AM
Hi
Try like this:
LOOP AT lt_text_data.
IF sy-tabix LE 3.
CONCATENATE l_lang lt_text_data-l_tdspras ',' INTO l_lang.
endif.
IF sy-tabix > 3.
CONCATENATE l_lang lt_text_data-l_tdspras INTO l_lang.
CONCATENATE text-046 l_lang text-047 INTO l_lang.
EXIT.
ENDIF.
ENDLOOP.
Kiran..
‎2009 May 06 8:29 AM
hi sailu,
Use the below code after the LOOP.
shift l_lang right deleting trailing space.
shift l_lang right deleting trailing ',' .
shift l_lang left deleting leading space.
Thanks,
Vamshi
‎2009 May 06 8:29 AM
you can truncate the last char like this:
data: l_lang type string.
data: len type i.
l_lang = 'a,b,c,d,'.
len = strlen( l_lang ).
len = len - 1.
l_lang = l_lang+0(len).
write:/ l_lang.
‎2009 May 06 9:49 AM
Hi Sailu,
You can check the no of records of the internal table and you can concatenate with out coma (,)
during last record processing inside the loop comaparing SY-TABIX and no of lines
of the table.
I have made some change to your code , now the last , is not coming.
Check the bellow code - -
DATA : BEGIN OF lt_icon OCCURS 0,
icon TYPE icon-id,
END OF lt_icon.
DATA:l_default_text_message(95) TYPE c.
DATA:BEGIN OF lt_text_data OCCURS 0,
l_tdspras LIKE stxh-tdspras,
END OF lt_text_data.
DATA: l_lang TYPE string,
w_line TYPE i. " Contains entries in the table
REFRESH:lt_text_data.
CLEAR: l_lang.
lt_icon-icon = '@8R@'.
SELECT tdspras FROM stxh
INTO TABLE lt_text_data
WHERE tdname = 'CONSTRUCT'.
IF sy-subrc = 0.
DESCRIBE TABLE lt_text_data LINES w_line. "Getting No of lines of the table
LOOP AT lt_text_data.
IF w_line EQ sy-tabix. " Checking whether last or not
CONCATENATE l_lang lt_text_data-l_tdspras INTO l_lang. " If last concatenate without ,(coma)
EXIT. " Exit
ENDIF.
CONCATENATE l_lang lt_text_data-l_tdspras ',' INTO l_lang.
IF sy-tabix > 3.
CONCATENATE text-046 l_lang text-047 INTO l_lang.
EXIT.
ENDIF.
ENDLOOP.
CONCATENATE text-046 l_lang INTO l_default_text_message.
ELSE.
CONCATENATE lt_icon-icon text-047 l_lang INTO l_default_text_message.
ENDIF.
WRITE : l_lang.Regards
Pinaki