* Fala aee, olha um post muito interessante pra quem gosta de trabalhar
* de forma dinamica, hoje vamos falar sobre o comando 'Assign Component'
* é uma comando usado pra você se referenciar ao valor do campo e não
* ao campo em sí.
* No exemplo abaixo estou fazendo um programa que mostra somente os
* chaves da tabela informada, onde deverá ser criado as estrutura e
* tabelas tudo de forma dinâmica, reparem quais são os valores de cada
* tabela interna e veja como trabalho com ela no relacionamento de
* alimentação da tabela principal que terá uma estrutura só com os
* campos chaves da tabela da tela de seleção.
* Qualquer dúvida ou complemento fiquem a vontade. Espero ajudar. Tnx.
* de forma dinamica, hoje vamos falar sobre o comando 'Assign Component'
* é uma comando usado pra você se referenciar ao valor do campo e não
* ao campo em sí.
* No exemplo abaixo estou fazendo um programa que mostra somente os
* chaves da tabela informada, onde deverá ser criado as estrutura e
* tabelas tudo de forma dinâmica, reparem quais são os valores de cada
* tabela interna e veja como trabalho com ela no relacionamento de
* alimentação da tabela principal que terá uma estrutura só com os
* campos chaves da tabela da tela de seleção.
* Qualquer dúvida ou complemento fiquem a vontade. Espero ajudar. Tnx.
* Tirem as aspas simples (') da frente dos Fields Symbols.... rs
*&---------------------------------------------------------------------*
REPORT z_assign_component.
TYPE-POOLS :
slis.
DATA :
it_table TYPE REF TO data,
st_line TYPE REF TO data,
it_keys TYPE TABLE OF dfies,
st_keys TYPE dfies,
it_fcat TYPE TABLE OF lvc_s_fcat,
st_fcat TYPE lvc_s_fcat,
dy_table TYPE REF TO data,
dy_line TYPE REF TO data
.
* Field-simbols
FIELD-SYMBOLS :
‘<fs_table> TYPE STANDARD TABLE,
‘<fs_line>,
‘<dyn_table> TYPE STANDARD TABLE,
‘<dyn_line>,
‘<dyn_field>.
START-OF-SELECTION.
* Tela de seleção.
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME.
PARAMETERS :
p_table TYPE dd02l-tabname OBLIGATORY, " Nome da tabela
p_rows TYPE i, " Quantidade de linhas à retornar
p_where TYPE char100 " Condições do Select ( sem ponto no final )
.
SELECTION-SCREEN END OF BLOCK b1.
PERFORM : z_select_dynamic,
z_get_keys,
z_create_dynamic_table,
z_feed_dynamic_table,
z_alv
.
REPORT z_assign_component.
TYPE-POOLS :
slis.
DATA :
it_table TYPE REF TO data,
st_line TYPE REF TO data,
it_keys TYPE TABLE OF dfies,
st_keys TYPE dfies,
it_fcat TYPE TABLE OF lvc_s_fcat,
st_fcat TYPE lvc_s_fcat,
dy_table TYPE REF TO data,
dy_line TYPE REF TO data
.
* Field-simbols
FIELD-SYMBOLS :
‘<fs_table> TYPE STANDARD TABLE,
‘<fs_line>,
‘<dyn_table> TYPE STANDARD TABLE,
‘<dyn_line>,
‘<dyn_field>.
START-OF-SELECTION.
* Tela de seleção.
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME.
PARAMETERS :
p_table TYPE dd02l-tabname OBLIGATORY, " Nome da tabela
p_rows TYPE i, " Quantidade de linhas à retornar
p_where TYPE char100 " Condições do Select ( sem ponto no final )
.
SELECTION-SCREEN END OF BLOCK b1.
PERFORM : z_select_dynamic,
z_get_keys,
z_create_dynamic_table,
z_feed_dynamic_table,
z_alv
.