Relatórios ALV em SAP Tutorial – Visualizador de lista ABAP

Os recursos comuns desejados de qualquer relatório são “alinhamento de colunas”, classificação, filtragem, subtotais, totais, etc. Para implementá-los do zero, é necessário fazer muito esforço de codificação. Para evitar isso podemos usar um conceito chamado ABAP List Viewer (ALV).

Cada um desses relatórios fornece módulos de função que ajudam na produção do resultado desejado sem muito esforço. Vamos examiná-los em detalhes –

Relatório Simples

Módulos de função importantes nestes está -

  • Reuse_alv_fieldcatalog_merge
  • Reuse_alv_list_display
  • Reuse_alv_events_get
  • Reuse_alv_grid_display
  • Reutilizar_alv_commentary_write

REUSE_ALV_FIELDCATALOG_MERGE

Este módulo de função é utilizado para preencher um catálogo de campos que é essencial para exibir os dados no ALV.

Se os dados de saída vierem de uma única tabela de dicionário e todas as colunas estiverem selecionadas, não precisaremos criar exclusivamente o catálogo de campos. Basta mencionar o nome da tabela como parâmetro (I_structure_name) no REUSE_ALV_LIST_DISPLAY. Mas em outros casos precisamos criá-lo.

Nota: O Fieldcatalog também pode ser preenchido manualmente preenchendo todos os detalhes necessários na tabela interna

Parâmetros importantes são:

1. Exportar:

  • I_program_name: ID do relatório
  • I_internal_tabname: a tabela de saída interna
  • I_inclname : include ou o nome do relatório onde todos os formulários dinâmicos são tratados.

2. Mudança

  • ct_fieldcat: um mesa interna com o tipo SLIS_T_FIELDCAT_ALV que é declarado no pool de tipos SLIS.

REUSE_ALV_LIST_DISPLAY

Este é o módulo de função que imprime os dados.

Os parâmetros importantes são:

1. Exportar:

  • I_callback_program: ID do relatório
  • I_bypassing_buffer: 'X'
  • I_buffer_active: ' '
  • 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.
  • I_callback_user_command : rotina onde são tratados os códigos de função.
  • I_estrutura nome: nome da tabela do dicionário
  • Is_Layout : estrutura para definir o layout do relatório
  • It_fieldcat : tabela interna com a lista de todos os campos e seus atributos que serão impressos (esta tabela pode ser preenchida automaticamente pela função)
  • It_events : tabela interna com uma lista de todos os eventos possíveis do ALV e seus nomes de formulário correspondentes.

2. Tabelas:

  • a. t_outtab: tabela interna com os dados a serem gerados

REUSE_ALV_EVENTS_GET:

Retorna tabela de eventos possíveis para um tipo de lista

1. Importação:

Et_Events :A tabela de eventos é retornada com todos os eventos CALLBACK possíveis para o tipo de lista especificado (coluna 'NOME'). Para que os eventos sejam processados ​​pelo Callback, o seu campo ‘FORM’ deverá ser preenchido. Se o campo for inicializado, o evento será ignorado. A entrada pode ser lida a partir da tabela de eventos, o campo 'FORM' preenchido e a entrada modificada utilizando constantes do tipo pool SLIS.

2. Exportar:

I_list_type: 0 = lista simples REUSE_ALV_LIST_DISPLAY

1 = lista hierárquico-sequencial REUSE_ALV_HIERSEQ_LIST_DISPLAY

2 = lista de bloqueio simples REUSE_ALV_BLOCK_LIST_APPEND

3 = lista de bloqueios sequencial hierárquico REUSE_ALV_BLOCK_LIST_HS_APPEND

REUSE_ALV_GRID_DISPLAY

Uma nova função da versão ABAP4.6, para exibir os resultados em grade ao invés de uma visualização.

Parâmetros: iguais a reuse_alv_list_display

Observação: o Grid não consegue lidar com grandes volumes. Funções como ordenar, rolar para baixo consomem muitos recursos/tempo se o volume de dados a serem exibidos for alto. Não existe uma definição clara de que, se a quantidade de dados for X, vá para lista ou grade, mas o desenvolvedor deve atender uma chamada com base em sua experiência. Se não tiver certeza, a lista é a melhor opção

