Relatórios ALV no Tutorial SAP - Visualizador de lista ABAP

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

Neste tutorial, você aprenderá:

Cada um desses relatórios fornece módulos de função que ajudam na produção de saída desejada sem muito esforço. Vamos examiná-los em detalhes -

Relatório Simples

Módulos de função importantes neste relatório são -

  • Reuse_alv_fieldcatalog_merge
  • Reuse_alv_list_display
  • Reuse_alv_events_get
  • Reuse_alv_grid_display
  • Reuse_alv_commentary_write

REUSE_ALV_FIELDCATALOG_MERGE

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

Se os dados de saída forem de uma única tabela de dicionário e todas as colunas forem selecionadas, não precisamos 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: Fieldcatalog pode ser preenchido manualmente também preenchendo todos os detalhes necessários na tabela interna

Os 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: inclui ou o nome do relatório onde todos os formulários dinâmicos são tratados.

2. Mudança

  • ct_fieldcat: uma tabela interna com o tipo SLIS_T_FIELDCAT_ALV que é declarada 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 os códigos de função são tratados.
  • I_structure name: nome da tabela de 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 devem ser impressos (esta tabela pode ser preenchida automaticamente pela função)
  • It_events: tabela interna com uma lista de todos os eventos possíveis de ALV e seus nomes de formulários correspondentes.

2. Tabelas:

  • uma. t_outtab: tabela interna com os dados a serem produzidos

REUSE_ALV_EVENTS_GET:

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

1. Importar:

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

2. Exportar:

I_list_type: 0 = lista simples REUSE_ALV_LIST_DISPLAY

1 = lista sequencial-hierárquica REUSE_ALV_HIERSEQ_LIST_DISPLAY

2 = lista de bloqueio simples REUSE_ALV_BLOCK_LIST_APPEND

3 = lista de blocos sequencial-hierárquica 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

Nota: A grade não pode lidar com grandes volumes. Funções como classificar, rolar para baixo consomem muitos recursos / tempo se o volume de dados a ser exibido for alto. Não há uma definição clara de forma que, se a quantidade de dados for X, vá para a lista ou grade, mas o desenvolvedor deve atender a 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 de início da página para imprimir os cabeçalhos e outros comentários da lista.

Parâmetros Importantes

  • It_list_commentary: Tabela interna com cabeçalhos 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 for 'S'.
  3. Info: o texto a ser impresso

Relatório de Bloqueio

Parece um relatório simples, mas tem os recursos de classificação e filtragem apenas. Esse 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, então vamos para o relatório de bloco de 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 gui padrão, 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 campo
  • I_tabname: nome da tabela interna com todos os eventos possíveis

2. Mesas:

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

REUSE_ALV_BLOCK_LIST_DISPLAY

Este módulo de função exibe a lista com 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 pedido de venda e detalhes do item. Aqui, os detalhes do pedido de venda podem ser os dados do cabeçalho, enquanto os itens no 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_events
  • I_tabname_header: Nome da tabela interna no programa que contém os dados de saída do nível de hierarquia 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 o cabeçalho e os nomes dos campos da tabela de itens que ligam as duas tabelas (chave compartilhada).

Mesas

  • t_outtab_header: Tabela de cabeçalho com dados a serem produzidos
  • 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 pool de tipos chamado SLIS. Esta tabela interna pode ser preenchida automaticamente usando REUSE_ALV_FIELDCATALOG_MERGE '.

Variantes de exibição

  • 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 a 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 a programação ABAP-ALV!