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

Description

Former Member
0 Likes
945

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

7 REPLIES 7
Read only

Former Member
0 Likes
900

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

Read only

Former Member
0 Likes
900

Try function module SWA_STRING_TO_UPPERCASE

ashish

Read only

0 Likes
900

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.

Read only

0 Likes
900

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

Read only

0 Likes
900

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.

Read only

0 Likes
900

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

Read only

ferry_lianto
Active Contributor
0 Likes
900

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