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

Índice:

Anonim

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á:

  • Relatório Simples
  • Relatório de Bloqueio
  • Relatórios Hierárquicos
  • Variantes de exibição

Cada um desses relatórios fornece módulos de função que ajudam a produzir a 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 a 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 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 blocos simples REUSE_ALV_BLOCK_LIST_APPEND
3 = lista de blocos sequencial-hierárquica REUSE_ALV_BLOCK_LIST_APPLAY
REUSE_ALV_GRID_DISPLAY
Uma nova função da versão ABAP4.6, para exibir os resultados em grade ao invés de uma prévia.
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 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 para a 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 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 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 a 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!