Friday, March 15, 2019

Proper case Conversion in SAP

We have standard FM to convert Texts displayed  to either Upper case or Lower Case.
But to display the Text in Proper case ie., Capital letter after every word is acheived with the following code


PARAMETERS: p_text TYPE char255.
DATA: l_text_final TYPE char255,
      l_text1 TYPE char255,
      l_text2 TYPE char255.
SPLIT p_text AT space INTO TABLE DATA(itab).

LOOP AT itab INTO l_text1.
  TRANSLATE l_text1 TO LOWER CASE.
  TRANSLATE l_text1+0(1) TO UPPER CASE.
 FIND '-' IN l_text1.
  IF sy-subrc  = 0.
  SPLIT l_text1 AT '-' INTO TABLE DATA(itab1).
  clear l_text1.
LOOP AT itab1 INTO l_text2.
  TRANSLATE l_text2 TO LOWER CASE.
  TRANSLATE l_text2+0(1) TO UPPER CASE.
  IF l_text1 IS INITIAL.
    l_text1 = l_text2.
    ELSE.
  CONCATENATE l_text1 l_text2 INTO l_text1 SEPARATED BY '-'.
  ENDIF.
  ENDLOOP.
  ENDIF.
    IF l_text_final IS INITIAL.
    l_text_final = l_text1.
    ELSE.
  CONCATENATE l_text_final l_text1 INTO l_text_final SEPARATED BY space.
    ENDIF.
    ENDLOOP.
WRITE l_text_final.