METHOD tamplates_1 .
* String template
* x = |...literal...{expression}\...control characters...|
WRITE:/ '*** MESHES'.
WRITE:/ '*** Leva as tabelas internas as associações'.
WRITE:/ '*** que já tínhamos nas CDS VIEWS'.
WRITE:/ ''.
WRITE:/ ''.
WRITE:/ ' types:'.
WRITE:/ ' BEGIN OF mesh m1,'.
WRITE:/ ' node1 type ...',' *** Tab int decl.antes' .
WRITE:/ ' ASSOCIATION _node2 to node2'.
WRITE:/ ' ON ... = ...'.
WRITE:/ ' node2 type ...'.
WRITE:/ ' ASSOCIATION _node1 to node1'.
WRITE:/ ' ON ... = ...'.
WRITE:/ ' END OF MESH m1.'.
ULINE.
ENDMETHOD.
***
*** Exemplo Simples
***
METHOD tamplates_2 .
WRITE:/ '*** tamplates_2 - Exemplo Simples' .
TYPES:
BEGIN OF y_cidade,
cod TYPE i,
nome TYPE char20,
estado TYPE char2,
END OF y_cidade,
y_t_cidade TYPE STANDARD TABLE OF y_cidade
WITH KEY primary_key COMPONENTS cod,
BEGIN OF y_estado,
cod TYPE char2,
nome TYPE char20,
END OF y_estado,
y_t_estado TYPE STANDARD TABLE OF y_estado
WITH KEY primary_key COMPONENTS cod,
BEGIN OF MESH y_uf,
estados TYPE y_t_estado
ASSOCIATION _cidades TO cidades
ON estado = cod,
cidades TYPE y_t_cidade
ASSOCIATION _estado TO estados
ON cod = estado,
END OF MESH y_uf.
data(t_uf) = VALUE y_uf(
estados = VALUE y_t_estado(
( cod = 'SP' nome = 'Sao Paulo' )
( cod = 'RJ' nome = 'Rio de Janeiro' )
)
cidades = VALUE y_t_cidade(
( cod = '01' nome = 'Santo Andre' estado = 'SP' )
( cod = '02' nome = 'Sao Bernardo do Campo' estado = 'SP' )
( cod = '03' nome = 'Sao Caetano do Sul' estado = 'SP' )
( cod = '04' nome = 'Petropolis' estado = 'RJ' )
( cod = '05' nome = 'Niteroi' estado = 'RJ' )
)
).
write:/ |Estado de Santo Andre: |
&& |{ t_uf-cidades\_estado[ t_uf-cidades[ cod = '01' ] ]-nome }|.
ULINE.
ENDMETHOD.
***
*** Literal + expression
***
METHOD tamplates_3 .
WRITE:/ '*** tamplates_3 - Exemplo c/ LOOP' .
WRITE:/ '*** Cidades do Rio' .
TYPES:
BEGIN OF y_cidade,
cod TYPE i,
nome TYPE char20,
estado TYPE char2,
END OF y_cidade,
y_t_cidade TYPE STANDARD TABLE OF y_cidade
WITH KEY primary_key COMPONENTS cod,
BEGIN OF y_estado,
cod TYPE char2,
nome TYPE char20,
END OF y_estado,
y_t_estado TYPE STANDARD TABLE OF y_estado
WITH KEY primary_key COMPONENTS cod,
BEGIN OF MESH y_uf,
estados TYPE y_t_estado
ASSOCIATION _cidades TO cidades
ON estado = cod,
cidades TYPE y_t_cidade
ASSOCIATION _estado TO estados
ON cod = estado,
END OF MESH y_uf.
data(t_uf) = VALUE y_uf(
estados = VALUE y_t_estado(
( cod = 'SP' nome = 'Sao Paulo' )
( cod = 'RJ' nome = 'Rio de Janeiro' )
)
cidades = VALUE y_t_cidade(
( cod = '01' nome = 'Santo Andre' estado = 'SP' )
( cod = '02' nome = 'Sao Bernardo do Campo' estado = 'SP' )
( cod = '03' nome = 'Sao Caetano do Sul' estado = 'SP' )
( cod = '04' nome = 'Petropolis' estado = 'RJ' )
( cod = '05' nome = 'Niteroi' estado = 'RJ' )
)
).
write:/ |Cidades do Rio de Janeiro:| .
LOOP AT t_uf-estados\_cidades[ t_uf-estados[ cod = 'RJ' ] ] INTO DATA(s_cid_rj).
write:
/ | { s_cid_rj-nome } |.
ENDLOOP.
ULINE.
ENDMETHOD.
***
***
***
METHOD tamplates_4 .
WRITE:/ '*** tamplates_4 - Exemplo c/ LOOP' .
WRITE:/ '*** Cidades do Rio (com estado)' .
TYPES:
BEGIN OF y_cidade,
cod TYPE i,
nome TYPE char20,
estado TYPE char2,
END OF y_cidade,
y_t_cidade TYPE STANDARD TABLE OF y_cidade
WITH KEY primary_key COMPONENTS cod,
BEGIN OF y_estado,
cod TYPE char2,
nome TYPE char20,
END OF y_estado,
y_t_estado TYPE STANDARD TABLE OF y_estado
WITH KEY primary_key COMPONENTS cod,
BEGIN OF MESH y_uf,
estados TYPE y_t_estado
ASSOCIATION _cidades TO cidades
ON estado = cod,
cidades TYPE y_t_cidade
ASSOCIATION _estado TO estados
ON cod = estado,
END OF MESH y_uf.
data(t_uf) = VALUE y_uf(
estados = VALUE y_t_estado(
( cod = 'SP' nome = 'Sao Paulo' )
( cod = 'RJ' nome = 'Rio de Janeiro' )
)
cidades = VALUE y_t_cidade(
( cod = '01' nome = 'Santo Andre' estado = 'SP' )
( cod = '02' nome = 'Sao Bernardo do Campo' estado = 'SP' )
( cod = '03' nome = 'Sao Caetano do Sul' estado = 'SP' )
( cod = '04' nome = 'Petropolis' estado = 'RJ' )
( cod = '05' nome = 'Niteroi' estado = 'RJ' )
)
).
write:/ |Cidades do Rio de Janeiro (com estado):| .
LOOP AT t_uf-estados\_cidades[ t_uf-estados[ cod = 'RJ' ] ] INTO DATA(s_cid_rj).
write:
/ | { s_cid_rj-nome }, |
&& | { t_uf-cidades\_estado[ s_cid_rj ]-nome } |.
ENDLOOP.
ULINE.
ENDMETHOD.
* String template
* x = |...literal...{expression}\...control characters...|
WRITE:/ '*** MESHES'.
WRITE:/ '*** Leva as tabelas internas as associações'.
WRITE:/ '*** que já tínhamos nas CDS VIEWS'.
WRITE:/ ''.
WRITE:/ ''.
WRITE:/ ' types:'.
WRITE:/ ' BEGIN OF mesh m1,'.
WRITE:/ ' node1 type ...',' *** Tab int decl.antes' .
WRITE:/ ' ASSOCIATION _node2 to node2'.
WRITE:/ ' ON ... = ...'.
WRITE:/ ' node2 type ...'.
WRITE:/ ' ASSOCIATION _node1 to node1'.
WRITE:/ ' ON ... = ...'.
WRITE:/ ' END OF MESH m1.'.
ULINE.
ENDMETHOD.
***
*** Exemplo Simples
***
METHOD tamplates_2 .
WRITE:/ '*** tamplates_2 - Exemplo Simples' .
TYPES:
BEGIN OF y_cidade,
cod TYPE i,
nome TYPE char20,
estado TYPE char2,
END OF y_cidade,
y_t_cidade TYPE STANDARD TABLE OF y_cidade
WITH KEY primary_key COMPONENTS cod,
BEGIN OF y_estado,
cod TYPE char2,
nome TYPE char20,
END OF y_estado,
y_t_estado TYPE STANDARD TABLE OF y_estado
WITH KEY primary_key COMPONENTS cod,
BEGIN OF MESH y_uf,
estados TYPE y_t_estado
ASSOCIATION _cidades TO cidades
ON estado = cod,
cidades TYPE y_t_cidade
ASSOCIATION _estado TO estados
ON cod = estado,
END OF MESH y_uf.
data(t_uf) = VALUE y_uf(
estados = VALUE y_t_estado(
( cod = 'SP' nome = 'Sao Paulo' )
( cod = 'RJ' nome = 'Rio de Janeiro' )
)
cidades = VALUE y_t_cidade(
( cod = '01' nome = 'Santo Andre' estado = 'SP' )
( cod = '02' nome = 'Sao Bernardo do Campo' estado = 'SP' )
( cod = '03' nome = 'Sao Caetano do Sul' estado = 'SP' )
( cod = '04' nome = 'Petropolis' estado = 'RJ' )
( cod = '05' nome = 'Niteroi' estado = 'RJ' )
)
).
write:/ |Estado de Santo Andre: |
&& |{ t_uf-cidades\_estado[ t_uf-cidades[ cod = '01' ] ]-nome }|.
ULINE.
ENDMETHOD.
***
*** Literal + expression
***
METHOD tamplates_3 .
WRITE:/ '*** tamplates_3 - Exemplo c/ LOOP' .
WRITE:/ '*** Cidades do Rio' .
TYPES:
BEGIN OF y_cidade,
cod TYPE i,
nome TYPE char20,
estado TYPE char2,
END OF y_cidade,
y_t_cidade TYPE STANDARD TABLE OF y_cidade
WITH KEY primary_key COMPONENTS cod,
BEGIN OF y_estado,
cod TYPE char2,
nome TYPE char20,
END OF y_estado,
y_t_estado TYPE STANDARD TABLE OF y_estado
WITH KEY primary_key COMPONENTS cod,
BEGIN OF MESH y_uf,
estados TYPE y_t_estado
ASSOCIATION _cidades TO cidades
ON estado = cod,
cidades TYPE y_t_cidade
ASSOCIATION _estado TO estados
ON cod = estado,
END OF MESH y_uf.
data(t_uf) = VALUE y_uf(
estados = VALUE y_t_estado(
( cod = 'SP' nome = 'Sao Paulo' )
( cod = 'RJ' nome = 'Rio de Janeiro' )
)
cidades = VALUE y_t_cidade(
( cod = '01' nome = 'Santo Andre' estado = 'SP' )
( cod = '02' nome = 'Sao Bernardo do Campo' estado = 'SP' )
( cod = '03' nome = 'Sao Caetano do Sul' estado = 'SP' )
( cod = '04' nome = 'Petropolis' estado = 'RJ' )
( cod = '05' nome = 'Niteroi' estado = 'RJ' )
)
).
write:/ |Cidades do Rio de Janeiro:| .
LOOP AT t_uf-estados\_cidades[ t_uf-estados[ cod = 'RJ' ] ] INTO DATA(s_cid_rj).
write:
/ | { s_cid_rj-nome } |.
ENDLOOP.
ULINE.
ENDMETHOD.
***
***
***
METHOD tamplates_4 .
WRITE:/ '*** tamplates_4 - Exemplo c/ LOOP' .
WRITE:/ '*** Cidades do Rio (com estado)' .
TYPES:
BEGIN OF y_cidade,
cod TYPE i,
nome TYPE char20,
estado TYPE char2,
END OF y_cidade,
y_t_cidade TYPE STANDARD TABLE OF y_cidade
WITH KEY primary_key COMPONENTS cod,
BEGIN OF y_estado,
cod TYPE char2,
nome TYPE char20,
END OF y_estado,
y_t_estado TYPE STANDARD TABLE OF y_estado
WITH KEY primary_key COMPONENTS cod,
BEGIN OF MESH y_uf,
estados TYPE y_t_estado
ASSOCIATION _cidades TO cidades
ON estado = cod,
cidades TYPE y_t_cidade
ASSOCIATION _estado TO estados
ON cod = estado,
END OF MESH y_uf.
data(t_uf) = VALUE y_uf(
estados = VALUE y_t_estado(
( cod = 'SP' nome = 'Sao Paulo' )
( cod = 'RJ' nome = 'Rio de Janeiro' )
)
cidades = VALUE y_t_cidade(
( cod = '01' nome = 'Santo Andre' estado = 'SP' )
( cod = '02' nome = 'Sao Bernardo do Campo' estado = 'SP' )
( cod = '03' nome = 'Sao Caetano do Sul' estado = 'SP' )
( cod = '04' nome = 'Petropolis' estado = 'RJ' )
( cod = '05' nome = 'Niteroi' estado = 'RJ' )
)
).
write:/ |Cidades do Rio de Janeiro (com estado):| .
LOOP AT t_uf-estados\_cidades[ t_uf-estados[ cod = 'RJ' ] ] INTO DATA(s_cid_rj).
write:
/ | { s_cid_rj-nome }, |
&& | { t_uf-cidades\_estado[ s_cid_rj ]-nome } |.
ENDLOOP.
ULINE.
ENDMETHOD.