METHOD tamplates_1 .
* String template
* x = |...literal...{expression}\...control characters...|
WRITE:/ '*** Open SQL'.
WRITE:/ '*** '.
WRITE:/ '*** Comma separated lists'.
WRITE:/ '*** Escape character for host variables'.
WRITE:/ '*** SQL expressions'.
WRITE:/ '.'.
WRITE:/ '.'.
WRITE:/ ' '.
WRITE:/ |.|.
ULINE.
ENDMETHOD.
***
*** Exemplo Simples
***
METHOD tamplates_2 .
WRITE:/ '*** tamplates_2 - Forma Básica' .
WRITE:/ '*** Listas de campo separadas por vírgula (,) ' .
WRITE:/ '*** quando utilizadas declarações inline' .
** Forma Antiga
write:/ |--> |.
write:/ |--> Forma Antiga|.
write:/ |.| && ||.
** Definições
types: begin of y_mara,
matnr type matnr,
meins type meins,
mtart type mtart,
end of y_mara.
DATA t_mara TYPE STANDARD TABLE OF y_mara
WITH EMPTY KEY.
write:/ | SELECT matnr meins mtart|.
write:/ | from mara|.
write:/ | into CORRESPONDING FIELDS OF TABLE t_mara.|.
** Seleção de dados
SELECT matnr meins mtart
from mara
into CORRESPONDING FIELDS OF TABLE t_mara.
* LisTa dados
LOOP AT t_mara INTO DATA(ls_mara).
check sy-tabix < 6.
write:/01 |MATNR: { ls_mara-matnr } |,
25 |MEINS: { ls_mara-meins } |,
45 |MTART: { ls_mara-mtart } | .
ENDLOOP.
WRITE:/ |.|.
** Forma Nova
write:/ |--> |.
write:/ |--> Forma Nova|.
write:/ |.| && ||.
** Seleção de dados
write:/ | SELECT matnr, meins, mtart|.
write:/ | from mara|.
write:/ | into TABLE @DATA(t_mara2).|.
* LisTa dados
LOOP AT t_mara INTO DATA(ls_mara2).
check sy-tabix < 6.
write:/01 |MATNR: { ls_mara2-matnr } |,
25 |MEINS: { ls_mara2-meins } |,
45 |MTART: { ls_mara2-mtart } | .
ENDLOOP.
WRITE:/ |.|.
ULINE.
ENDMETHOD.
***
*** Literal + expression
***
METHOD tamplates_3 .
WRITE:/ '*** tamplates_3 -' .
WRITE:/ '*** ESCAPE character (@) for host variables ' .
WRITE:/ '*** ' .
** Forma Antiga
write:/ |--> |.
write:/ |--> Forma Antiga|.
write:/ |.| && ||.
** Definições
types: begin of y_mara,
matnr type matnr,
meins type meins,
mtart type mtart,
end of y_mara.
DATA t_mara TYPE STANDARD TABLE OF y_mara
WITH EMPTY KEY.
data v_mtart type mara-mtart VALUE 'HAWA'.
write:/ | DATA t_mara TYPE STANDARD TABLE OF y_mara|.
write:/ | WITH EMPTY KEY.|.
write:/ | |.
write:/ | data v_mtart type mara-mtart VALUE 'HAWA'.|.
write:/ |. |.
write:/ | SELECT matnr meins mtart|.
write:/ | from mara|.
write:/ | into CORRESPONDING FIELDS OF TABLE t_mara |.
write:/ | WHERE mtart = v_mtart. |.
** Seleção de dados
SELECT matnr meins mtart
from mara
into CORRESPONDING FIELDS OF TABLE t_mara
where mtart = v_mtart.
* LisTa dados
LOOP AT t_mara INTO DATA(ls_mara).
check sy-tabix < 6.
write:/01 |MATNR: { ls_mara-matnr } |,
25 |MEINS: { ls_mara-meins } |,
45 |MTART: { ls_mara-mtart } | .
ENDLOOP.
WRITE:/ |.|.
** Forma Nova
write:/ |--> |.
write:/ |--> Forma Nova|.
write:/ |.| && ||.
** Seleção de dados
write:/ | SELECT matnr, meins, mtart|.
write:/ | from mara|.
write:/ | into TABLE @DATA(t_mara2) |.
write:/ | where mtart = @v_mtart |.
SELECT matnr, meins, mtart
from mara
into TABLE @DATA(t_mara2)
where mtart = @v_mtart .
* LisTa dados
LOOP AT t_mara2 INTO DATA(ls_mara2).
check sy-tabix < 6.
write:/01 |MATNR: { ls_mara2-matnr } |,
25 |MEINS: { ls_mara2-meins } |,
45 |MTART: { ls_mara2-mtart } | .
ENDLOOP.
WRITE:/ |.|.
ULINE.
ENDMETHOD.
***
***
***
METHOD tamplates_4 .
WRITE:/ '*** tamplates_4 - SQL expressions' .
WRITE:/ '*** Concatenar campos' .
WRITE:/ |--> SQL Expressions|.
WRITE:/ |--> |.
WRITE:/ | SELECT SINGLE|.
WRITE:/ | ( name1 && '' && name2 ) as namefull|.
WRITE:/ | INTO @DATA(s_kunnr)|.
WRITE:/ | FROM kna1|.
WRITE:/ | where kunnr = '0001000000'.|.
SELECT SINGLE
( name1 && ' ' && name2 ) as namefull
INTO @DATA(s_kunnr)
FROM kna1
where kunnr = '0001000000'.
WRITE:/ |--> |.
WRITE:/ |S_KUNNR: { s_kunnr } |.
WRITE:/ |--> |.
ULINE.
ENDMETHOD.
***
***
***
METHOD tamplates_5 .
WRITE:/ '*** tamplates_5 - SQL expressions'.
WRITE:/ '*** Soma de campos' .
WRITE:/ |--> SQL Expressions|.
WRITE:/ |--> |.
WRITE:/ | SELECT SINGLE|.
WRITE:/ | ( kzwi1 + kzwi2 ) as kswi|.
WRITE:/ | INTO @DATA(s_soma)|.
WRITE:/ | FROM vbap|.
WRITE:/ | where vbeln = '0000000010'.|.
WRITE:/ | and posnr = '00010'.|.
SELECT SINGLE
( KZWI1 + KZWI1 ) as kswi
INTO @DATA(s_soma)
FROM vbap
where vbeln = '0000000010'
and posnr = '00010'.
WRITE:/ |--> |.
WRITE:/ |S_SOMA: { s_soma } |.
WRITE:/ |--> |.
ULINE.
ENDMETHOD.
* String template
* x = |...literal...{expression}\...control characters...|
WRITE:/ '*** Open SQL'.
WRITE:/ '*** '.
WRITE:/ '*** Comma separated lists'.
WRITE:/ '*** Escape character for host variables'.
WRITE:/ '*** SQL expressions'.
WRITE:/ '.'.
WRITE:/ '.'.
WRITE:/ ' '.
WRITE:/ |.|.
ULINE.
ENDMETHOD.
***
*** Exemplo Simples
***
METHOD tamplates_2 .
WRITE:/ '*** tamplates_2 - Forma Básica' .
WRITE:/ '*** Listas de campo separadas por vírgula (,) ' .
WRITE:/ '*** quando utilizadas declarações inline' .
** Forma Antiga
write:/ |--> |.
write:/ |--> Forma Antiga|.
write:/ |.| && ||.
** Definições
types: begin of y_mara,
matnr type matnr,
meins type meins,
mtart type mtart,
end of y_mara.
DATA t_mara TYPE STANDARD TABLE OF y_mara
WITH EMPTY KEY.
write:/ | SELECT matnr meins mtart|.
write:/ | from mara|.
write:/ | into CORRESPONDING FIELDS OF TABLE t_mara.|.
** Seleção de dados
SELECT matnr meins mtart
from mara
into CORRESPONDING FIELDS OF TABLE t_mara.
* LisTa dados
LOOP AT t_mara INTO DATA(ls_mara).
check sy-tabix < 6.
write:/01 |MATNR: { ls_mara-matnr } |,
25 |MEINS: { ls_mara-meins } |,
45 |MTART: { ls_mara-mtart } | .
ENDLOOP.
WRITE:/ |.|.
** Forma Nova
write:/ |--> |.
write:/ |--> Forma Nova|.
write:/ |.| && ||.
** Seleção de dados
write:/ | SELECT matnr, meins, mtart|.
write:/ | from mara|.
write:/ | into TABLE @DATA(t_mara2).|.
* LisTa dados
LOOP AT t_mara INTO DATA(ls_mara2).
check sy-tabix < 6.
write:/01 |MATNR: { ls_mara2-matnr } |,
25 |MEINS: { ls_mara2-meins } |,
45 |MTART: { ls_mara2-mtart } | .
ENDLOOP.
WRITE:/ |.|.
ULINE.
ENDMETHOD.
***
*** Literal + expression
***
METHOD tamplates_3 .
WRITE:/ '*** tamplates_3 -' .
WRITE:/ '*** ESCAPE character (@) for host variables ' .
WRITE:/ '*** ' .
** Forma Antiga
write:/ |--> |.
write:/ |--> Forma Antiga|.
write:/ |.| && ||.
** Definições
types: begin of y_mara,
matnr type matnr,
meins type meins,
mtart type mtart,
end of y_mara.
DATA t_mara TYPE STANDARD TABLE OF y_mara
WITH EMPTY KEY.
data v_mtart type mara-mtart VALUE 'HAWA'.
write:/ | DATA t_mara TYPE STANDARD TABLE OF y_mara|.
write:/ | WITH EMPTY KEY.|.
write:/ | |.
write:/ | data v_mtart type mara-mtart VALUE 'HAWA'.|.
write:/ |. |.
write:/ | SELECT matnr meins mtart|.
write:/ | from mara|.
write:/ | into CORRESPONDING FIELDS OF TABLE t_mara |.
write:/ | WHERE mtart = v_mtart. |.
** Seleção de dados
SELECT matnr meins mtart
from mara
into CORRESPONDING FIELDS OF TABLE t_mara
where mtart = v_mtart.
* LisTa dados
LOOP AT t_mara INTO DATA(ls_mara).
check sy-tabix < 6.
write:/01 |MATNR: { ls_mara-matnr } |,
25 |MEINS: { ls_mara-meins } |,
45 |MTART: { ls_mara-mtart } | .
ENDLOOP.
WRITE:/ |.|.
** Forma Nova
write:/ |--> |.
write:/ |--> Forma Nova|.
write:/ |.| && ||.
** Seleção de dados
write:/ | SELECT matnr, meins, mtart|.
write:/ | from mara|.
write:/ | into TABLE @DATA(t_mara2) |.
write:/ | where mtart = @v_mtart |.
SELECT matnr, meins, mtart
from mara
into TABLE @DATA(t_mara2)
where mtart = @v_mtart .
* LisTa dados
LOOP AT t_mara2 INTO DATA(ls_mara2).
check sy-tabix < 6.
write:/01 |MATNR: { ls_mara2-matnr } |,
25 |MEINS: { ls_mara2-meins } |,
45 |MTART: { ls_mara2-mtart } | .
ENDLOOP.
WRITE:/ |.|.
ULINE.
ENDMETHOD.
***
***
***
METHOD tamplates_4 .
WRITE:/ '*** tamplates_4 - SQL expressions' .
WRITE:/ '*** Concatenar campos' .
WRITE:/ |--> SQL Expressions|.
WRITE:/ |--> |.
WRITE:/ | SELECT SINGLE|.
WRITE:/ | ( name1 && '' && name2 ) as namefull|.
WRITE:/ | INTO @DATA(s_kunnr)|.
WRITE:/ | FROM kna1|.
WRITE:/ | where kunnr = '0001000000'.|.
SELECT SINGLE
( name1 && ' ' && name2 ) as namefull
INTO @DATA(s_kunnr)
FROM kna1
where kunnr = '0001000000'.
WRITE:/ |--> |.
WRITE:/ |S_KUNNR: { s_kunnr } |.
WRITE:/ |--> |.
ULINE.
ENDMETHOD.
***
***
***
METHOD tamplates_5 .
WRITE:/ '*** tamplates_5 - SQL expressions'.
WRITE:/ '*** Soma de campos' .
WRITE:/ |--> SQL Expressions|.
WRITE:/ |--> |.
WRITE:/ | SELECT SINGLE|.
WRITE:/ | ( kzwi1 + kzwi2 ) as kswi|.
WRITE:/ | INTO @DATA(s_soma)|.
WRITE:/ | FROM vbap|.
WRITE:/ | where vbeln = '0000000010'.|.
WRITE:/ | and posnr = '00010'.|.
SELECT SINGLE
( KZWI1 + KZWI1 ) as kswi
INTO @DATA(s_soma)
FROM vbap
where vbeln = '0000000010'
and posnr = '00010'.
WRITE:/ |--> |.
WRITE:/ |S_SOMA: { s_soma } |.
WRITE:/ |--> |.
ULINE.
ENDMETHOD.