Vous êtes sur la page 1sur 3

Passo a Passo TABELA DINMICA

Pgina PAGE

-1Data - DATE

06/13/12

Tabela dinmica uma tabela interna que possui nmero de campos variveis, possuindo de 1 a n campos (Hora com 25 campos, hora com 60 campos). Siga as etapas: 12345Declaraes Montar informaes dos campos Montar tabela dinmica Carregar dados na tabela dinmica Exemplo

Declaraes
field-symbols: <fs_data> type any table, field-symbols p/ser a tabela dinmica onde constaram os dados de exibio <wa_data> type any, work-rea p/ trabalhar os dados antes de inclui <fs_data> <fs_campo> type any. campo que recebera dados e apontara p/ os campos dinmicos da wa. *Tabela dinmica de exibio do ALV data: t_data type ref to data, * Work-rea p/ montar dados dos campos data: wa_fcat_lvc type lvc_s_fcat, * Tabela sem cabealho p/ receber dados da wa acima e passar informaes de campos p/ gerar a tabela dinmica lt_fcat_lvc type lvc_t_fcat. data: t_alvdata type ref to data,

* Variveis p/ montar campos: Data: v_camp(7), v_text(100),

Montar informaes dos campos - FieldCat


Deve se passar as informaes de cada campo (tabela referncia, campo referncia e ...) como acontece no ALV quando montamos os FieldCat. Monta campos p/ gerar tabela dinamica Monta campos (fieldcat) Campos fixos
'10' 'BUKRS', '15' 'BUTXT', '15' 'MATNR', '5' 'LVSME'. perform monta_fieldcat using: 'BUKRS' 'TVKO' text-f01 'BUTXT' 'T001' text-f02 'MATNR' 'MARA' text-f03 : : 'LVSME' 'MLGN' text-f24

Passo a Passo TABELA DINMICA

Pgina PAGE

-2Data - DATE

06/13/12

Campos dinmicos
Monta campo clear: v_camp, v_text. concatenate 'MEINH' Nome do campo t_unid-unid indice into v_camp. varivel que recebe o nome do campo dinmico ex.: MEINH01 Monta texto concatenate text-f25 t_unid-unid into v_text. perform monta_fieldcat using v_camp 'MARM' v_text '5' 'MEINH'.

Percorre tabela de ndice que indica o nmero de campos t_unid.

Fim do Percorre Rotina monta_fieldcat Na rotina monta_fieldcat : deve constar


form monta_fieldcat using p_field Campo p_tabref Tabela referncia p_text Texto de exibio p_out Tamanho da Sada p_ref_field. Campo referncia **** Se o programa for um ALV, pode aproveitar p/ carregar fieldcat com os atributos necessrios, caso no se trate de um ALV basta informar o campo de referencia, a tabela de referncia, o campo e a tabela. Monta work-rea wa_fcat_lvc e carrega fieldcat do alv. clear: s_fieldcat, wa_fcat_lvc. wa_fcat_lvc-fieldname = s_fieldcat-fieldname = p_field. wa_fcat_lvc-tabname = s_fieldcat-tabname = '<FS_DATA>'. wa_fcat_lvc-ref_table = s_fieldcat-ref_tabname = p_tabref. wa_fcat_lvc-seltext = s_fieldcat-seltext_l = p_text. wa_fcat_lvc-outputlen = s_fieldcat-outputlen = p_out. wa_fcat_lvc-ref_field = s_fieldcat-ref_fieldname = p_ref_field. append s_fieldcat. append wa_fcat_lvc to lt_fcat_lvc. carrega fieldcat do alv inclui dados da work-rea p/ tabela sem cab.

FimRotina

Montar tabela dinmica


Montado as informaes dos campos na tabela lt_fcat_lvc chama o mtodo abaixo
data: t_alvdata type ref to data. * Monta tabela dinmica call method cl_alv_table_create=>create_dynamic_table exporting i_style_table = ' ' it_fieldcatalog = lt_fcat_lvc tabela com as informaes de campo importing ep_table = t_data. retorna tabela dinmica com os campos informados * Carrega <fs_data> com a estrutura dos campos passados para o metodo assign t_data->* to <fs_data>. create data t_alvdata like line of <fs_data>. ASSIGN t_alvdata->* to <wa_data>.

Passo a Passo TABELA DINMICA

Pgina PAGE

-3Data - DATE

06/13/12

Carregar dados na tabela dinmica


Monta dados p/ tabela dinmico Campos Fixos: Monta dados de campos fixos em work-rea dinmica
perform f_carrega_dados using: t_emp-bukrs 'BUKRS', t_emp-butxt 'BUTXT', :

:
t_mlgn-lvsme 'LVSME'.

Campos Dinmicos Monta dados de campos dinmicos em work-rea dinmica


Percorre tabela de ndice
concatenate 'MEINH' t_unid-unid into v_camp. ndice varivel com campo dinmico ex.: MEINH01 Nome do campo

perform f_carrega_dados using: t_marm-meinh v_camp.

FimPercorre Rotina de carregar dados para work-rea dinmica


form f_carrega_dados using p_valor p_campo. *Aponta <fs_campo> para <wa_data>-campo montado ASSIGN COMPONENT p_campo OF STRUCTURE <wa_data> TO <fs_campo>. *Move valor para <fs_campo> que esta apontando p/<wa_data>-campo montado move p_valor to <fs_campo>.

FimRotina

Inclui wa na tabela dinmica

perform f_carrega_alv using <fs_data> <wa_data>.

Rotina f_carrega_alv
form f_carrega_alv using p_wa. append p_wa to p_tab. p_tab type table

FimRotina

Vous aimerez peut-être aussi