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

Convert workarea content to upper case

Former Member
0 Likes
2,356

Hi experts,

I have a work are which I need to convert all its contents to UPPER CASE.

is there a way i can do that without using TRANSLATE for every field in that work area??/

Thanks,

Abdul.

1 ACCEPTED SOLUTION
Read only

MarcinPciak
Active Contributor
0 Likes
1,355

Like this


data CONTAINER(1000) type c.

"convert to char string
call method CL_ABAP_CONTAINER_UTILITIES =>FILL_CONTAINER_C
  exporting  IM_VALUE               = "your_struct
  importing  EX_CONTAINER           = CONTAINER.

"translate it all
translate container to upper case.

"convert back to structure
call method cl_abap_container_utilities=>read_container_c
  exporting  IM_CONTAINER           = CONTAINER
  importing  EX_VALUE               = "your_struct.

Regards

Marcin

5 REPLIES 5
Read only

Former Member
0 Likes
1,355

Hi Buddy,

I tried for only one field and please do yourself for remaining fields .


TYPES :BEGIN OF ls_tab1,
  field TYPE char200,
  END OF ls_tab1.

DATA it_tab1 TYPE STANDARD TABLE OF ls_tab1 INITIAL SIZE 0.
DATA lt_tab1 LIKE LINE OF it_tab1.


lt_tab1-field = 'This is my first program to convert lower case to upper case  without using transalate syntax.....'.
APPEND lt_tab1 TO it_tab1.

READ TABLE it_tab1 INTO lt_tab1 INDEX 1
.
IF sy-subrc EQ 0.
  WRITE lt_tab1-field COLOR 3.
ENDIF.

DATA :lv_counter TYPE i,
      uccp TYPE i,
      int TYPE i.
LOOP AT it_tab1 INTO lt_tab1 .
  lv_counter  = STRLEN( lt_tab1-field ).
  WHILE int  NE lv_counter.
    IF lt_tab1+int(1)  EQ 'a' OR   lt_tab1+int(1) EQ 'b'  OR  lt_tab1+int(1) EQ  'c' OR lt_tab1+int(1) EQ  'd'
       OR lt_tab1+int(1) EQ 'e'  OR  lt_tab1+int(1) EQ 'f' OR lt_tab1+int(1) EQ 'g' OR lt_tab1+int(1) EQ 'h'
       OR lt_tab1+int(1) EQ 'i'  OR lt_tab1+int(1) EQ 'j' OR lt_tab1+int(1) EQ'k' OR lt_tab1+int(1) EQ'l' OR lt_tab1+int(1) EQ 'm'
       OR lt_tab1+int(1) EQ'n' OR lt_tab1+int(1) EQ 'o'   OR lt_tab1+int(1) EQ 'p'  OR lt_tab1+int(1) EQ 'q'
      OR lt_tab1+int(1) EQ 'r' OR lt_tab1+int(1) EQ 's' OR lt_tab1+int(1) EQ 't' OR lt_tab1+int(1) EQ 'u'
       OR lt_tab1+int(1) EQ 'v' OR lt_tab1+int(1) EQ 'w' OR lt_tab1+int(1) EQ 'x' OR lt_tab1+int(1) EQ 'y'
      OR lt_tab1+int(1) EQ'z'.

      CALL METHOD cl_abap_conv_out_ce=>uccpi
        EXPORTING
          char = lt_tab1+int(1)
        RECEIVING
          uccp = uccp.

      IF uccp BETWEEN 97 AND 122.

        uccp = ( uccp - 32 ) .
*        TRY.
        CALL METHOD cl_abap_conv_in_ce=>uccpi
          EXPORTING
            uccp = uccp
          RECEIVING
            char = lt_tab1-field+int(1).
      ENDIF.
    ENDIF.
    int =  int + 1 .
  ENDWHILE.
  MODIFY it_tab1 FROM lt_tab1 .
ENDLOOP.
write: 'After converting to upper case'.
READ TABLE it_tab1 INTO lt_tab1 INDEX 1
.
IF sy-subrc EQ 0.
  WRITE lt_tab1-field COLOR 3.
ENDIF.

Please let me know further any issues .

Thanks

Surender

Read only

MarcinPciak
Active Contributor
0 Likes
1,356

Like this


data CONTAINER(1000) type c.

"convert to char string
call method CL_ABAP_CONTAINER_UTILITIES =>FILL_CONTAINER_C
  exporting  IM_VALUE               = "your_struct
  importing  EX_CONTAINER           = CONTAINER.

"translate it all
translate container to upper case.

"convert back to structure
call method cl_abap_container_utilities=>read_container_c
  exporting  IM_CONTAINER           = CONTAINER
  importing  EX_VALUE               = "your_struct.

Regards

Marcin

Read only

Former Member
0 Likes
1,355

Hi,

Work area itself is group of characters. So you dont have to take each and every field seperately to convert into upper case. Rather you can just specify like below. This will convert data in all fields of work area to upper case.

translate wa_data to upper case.

Read only

0 Likes
1,355

No ...It will not .

@OP- As Marcin said use that class/method if you are in unicode environment.

Read only

Former Member
0 Likes
1,355

Thanks Marcin, your method worked with no issues and thanks everyoen for the quick respond.