‎2007 Oct 16 10:43 PM
Hi,
I have a description in the spreadsheet, where all the letters are in lower case first and then put each word beginning as capital letters....
For example:
Description = one two three four five;
one two three
a - bc two three
and now I want the output like : One Two Three Four Five;
One Two Three
A - Bc Two Three
‎2007 Oct 16 10:55 PM
Best way is the use SPLIT into an internal table and the use TRANSLATE to UPPERCASE commands. FInally concatenate it back into the data type.
- Cheers
‎2007 Oct 16 10:56 PM
‎2007 Oct 16 11:29 PM
I did try FM, but i am not getting any output, below is my code:
DATA: TEXTTEST(255) TYPE C,
INPEXPR(255) TYPE C,
OUTEXPR(255) TYPE C.
TEXTTEST = 'one two three'.
INPEXPR = TEXTTEST.
CALL FUNCTION 'SWA_STRING_TO_UPPERCASE'
EXPORTING
INPUT_EXPRESSION = INPEXPR
PRESERVE_EXISTING_CAPITALS = ' '
IMPORTING
OUTPUT_EXPRESSION = OUTEXPR
EXCEPTIONS
EXPRESSION_TRUNCATED = 1
OTHERS = 2
.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
WRITE: / OUTEXPR.
‎2007 Oct 17 12:44 AM
Here is my code and it is working.
REPORT ztestdwa .
data: l_String type SWAEXPDEF-EXPR,
l_result type string.
l_String = 'one two three'.
CALL FUNCTION 'SWA_STRING_TO_UPPERCASE'
EXPORTING
INPUT_EXPRESSION = l_string
PRESERVE_EXISTING_CAPITALS = ' '
CAPITALIZE_AFTER_SPACE = 'X'
LANGUAGE = SY-LANGU
IMPORTING
OUTPUT_STRING = l_result
EXCEPTIONS
EXPRESSION_TRUNCATED = 1
OTHERS = 2.
write:/ l_string, l_result.
Result is
test
one two three
One Two Three
Hope it is fine.
ashish
‎2007 Oct 23 11:39 PM
Hi Ashish
See below my coding I want to display the field name from cdhdr or cdpos table
so that whatever changes made to the document, It must display with the description, I am not getting idea from where it has to be taken.
REPORT ZXYZ
NO STANDARD PAGE HEADING LINE-SIZE 120.
WRITE: sy-title, 40 'Page', sy-pagno.
ULINE.
TABLES: CDHDR,
CDPOS,
t001w,
"VKBUR,
"VBELN,
VBAK.
SELECTION-SCREEN BEGIN OF BLOCK DOCUMENT WITH FRAME TITLE TEXT-701.
SELECTION-SCREEN END OF BLOCK DOCUMENT.
SELECT-OPTIONS: S_WERKS for T001W-werks,
objectid for cdhdr-objectid,
udate for cdhdr-udate.
PARAMETER: USERNAME LIKE CDHDR-USERNAME.
DATA: BEGIN OF IT_CDHDR OCCURS 0,
OBJECTCLAS LIKE CDHDR-OBJECTCLAS,
OBJECTID LIKE CDHDR-OBJECTID,
CHANGENR LIKE CDHDR-CHANGENR,
USERNAME LIKE CDHDR-USERNAME,
UDATE LIKE CDHDR-UDATE,
UTIME LIKE CDHDR-UTIME,
FNAME LIKE CDPOS-FNAME,
VALUE_NEW LIKE CDPOS-VALUE_NEW,
VALUE_OLD LIKE CDPOS-VALUE_OLD,
END OF IT_CDHDR.
DATA: WA LIKE LINE OF IT_CDHDR.
DATA: WA LIKE LINE OF IT_CDPOS.
DATA: BEGIN OF IT_CDPOS OCCURS 0,
OBJECTCLAS LIKE CDHDR-OBJECTCLAS,
OBJECTID LIKE CDHDR-OBJECTID,
CHANGENR LIKE CDHDR-CHANGENR,
TABNAME LIKE CDPOS-TABNAME,
TABKEY LIKE CDPOS-TABKEY,
FNAME LIKE CDPOS-FNAME,
VALUE_NEW LIKE CDPOS-VALUE_NEW,
VALUE_OLD LIKE CDPOS-VALUE_OLD,
END OF IT_CDPOS.
"Move-corresponding it_cdhdr to wa.
SELECT OBJECTCLAS
OBJECTID
CHANGENR
USERNAME
UDATE
UTIME FROM CDHDR
INTO CORRESPONDING FIELDS OF TABLE IT_CDHDR
WHERE OBJECTCLAS = 'VERKBELEG' or
objectclas = 'BETRIEB' ORDER BY UDATE.
WHERE OBJECTCLAS = 'VERKBELEG'
OR OBJECTCLAS = 'BETRIEB' ORDER BY UDATE.
IF IT_CDHDR[] IS NOT INITIAL.
SELECT OBJECTCLAS
OBJECTID
CHANGENR
VALUE_NEW
VALUE_OLD
FNAME
TABNAME
TABKEY
FROM CDPOS
INTO CORRESPONDING FIELDS OF TABLE IT_CDPOS
FOR ALL ENTRIES IN IT_CDHDR
WHERE
OBJECTCLAS = IT_CDHDR-OBJECTCLAS
AND OBJECTID = IT_CDHDR-OBJECTID
AND CHANGENR = IT_CDHDR-CHANGENR.
AND OBJECTID = 0040000600.
SORT IT_CDPOS BY OBJECTCLAS OBJECTID CHANGENR.
ENDIF.
Add tables CDPOS DATA TO CDHDR.
DATA: INDEX TYPE i.
LOOP AT IT_CDHDR.
INDEX = SY-TABIX.
READ TABLE IT_CDPOS WITH KEY OBJECTCLAS = IT_CDHDR-OBJECTCLAS
OBJECTID = IT_CDHDR-OBJECTID
CHANGENR = IT_CDHDR-CHANGENR BINARY SEARCH.
IF SY-SUBRC = 0.
IT_CDHDR-VALUE_NEW = IT_CDPOS-VALUE_NEW.
IT_CDHDR-VALUE_OLD = IT_CDPOS-VALUE_OLD.
MODIFY IT_CDHDR INDEX index TRANSPORTING value_new value_old.
ENDIF.
WRITE: /5 'DOCUMENT-NO'.
20 'TABNAME', 30 'TEXT_CASE', 50 'FNAME'.
WRITE: /5 'DATE', 20 'FNAME', 45 'CHANGE-NO',65 'OLD-VALUE',75 'NEW-VALUE',90 'USER-NAME'.
ULINE.
LOOP AT IT_CDHDR INTO WA.
write: / wa-udate dd/mm/yyyy under'DATE' NO-GAP,wa-fname under'fname' NO-GAP,wa-changenr under 'CHANGE-NO',
wa-value_old under'OLD-VALUE' NO-GAP,
wa-value_new under'NEW-VALUE' NO-GAP ,wa-username under'USER-NAME' NO-GAP.
Move-corresponding it_cdhdr to wa.
*Write: / wa-objectid UNDER'DOCUMENT-NO' "color col_key.
*" CDPOS-tabname UNDER'TABNAME', CDPOS-TEXT_CASE UNDER'TEXT_CASE',CDPOS-fname UNDER'FNAME'. "color col_key ,
*write: / wa-udate dd/mm/yyyy under'DATE' NO-GAP,wa-utime under'TIME' NO-GAP,wa-changenr under 'CHANGE-NO',
wa-value_old under'OLD-VALUE' NO-GAP,
*wa-value_new under'NEW-VALUE' NO-GAP ,wa-username under'USER-NAME' NO-GAP.
ENDLOOP.
ENDLOOP.
regards
ENDLOOP.
‎2007 Oct 23 11:40 PM
Hi Ashish
See below my coding I want to display the field name from cdhdr or cdpos table
so that whatever changes made to the document, It must display with the description, I am not getting idea from where it has to be taken.
REPORT ZXYZ
NO STANDARD PAGE HEADING LINE-SIZE 120.
WRITE: sy-title, 40 'Page', sy-pagno.
ULINE.
TABLES: CDHDR,
CDPOS,
t001w,
"VKBUR,
"VBELN,
VBAK.
SELECTION-SCREEN BEGIN OF BLOCK DOCUMENT WITH FRAME TITLE TEXT-701.
SELECTION-SCREEN END OF BLOCK DOCUMENT.
SELECT-OPTIONS: S_WERKS for T001W-werks,
objectid for cdhdr-objectid,
udate for cdhdr-udate.
PARAMETER: USERNAME LIKE CDHDR-USERNAME.
DATA: BEGIN OF IT_CDHDR OCCURS 0,
OBJECTCLAS LIKE CDHDR-OBJECTCLAS,
OBJECTID LIKE CDHDR-OBJECTID,
CHANGENR LIKE CDHDR-CHANGENR,
USERNAME LIKE CDHDR-USERNAME,
UDATE LIKE CDHDR-UDATE,
UTIME LIKE CDHDR-UTIME,
FNAME LIKE CDPOS-FNAME,
VALUE_NEW LIKE CDPOS-VALUE_NEW,
VALUE_OLD LIKE CDPOS-VALUE_OLD,
END OF IT_CDHDR.
DATA: WA LIKE LINE OF IT_CDHDR.
DATA: WA LIKE LINE OF IT_CDPOS.
DATA: BEGIN OF IT_CDPOS OCCURS 0,
OBJECTCLAS LIKE CDHDR-OBJECTCLAS,
OBJECTID LIKE CDHDR-OBJECTID,
CHANGENR LIKE CDHDR-CHANGENR,
TABNAME LIKE CDPOS-TABNAME,
TABKEY LIKE CDPOS-TABKEY,
FNAME LIKE CDPOS-FNAME,
VALUE_NEW LIKE CDPOS-VALUE_NEW,
VALUE_OLD LIKE CDPOS-VALUE_OLD,
END OF IT_CDPOS.
"Move-corresponding it_cdhdr to wa.
SELECT OBJECTCLAS
OBJECTID
CHANGENR
USERNAME
UDATE
UTIME FROM CDHDR
INTO CORRESPONDING FIELDS OF TABLE IT_CDHDR
WHERE OBJECTCLAS = 'VERKBELEG' or
objectclas = 'BETRIEB' ORDER BY UDATE.
WHERE OBJECTCLAS = 'VERKBELEG'
OR OBJECTCLAS = 'BETRIEB' ORDER BY UDATE.
IF IT_CDHDR[] IS NOT INITIAL.
SELECT OBJECTCLAS
OBJECTID
CHANGENR
VALUE_NEW
VALUE_OLD
FNAME
TABNAME
TABKEY
FROM CDPOS
INTO CORRESPONDING FIELDS OF TABLE IT_CDPOS
FOR ALL ENTRIES IN IT_CDHDR
WHERE
OBJECTCLAS = IT_CDHDR-OBJECTCLAS
AND OBJECTID = IT_CDHDR-OBJECTID
AND CHANGENR = IT_CDHDR-CHANGENR.
AND OBJECTID = 0040000600.
SORT IT_CDPOS BY OBJECTCLAS OBJECTID CHANGENR.
ENDIF.
Add tables CDPOS DATA TO CDHDR.
DATA: INDEX TYPE i.
LOOP AT IT_CDHDR.
INDEX = SY-TABIX.
READ TABLE IT_CDPOS WITH KEY OBJECTCLAS = IT_CDHDR-OBJECTCLAS
OBJECTID = IT_CDHDR-OBJECTID
CHANGENR = IT_CDHDR-CHANGENR BINARY SEARCH.
IF SY-SUBRC = 0.
IT_CDHDR-VALUE_NEW = IT_CDPOS-VALUE_NEW.
IT_CDHDR-VALUE_OLD = IT_CDPOS-VALUE_OLD.
MODIFY IT_CDHDR INDEX index TRANSPORTING value_new value_old.
ENDIF.
WRITE: /5 'DOCUMENT-NO'.
20 'TABNAME', 30 'TEXT_CASE', 50 'FNAME'.
WRITE: /5 'DATE', 20 'FNAME', 45 'CHANGE-NO',65 'OLD-VALUE',75 'NEW-VALUE',90 'USER-NAME'.
ULINE.
LOOP AT IT_CDHDR INTO WA.
write: / wa-udate dd/mm/yyyy under'DATE' NO-GAP,wa-fname under'fname' NO-GAP,wa-changenr under 'CHANGE-NO',
wa-value_old under'OLD-VALUE' NO-GAP,
wa-value_new under'NEW-VALUE' NO-GAP ,wa-username under'USER-NAME' NO-GAP.
Move-corresponding it_cdhdr to wa.
*Write: / wa-objectid UNDER'DOCUMENT-NO' "color col_key.
*" CDPOS-tabname UNDER'TABNAME', CDPOS-TEXT_CASE UNDER'TEXT_CASE',CDPOS-fname UNDER'FNAME'. "color col_key ,
*write: / wa-udate dd/mm/yyyy under'DATE' NO-GAP,wa-utime under'TIME' NO-GAP,wa-changenr under 'CHANGE-NO',
wa-value_old under'OLD-VALUE' NO-GAP,
*wa-value_new under'NEW-VALUE' NO-GAP ,wa-username under'USER-NAME' NO-GAP.
ENDLOOP.
ENDLOOP.
regards
‎2007 Oct 17 4:08 AM
Hi,
Please check Rich's sample code.
report zrich_0005.
data: str type string.
data: istr type table of string with header line.
data: xstr(50) type c.
data: output_string type string.
str = 'THIS IS THE TITLE OF THE REPORT'.
split str at ' ' into table istr.
loop at istr into xstr.
translate xstr to lower case.
translate xstr+0(1) to upper case.
istr = xstr.
modify istr.
endloop.
clear output_string.
loop at istr.
concatenate output_string istr into output_string separated by space.
endloop.
shift output_string left deleting leading space.
write:/ str.
write:/ output_string.
Regards,
Ferry Lianto