This in post will show you how we can use embedded expression in ABAP 7.4.
1. ALPHA
2. CASE
3. DATE
4. SIGN
1. ALPHA - ALPHA is used to add or remove leading zero into variable:
REPORT zembedded_exp NO STANDARD PAGE HEADING.
DATA: lv_vbeln_in TYPE vbeln,
lv_vbeln_out TYPE vbeln.
SELECT SINGLE vbeln FROM vbak INTO @DATA(lv_vbeln).
"&... Remove leading zero
"&... Before ABAP 7.4
*CALL FUNCTION 'CONVERSION_EXIT_AINLT_OUTPUT'
* EXPORTING
* input = lv_vbeln
* IMPORTING
* output = lv_vbeln_out.
"&... After ABAP 7.4
lv_vbeln_out = |{ lv_vbeln ALPHA = OUT }|.
ULINE.
WRITE:/ 'Original Value:', lv_vbeln USING NO EDIT MASK.
WRITE:/ 'ALPHA OUT value(Remove leading Zero):', lv_vbeln_out USING NO EDIT MASK.
ULINE.
"&... Add leading zero
"&... Befor ABAP 7.4
*CALL FUNCTION 'CONVERSION_EXIT_AINLT_INPUT'
* EXPORTING
* input = lv_vbeln
* IMPORTING
* output = lv_vbeln_in.
"&... After ABAP 7.4
lv_vbeln_in = |{ lv_vbeln_out ALPHA = IN }|.
WRITE:/ 'Original Value:', lv_vbeln_out USING NO EDIT MASK.
WRITE:/ 'ALPHA IN value(Add Leading Zero):', lv_vbeln_in USING NO EDIT MASK.
DATA: lv_vbeln_in TYPE vbeln,
lv_vbeln_out TYPE vbeln.
SELECT SINGLE vbeln FROM vbak INTO @DATA(lv_vbeln).
"&... Remove leading zero
"&... Before ABAP 7.4
*CALL FUNCTION 'CONVERSION_EXIT_AINLT_OUTPUT'
* EXPORTING
* input = lv_vbeln
* IMPORTING
* output = lv_vbeln_out.
"&... After ABAP 7.4
lv_vbeln_out = |{ lv_vbeln ALPHA = OUT }|.
ULINE.
WRITE:/ 'Original Value:', lv_vbeln USING NO EDIT MASK.
WRITE:/ 'ALPHA OUT value(Remove leading Zero):', lv_vbeln_out USING NO EDIT MASK.
ULINE.
"&... Add leading zero
"&... Befor ABAP 7.4
*CALL FUNCTION 'CONVERSION_EXIT_AINLT_INPUT'
* EXPORTING
* input = lv_vbeln
* IMPORTING
* output = lv_vbeln_in.
"&... After ABAP 7.4
lv_vbeln_in = |{ lv_vbeln_out ALPHA = IN }|.
WRITE:/ 'Original Value:', lv_vbeln_out USING NO EDIT MASK.
WRITE:/ 'ALPHA IN value(Add Leading Zero):', lv_vbeln_in USING NO EDIT MASK.
Output:
2. CASE - If you want to convert Upper case/ Lower case then we use case expression:
REPORT zembedded_exp NO STANDARD PAGE HEADING.
PARAMETERS: p_val TYPE text256.
"&... Convert to upper case
DATA(lv_upper) = |{ p_val CASE = UPPER }|.
"&... Convert to Lower case
DATA(lv_lower) = |{ p_val CASE = LOWER }|.
"&... Display Original value(Unchange).
DATA(lv_raw) = |{ p_val CASE = RAW }|.
ULINE.
WRITE: 'Original Value: ', p_val.
ULINE.
WRITE:/ 'Convert to Upper case: ', lv_upper.
ULINE.
WRITE:/ 'Convert to lower case: ', lv_lower.
ULINE.
WRITE:/ 'RAW value(unchange value): ', lv_raw.
PARAMETERS: p_val TYPE text256.
"&... Convert to upper case
DATA(lv_upper) = |{ p_val CASE = UPPER }|.
"&... Convert to Lower case
DATA(lv_lower) = |{ p_val CASE = LOWER }|.
"&... Display Original value(Unchange).
DATA(lv_raw) = |{ p_val CASE = RAW }|.
ULINE.
WRITE: 'Original Value: ', p_val.
ULINE.
WRITE:/ 'Convert to Upper case: ', lv_upper.
ULINE.
WRITE:/ 'Convert to lower case: ', lv_lower.
ULINE.
WRITE:/ 'RAW value(unchange value): ', lv_raw.
Output:
Input value:
Result:
3. DATE - Convert date to external format or country specific format:
REPORT zembedded_exp NO STANDARD PAGE HEADING.
TYPES: BEGIN OF ty_date,
desc TYPE string,
country TYPE land1,
format TYPE char3,
date1 TYPE char10,
END OF ty_date.
DATA: lt_data TYPE TABLE OF ty_date.
lt_data[] = VALUE #( ( desc = 'User settings DATE format' country = ' ' format = 'USR' )
( desc = 'RAW Date format' country = ' ' format = 'RAW' )
( desc = 'ISO Date format' country = ' ' format = 'ISO' )
( desc = 'India date format' country = 'IN' format = ' ' )
( desc = 'US date format' country = 'US' format = ' ' )
( desc = 'Canada date format' country = 'CA' format = ' ' )
( desc = 'Andorra date format' country = 'AD' format = ' ' )
( desc = 'South Korea date format' country = 'KR' format = ' ' )
( desc = 'Philippines date format' country = 'PH' format = ' ' )
( desc = 'South Africa date format' country = 'ZA' format = ' ' )
( desc = 'Qatar date format' country = 'QA' format = ' ' )
( desc = 'Japan date format' country = 'JP' format = ' ' ) ).
LOOP AT lt_data ASSIGNING FIELD-SYMBOL(<lfs_data>).
IF <lfs_data>-country IS NOT INITIAL.
SET COUNTRY <lfs_data>-country.
<lfs_data>-date1 = |{ sy-datum DATE = ENVIRONMENT }|.
ELSE.
IF <lfs_data>-format = 'USR'.
<lfs_data>-date1 = |{ sy-datum DATE = USER }|.
ELSEIF <lfs_data>-format = 'RAW'.
<lfs_data>-date1 = |{ sy-datum DATE = RAW }|.
ELSEIF <lfs_data>-format = 'ISO'.
<lfs_data>-date1 = |{ sy-datum DATE = ISO }|.
ENDIF.
ENDIF.
ENDLOOP.
"&... Display data
cl_salv_table=>factory(
IMPORTING
r_salv_table = DATA(lref_salv)
CHANGING
t_table = lt_data ).
lref_salv->display( ).
TYPES: BEGIN OF ty_date,
desc TYPE string,
country TYPE land1,
format TYPE char3,
date1 TYPE char10,
END OF ty_date.
DATA: lt_data TYPE TABLE OF ty_date.
lt_data[] = VALUE #( ( desc = 'User settings DATE format' country = ' ' format = 'USR' )
( desc = 'RAW Date format' country = ' ' format = 'RAW' )
( desc = 'ISO Date format' country = ' ' format = 'ISO' )
( desc = 'India date format' country = 'IN' format = ' ' )
( desc = 'US date format' country = 'US' format = ' ' )
( desc = 'Canada date format' country = 'CA' format = ' ' )
( desc = 'Andorra date format' country = 'AD' format = ' ' )
( desc = 'South Korea date format' country = 'KR' format = ' ' )
( desc = 'Philippines date format' country = 'PH' format = ' ' )
( desc = 'South Africa date format' country = 'ZA' format = ' ' )
( desc = 'Qatar date format' country = 'QA' format = ' ' )
( desc = 'Japan date format' country = 'JP' format = ' ' ) ).
LOOP AT lt_data ASSIGNING FIELD-SYMBOL(<lfs_data>).
IF <lfs_data>-country IS NOT INITIAL.
SET COUNTRY <lfs_data>-country.
<lfs_data>-date1 = |{ sy-datum DATE = ENVIRONMENT }|.
ELSE.
IF <lfs_data>-format = 'USR'.
<lfs_data>-date1 = |{ sy-datum DATE = USER }|.
ELSEIF <lfs_data>-format = 'RAW'.
<lfs_data>-date1 = |{ sy-datum DATE = RAW }|.
ELSEIF <lfs_data>-format = 'ISO'.
<lfs_data>-date1 = |{ sy-datum DATE = ISO }|.
ENDIF.
ENDIF.
ENDLOOP.
"&... Display data
cl_salv_table=>factory(
IMPORTING
r_salv_table = DATA(lref_salv)
CHANGING
t_table = lt_data ).
lref_salv->display( ).
Output:
4. SIGN - Sign Expression is used to display "-" or "+" sign to left or Right side.
REPORT zembedded_exp NO STANDARD PAGE HEADING.
DATA: lv_left TYPE char15,
lv_leftp TYPE char15,
lv_lefts TYPE char15,
lv_right TYPE char15,
lv_rightp TYPE char15,
lv_rights TYPE char15,
lv_amt TYPE netwr.
PARAMETERS: p_amt TYPE netwr.
"&... Add Minus sign
lv_amt = p_amt * -1.
"Add left sign without space, no "+"
lv_left = |{ lv_amt SIGN = LEFT }|.
"If "-" sign not added then defualt add "+" to left side without space
lv_leftp = |{ p_amt SIGN = LEFTPLUS }|.
"Blank space added for left side.
lv_lefts = |{ p_amt SIGN = LEFTSPACE }|.
"Add Right sign without space, no "+"
lv_right = |{ lv_amt SIGN = RIGHT }|.
"If "-" sign not added then defualt add "+" to Right side without space
lv_rightp = |{ p_amt SIGN = RIGHTPLUS }|.
"Blank space added for Right side.
lv_rights = |{ p_amt SIGN = RIGHTSPACE }|.
WRITE:/ 'Left sign: ', lv_left USING NO EDIT MASK.
ULINE.
WRITE:/ 'Left Plus sign: ' ,lv_leftp USING NO EDIT MASK.
ULINE.
WRITE:/ 'Left space: ' ,lv_lefts USING NO EDIT MASK.
ULINE.
WRITE:/ 'Right Sign: ' ,lv_right USING NO EDIT MASK.
ULINE.
WRITE:/ 'Right Plus sign: ', lv_rightp USING NO EDIT MASK.
ULINE.
WRITE:/ 'Right Space: ' ,lv_rights USING NO EDIT MASK.
ULINE.
DATA: lv_left TYPE char15,
lv_leftp TYPE char15,
lv_lefts TYPE char15,
lv_right TYPE char15,
lv_rightp TYPE char15,
lv_rights TYPE char15,
lv_amt TYPE netwr.
PARAMETERS: p_amt TYPE netwr.
"&... Add Minus sign
lv_amt = p_amt * -1.
"Add left sign without space, no "+"
lv_left = |{ lv_amt SIGN = LEFT }|.
"If "-" sign not added then defualt add "+" to left side without space
lv_leftp = |{ p_amt SIGN = LEFTPLUS }|.
"Blank space added for left side.
lv_lefts = |{ p_amt SIGN = LEFTSPACE }|.
"Add Right sign without space, no "+"
lv_right = |{ lv_amt SIGN = RIGHT }|.
"If "-" sign not added then defualt add "+" to Right side without space
lv_rightp = |{ p_amt SIGN = RIGHTPLUS }|.
"Blank space added for Right side.
lv_rights = |{ p_amt SIGN = RIGHTSPACE }|.
WRITE:/ 'Left sign: ', lv_left USING NO EDIT MASK.
ULINE.
WRITE:/ 'Left Plus sign: ' ,lv_leftp USING NO EDIT MASK.
ULINE.
WRITE:/ 'Left space: ' ,lv_lefts USING NO EDIT MASK.
ULINE.
WRITE:/ 'Right Sign: ' ,lv_right USING NO EDIT MASK.
ULINE.
WRITE:/ 'Right Plus sign: ', lv_rightp USING NO EDIT MASK.
ULINE.
WRITE:/ 'Right Space: ' ,lv_rights USING NO EDIT MASK.
ULINE.
Output:
No comments:
Post a Comment