METHOD string_tamplates_1 .
* String template
* x = |...literal...{expression}\...control characters...|
write:/ '*** string_tamplates_1 - expression'.
*** Tradicional
data v_cli type string.
data: s_cli1 type kna1.
CONCATENATE
s_cli1-kunnr
'-'
s_cli1-name1
INTO v_cli SEPARATED BY space.
*** Novo
v_cli = |{ s_cli1-kunnr } - { s_cli1-name1 }|.
write:/ v_cli.
uline.
ENDMETHOD.
***
*** Exemplo Simples
***
METHOD string_tamplates_2 .
write:/ '*** string_tamplates_2 - expression'.
** Definições
types: begin of y_kna1,
kunnr type kunnr,
name1 type name1,
end of y_kna1,
y_t_kna1 type STANDARD TABLE OF y_kna1
WITH KEY PRIMARY_KEY COMPONENTS kunnr.
** Preenchendo a tabela interna
data(t_kna1) = VALUE y_t_kna1(
( kunnr = '10' name1 = 'Cliente Dez' )
( kunnr = '20' name1 = 'Cliente Vinte' )
( kunnr = '30' name1 = 'Cliente Trinta' )
).
*** Tradicinal
write:/ '*** Tradicional'.
data s_cli1 type line of y_t_kna1.
READ TABLE t_kna1 INDEX 1 into s_cli1.
data v_cli type string.
CONCATENATE
s_cli1-kunnr
'-'
s_cli1-name1
INTO v_cli SEPARATED BY space.
write:/ v_cli.
*** Moderno
write:/ '*** Moderno'.
write:/ |{ t_kna1[ 1 ]-kunnr } - { t_kna1[ 1 ]-name1 }|.
uline.
ENDMETHOD.
***
*** Literal + expression
***
METHOD string_tamplates_3 .
write:/ '*** string_tamplates_3 - expression'.
** Definições
data v_palavra type string VALUE 'world'.
data v_frase type string .
*** Tradicional
write:/ '*** Tradicional'.
CONCATENATE
'Hello'
v_palavra
INTO v_frase SEPARATED BY space.
write:/ v_frase.
*** Moderno
write:/ '*** Moderno'.
write:/ |Hello { v_palavra }|.
uline.
ENDMETHOD.
***
***
***
METHOD string_tamplates_4 .
write:/ '*** string_tamplates_4 - cl_demo_output'.
data v_texto type string.
write:/ '*** Tradicional'.
concatenate
'First line.'
cl_abap_char_utilities=>newline
cl_abap_char_utilities=>horizontal_tab
'tab'
cl_abap_char_utilities=>horizontal_tab
'tab'
cl_abap_char_utilities=>horizontal_tab
'tab'
cl_abap_char_utilities=>newline
cl_abap_char_utilities=>horizontal_tab
'tab'
cl_abap_char_utilities=>horizontal_tab
'tab'
cl_abap_char_utilities=>horizontal_tab
'tab'
cl_abap_char_utilities=>newline
'Last line 22.'
INTO v_texto.
cl_demo_output=>display( v_texto ).
write:/ '*** Moderno'.
cl_demo_output=>display(
|22 Firs line.\r\ttab\ttab\ttab\n\r\ttab\ttab\ttab\rLast line.|
).
uline.
ENDMETHOD.
***
***
***
METHOD string_tamplates_5 .
write:/ '*** string_tamplates_5 - Maiúculas, Minúsculas e Normal'.
*** Moderno
write:/ '*** Moderno'.
write:/ |{ 'Minúsculo ' CASE = (cl_abap_format=>c_lower) }, |
&& |{ 'Maiúsculo ' CASE = (cl_abap_format=>c_upper) } e |
&& |{ 'Normal ' CASE = (cl_abap_format=>c_raw) } | .
uline.
ENDMETHOD.
***
***
***
METHOD string_tamplates_6 .
write:/ '*** string_tamplates_6 - Rotina de conversão'.
*** Tradicional
write:/ '*** Tradicional'.
data v_matnr type char40 value '123'.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
input = v_matnr
IMPORTING
OUTPUT = v_matnr .
write:/ v_matnr.
*** Moderno
write:/ '*** Moderno'.
v_matnr = '456'.
write:/ |{ v_matnr ALPHA = IN }| .
uline.
ENDMETHOD.
***
***
***
METHOD string_tamplates_7 .
write:/ '*** string_tamplates_7 - Alinhamento'.
**** Tradicional
* write:/ '*** Tradicional'.
* data v_matnr type char40 value '123'.
*
* CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
* EXPORTING
* input = v_matnr
* IMPORTING
* OUTPUT = v_matnr .
*
* write:/ v_matnr.
*** Moderno
write:/ '*** Moderno'.
write:/ |{ 'Hello' WIDTH = 30 PAD = '.' ALIGN = LEFT } |, /
|{ 'Aligned' WIDTH = 30 PAD = '.' ALIGN = CENTER } |, /
|{ 'World' WIDTH = 30 PAD = '.' ALIGN = RIGHT } | .
uline.
ENDMETHOD.
***
***
***
METHOD string_tamplates_8.
write:/ '*** string_tamplates_8 - Formato de data'.
data(v_natal) = conv sydatum( '20301225' ).
data(v_br) = conv land1( 'BR' ).
data(v_us) = conv land1( 'US' ).
*** Moderno
write:/ '*** Moderno'.
data(v_dates) = | { v_br }: { v_natal COUNTRY = v_br } |
&& |\n|
&& | { v_us }: { v_natal COUNTRY = v_us } |.
cl_demo_output=>display( v_dates ).
write:/ | { v_br }: { v_natal COUNTRY = v_br } |
&& |\n|
&& | { v_us }: { v_natal COUNTRY = v_us } |.
uline.
ENDMETHOD.
***
***
***
METHOD string_tamplates_9 .
write:/ '*** string_tamplates_9 - Formato de data (sem variáveis auxiliares)'.
data(v_natal) = conv sydatum( '20301225' ).
data(v_br) = conv land1( 'BR' ).
data(v_us) = conv land1( 'US' ).
*** Moderno
write:/ '*** Moderno'.
write:/ '(popup)'.
cl_demo_output=>display(
CONV string(
LET v_natal2 = CONV sydatum( '20301225' ) IN
|{
CONV string(
LET v_br2 = CONV land1( 'BR' ) in
|{ v_br2 }: { v_natal COUNTRY = v_br }|
)
}|
&& |\n| &&
|{
CONV string(
LET v_us2 = CONV land1( 'US' ) IN
|{ v_us2 }: { v_natal2 COUNTRY = v_us2 }|
)
}|
)
).
uline.
ENDMETHOD.
* String template
* x = |...literal...{expression}\...control characters...|
write:/ '*** string_tamplates_1 - expression'.
*** Tradicional
data v_cli type string.
data: s_cli1 type kna1.
CONCATENATE
s_cli1-kunnr
'-'
s_cli1-name1
INTO v_cli SEPARATED BY space.
*** Novo
v_cli = |{ s_cli1-kunnr } - { s_cli1-name1 }|.
write:/ v_cli.
uline.
ENDMETHOD.
***
*** Exemplo Simples
***
METHOD string_tamplates_2 .
write:/ '*** string_tamplates_2 - expression'.
** Definições
types: begin of y_kna1,
kunnr type kunnr,
name1 type name1,
end of y_kna1,
y_t_kna1 type STANDARD TABLE OF y_kna1
WITH KEY PRIMARY_KEY COMPONENTS kunnr.
** Preenchendo a tabela interna
data(t_kna1) = VALUE y_t_kna1(
( kunnr = '10' name1 = 'Cliente Dez' )
( kunnr = '20' name1 = 'Cliente Vinte' )
( kunnr = '30' name1 = 'Cliente Trinta' )
).
*** Tradicinal
write:/ '*** Tradicional'.
data s_cli1 type line of y_t_kna1.
READ TABLE t_kna1 INDEX 1 into s_cli1.
data v_cli type string.
CONCATENATE
s_cli1-kunnr
'-'
s_cli1-name1
INTO v_cli SEPARATED BY space.
write:/ v_cli.
*** Moderno
write:/ '*** Moderno'.
write:/ |{ t_kna1[ 1 ]-kunnr } - { t_kna1[ 1 ]-name1 }|.
uline.
ENDMETHOD.
***
*** Literal + expression
***
METHOD string_tamplates_3 .
write:/ '*** string_tamplates_3 - expression'.
** Definições
data v_palavra type string VALUE 'world'.
data v_frase type string .
*** Tradicional
write:/ '*** Tradicional'.
CONCATENATE
'Hello'
v_palavra
INTO v_frase SEPARATED BY space.
write:/ v_frase.
*** Moderno
write:/ '*** Moderno'.
write:/ |Hello { v_palavra }|.
uline.
ENDMETHOD.
***
***
***
METHOD string_tamplates_4 .
write:/ '*** string_tamplates_4 - cl_demo_output'.
data v_texto type string.
write:/ '*** Tradicional'.
concatenate
'First line.'
cl_abap_char_utilities=>newline
cl_abap_char_utilities=>horizontal_tab
'tab'
cl_abap_char_utilities=>horizontal_tab
'tab'
cl_abap_char_utilities=>horizontal_tab
'tab'
cl_abap_char_utilities=>newline
cl_abap_char_utilities=>horizontal_tab
'tab'
cl_abap_char_utilities=>horizontal_tab
'tab'
cl_abap_char_utilities=>horizontal_tab
'tab'
cl_abap_char_utilities=>newline
'Last line 22.'
INTO v_texto.
cl_demo_output=>display( v_texto ).
write:/ '*** Moderno'.
cl_demo_output=>display(
|22 Firs line.\r\ttab\ttab\ttab\n\r\ttab\ttab\ttab\rLast line.|
).
uline.
ENDMETHOD.
***
***
***
METHOD string_tamplates_5 .
write:/ '*** string_tamplates_5 - Maiúculas, Minúsculas e Normal'.
*** Moderno
write:/ '*** Moderno'.
write:/ |{ 'Minúsculo ' CASE = (cl_abap_format=>c_lower) }, |
&& |{ 'Maiúsculo ' CASE = (cl_abap_format=>c_upper) } e |
&& |{ 'Normal ' CASE = (cl_abap_format=>c_raw) } | .
uline.
ENDMETHOD.
***
***
***
METHOD string_tamplates_6 .
write:/ '*** string_tamplates_6 - Rotina de conversão'.
*** Tradicional
write:/ '*** Tradicional'.
data v_matnr type char40 value '123'.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
input = v_matnr
IMPORTING
OUTPUT = v_matnr .
write:/ v_matnr.
*** Moderno
write:/ '*** Moderno'.
v_matnr = '456'.
write:/ |{ v_matnr ALPHA = IN }| .
uline.
ENDMETHOD.
***
***
***
METHOD string_tamplates_7 .
write:/ '*** string_tamplates_7 - Alinhamento'.
**** Tradicional
* write:/ '*** Tradicional'.
* data v_matnr type char40 value '123'.
*
* CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
* EXPORTING
* input = v_matnr
* IMPORTING
* OUTPUT = v_matnr .
*
* write:/ v_matnr.
*** Moderno
write:/ '*** Moderno'.
write:/ |{ 'Hello' WIDTH = 30 PAD = '.' ALIGN = LEFT } |, /
|{ 'Aligned' WIDTH = 30 PAD = '.' ALIGN = CENTER } |, /
|{ 'World' WIDTH = 30 PAD = '.' ALIGN = RIGHT } | .
uline.
ENDMETHOD.
***
***
***
METHOD string_tamplates_8.
write:/ '*** string_tamplates_8 - Formato de data'.
data(v_natal) = conv sydatum( '20301225' ).
data(v_br) = conv land1( 'BR' ).
data(v_us) = conv land1( 'US' ).
*** Moderno
write:/ '*** Moderno'.
data(v_dates) = | { v_br }: { v_natal COUNTRY = v_br } |
&& |\n|
&& | { v_us }: { v_natal COUNTRY = v_us } |.
cl_demo_output=>display( v_dates ).
write:/ | { v_br }: { v_natal COUNTRY = v_br } |
&& |\n|
&& | { v_us }: { v_natal COUNTRY = v_us } |.
uline.
ENDMETHOD.
***
***
***
METHOD string_tamplates_9 .
write:/ '*** string_tamplates_9 - Formato de data (sem variáveis auxiliares)'.
data(v_natal) = conv sydatum( '20301225' ).
data(v_br) = conv land1( 'BR' ).
data(v_us) = conv land1( 'US' ).
*** Moderno
write:/ '*** Moderno'.
write:/ '(popup)'.
cl_demo_output=>display(
CONV string(
LET v_natal2 = CONV sydatum( '20301225' ) IN
|{
CONV string(
LET v_br2 = CONV land1( 'BR' ) in
|{ v_br2 }: { v_natal COUNTRY = v_br }|
)
}|
&& |\n| &&
|{
CONV string(
LET v_us2 = CONV land1( 'US' ) IN
|{ v_us2 }: { v_natal2 COUNTRY = v_us2 }|
)
}|
)
).
uline.
ENDMETHOD.