REUSE_ALV_COMMENTARY_WRITE

Isso é usado no evento Topo da página para imprimir os títulos e outros comentários da lista.

Parâmetros Importantes

  • It_list_commentary: Tabela interna com os títulos do tipo slis_t_listheader.

Esta tabela interna possui três campos:

  1. Tipo: 'H' – cabeçalho, 'S' – seleção, 'A' – ação
  2. Chave: somente quando typ é 'S'.
  3. Info: o texto a ser impresso

Relatório de bloqueio

Parece um relatório simples, mas possui apenas recursos de classificação e filtragem. Este relatório é usado se você precisar exibir mais de um relatório na saída. Tecnicamente falando, se você tiver várias tabelas internas com dados a serem exibidos como blocos separados, optaremos pelo relatório de bloco do ALV.

As funções importantes usadas para criar este relatório são:

  • REUSE_ALV_BLOCK_LIST_INIT
  • REUSE_ALV_BLOCK_LIST_APPEND
  • REUSE_ALV_BLOCK_LIST_DISPLAY

REUSE_ALV_BLOCK_LIST_INIT

Este módulo de função é usado para definir o status padrão da GUI, etc. Os parâmetros são semelhantes aos usados ​​em reuse_alv_list_display ou reuse_alv_grid_display

REUSE_ALV_BLOCK_LIST_APPEND

Este módulo de função adiciona os dados ao bloco.

Parâmetros Importantes

1.Exportar:

  • is_layout: configurações de layout para bloco
  • it_fieldcat: catálogo de campos
  • I_tabname: nome da tabela interna com todos os eventos possíveis

2. Tabelas:

  • t_outtab: tabela interna com dados de saída.

REUSE_ALV_BLOCK_LIST_DISPLAY

Este módulo de função exibe a lista com os dados anexados pela função acima.

Parâmetros: Todos os parâmetros são opcionais.

Relatórios Hierárquicos

A exibição hierárquica é usada para exibir dados relacionados. Como pedidos de vendas e detalhes do item. Aqui, os detalhes do pedido de venda podem ser os dados do cabeçalho, enquanto os itens do pedido de venda podem ser os dados do item

O módulo de função usado para isso é

REUSE_ALV_HIERSEQ_LIST_DISPLAY

Exportar:

  • I_CALLBACK_PROGRAM
  • I_CALLBACK_PF_STATUS_SET
  • I_CALLBACK_USER_COMMAND
  • IS_LAYOUT
  • It_fieldcat
  • It_eventos
  • I_tabname_header: Nome da tabela interna do programa que contém os dados de saída do nível hierárquico mais alto.
  • I_tabname_item: Nome da tabela interna do programa que contém os dados de saída do nível hierárquico mais baixo.
  • Is_keyinfo: Esta estrutura contém os nomes dos campos do cabeçalho e da tabela de itens que vinculam as duas tabelas (chave compartilhada).

Tabelas

  • t_outtab_header: Tabela de cabeçalho com dados a serem gerados
  • t_outtab_item: Nome da tabela interna do programa que contém os dados de saída do nível hierárquico mais baixo.

Todas as definições de tabelas internas, estruturas e constantes são declaradas em um type-pool chamado SLIS. Esta tabela interna pode ser preenchida automaticamente usando REUSE_ALV_FIELDCATALOG_MERGE'.

Variantes de exibição

  • As variantes de exibição são usadas para definir as propriedades padrão de uma saída alv, como critérios de classificação, critérios de filtragem, totalização e subtotalização, etc.
  • As variantes de exibição podem ser específicas do usuário e padrão (as variantes padrão podem ser usadas por qualquer usuário)
  • O tipo de variantes de exibição que podem ser salvas é controlado pelo parâmetro i_save que é passado nos módulos de função reuse_alv_list_display / reuse_alv_grid_display
  • Você pode fornecer uma opção na tela de seleção para selecionar qual variante de exibição será usada

Os módulos de função comuns relacionados à seleção/validação de variantes de exibição são

  1. Reuse_alv_variant_default_get
  2. Reuse_alv_variant_f4
  3. Reuse_alv_variant_existence

Isso é tudo para ABAP – Programação ALV!