Olá,
Visualizador de listas ABAP
As características comuns de um relatório são a alinhamento de colunas, ordenação, filtragem, subtotais, totais, etc. Para implementar isso, é necessário muita codificação e lógica. Para evitar isso, podemos usar um conceito chamado Visualizador de Listas ABAP (ALV).
Isso nos ajuda a implementar todas as características mencionadas de forma muito eficaz.
Usando ALV, podemos ter três tipos de relatórios:
1. Relatório Simples
2. Relatório de Bloco
3. Relatório Hierárquico Sequencial
Existem alguns módulos de funções que permitirão produzir os relatórios anteriores sem muito esforço.
Todas as definições de tabelas internas, estruturas e constantes são declaradas em um type-pool chamado SLIS.
1. RELATÓRIO SIMPLES.
Os módulos de funções importantes são
a. Reuse_alv_list_display
b. Reuse_alv_fieldcatalog_merge
c. Reuse_alv_events_get
d. Reuse_alv_commentary_write
e. Reuse_alv_grid_display
A. REUSE_ALV_LIST_DISPLAY: Este é o módulo de função que imprime os dados.
Os parâmetros importantes são:
I. Exportar:
i. I_callback_program: identificação do relatório
ii. I_callback_pf_status_set: rotina onde um usuário pode definir seu próprio status de PF ou alterar a funcionalidade do status de PF existente
iii. I_callback_user_command: rotina onde os códigos de função são tratados
iv. I_structure name: nome da tabela do dicionário
v. Is_layout: estrutura para definir o layout do relatório
vi. It_fieldcat: tabela interna com a lista de todos os campos e seus atributos que serão impressos (esta tabela pode ser preenchida automaticamente pelo módulo de função REUSE_ALV_FIELDCATALOG_MERGE
vii. It_events: tabela interna com uma lista de todos os eventos possíveis do ALV e seus nomes de formulário correspondentes.
II. Tabelas:
i. t_outtab: tabela interna com os dados a serem mostrados
B. REUSE_ALV_FIELDCATALOG_MERGE: Este módulo de função é usado para preencher um catálogo de campos que é essencial para mostrar os dados no ALV. Se os dados de saída vêm de uma única tabela do dicionário e todas as colunas são selecionadas, então não é necessário criar exclusivamente o catálogo de campos. É suficiente mencionar o nome da tabela como parâmetro (I_structure name) no REUSE_ALV_LIST_DISPLAY. Mas em outros casos precisamos criá-lo.
Os parâmetros importantes são:
I. Exportar:
i. I_program_name: identificação do relatório
ii. I_internal_tabname: a tabela de saída interna
iii. I_inclname: incluir ou o nome do relatório onde todas as formas dinâmicas são tratadas.
II. Alterar
ct_fieldcat: uma tabela interna com o tipo SLIS_T_FIELDCAT_ALV que é
declarado no type pool SLIS.
C. REUSE_ALV_EVENTS_GET: Retorna uma tabela de eventos possíveis para um tipo de lista
Parâmetros:
I. Importar:
Et_Events: A tabela de eventos é retornada com todos os eventos de RETORNO possíveis
para o tipo de lista especificado (coluna 'NOME'). Para que os eventos sejam processados pelo Callback, seu campo 'FORMULÁRIO' deve estar preenchido. Se o campo estiver inicializado, o evento é ignorado. A entrada pode ser lida da tabela de eventos, o campo 'FORMULÁRIO' é preenchido e a entrada é modificada usando constantes do type pool SALV.
II. Exportar:
I_List_type:
0 = lista simples REUSE_ALV_LIST_DISPLAY
1 = lista hierárquica-sequencial REUSE_ALV_HIERSEQ_LIST_DISPLAY
2 = lista de bloco simples REUSE_ALV_BLOCK_LIST_APPEND
3 = lista de bloco hierárquica-sequencial
REUSE_ALV_BLOCK_LIST_HS_APPEND
D. REUSE_ALV_COMMENTARY_WRITE: Usado no evento Top-of-page para imprimir cabeçalhos e outros comentários da lista.
Parâmetros: