Beruflich Dokumente
Kultur Dokumente
Create PDF with PDF4U. If you wish to remove this line, please click here to purchase the full version
ALV(ABAP LIST VIEWER)
Introdução.................................................................................................................................... 3
O que é ALV?.............................................................................................................................. 3
Layouts dos Relatórios ALV:..................................................................................................... 4
ALV Hierárquico ................................................................................................................... 4
ALV List .................................................................................................................................. 5
ALV GRID ............................................................................................................................. 5
Montagem do ALV passo a passo.............................................................................................. 6
Grupo de tipos: ..................................................................................................................... 6
Variantes de exibição:......................................................................................................... 6
Seleção e preparação dos dados..................................................................................... 7
Configuração de saída do relatório ALV......................................................................... 7
Parâmetros gerais do Layout do relatório ................................................................. 7
Estrutura slis_layout_alv: ............................................................................................... 7
Detalhes Tela .................................................................................................................. 9
Criação de Grupos de Campos ........................................................................................ 9
Passo 9 - declarar uma estrutura do tipo slis_t_sp_group_alv.......................... 9
Passo 10 - Carregar esta tabela com os parâmetros necessários....................... 9
Estrutura tipo slis_t_sp_group_alv:.............................................................................. 9
Parâmetros de ordenação................................................................................................ 10
Estrutura tipo slis_t_sortinfo_alv: ............................................................................... 10
Parâmetros de cada campo em particular - slis_t_fieldcat_alv ............................... 11
Estrutura tipo slis_t_fieldcat_alv:................................................................................ 11
Definir cabeçalho (apenas para o grid) ......................................................................... 13
Somente para o hierárquico ............................................................................................ 14
Parâmetros de impressão ................................................................................................ 14
Seleção e tratamento dos Dados ................................................................................... 14
Passo 21 – Neste passo, carregamos a nossa tabela interna de saída com os dados
já processados para a exibição de nosso relatório. ................................................. 14
O Display do relatório........................................................................................................ 15
Para o LIST ..................................................................................................................... 16
Para o hierárquico.......................................................................................................... 16
Para o grid: ...................................................................................................................... 17
Tratamento de evento USER_COMMAND e criação de PF-STATUS.................. 17
Para PF-STATUS: ......................................................................................................... 18
Para user_command ..................................................................................................... 19
Tratamento de Botões:.................................................................................................. 19
Tratamento de Drill-Down:.......................................................................................... 19
Tratamento de Drill-Down disparando tela popup HTML:....................................... 20
PBO ........................................................................................................................... 21
PAI............................................................................................................................. 23
Adicionar Cores em células do ALV ....................................................................................... 24
1-Uma passando para o campo emphasize da fieldcat:........................................... 24
2-Colorindo células específicas ...................................................................................... 27
TOP-OF-PAGE no ALV Hierárquico ..................................................................................... 28
Página: 2
Create PDF with PDF4U. If you wish to remove this line, please click here to purchase the full version
ALV(ABAP LIST VIEWER)
Introdução
O objetivo deste material é passar para o consultor que o ALV não é um “bicho de sete
cabeças” e citar as principais dificuldades de um iniciante em ALV.
Existem 3 tipos de ALV que nós faremos neste curso: ALV LIST, ALV HIERARQUICO e
ALV GRID.
O que é ALV?
O Abap List Viewer (ALV) é uma ferramenta que padroniza e simplifica o uso de listas e
relatórios no sistema R/3 tanto para o desenvolvedor tanto para o usuário que interage com
o relatório.
Página: 3
Create PDF with PDF4U. If you wish to remove this line, please click here to purchase the full version
ALV(ABAP LIST VIEWER)
Página: 4
Create PDF with PDF4U. If you wish to remove this line, please click here to purchase the full version
ALV(ABAP LIST VIEWER)
ALV List
ALV GRID
Página: 5
Create PDF with PDF4U. If you wish to remove this line, please click here to purchase the full version
ALV(ABAP LIST VIEWER)
Montagem do ALV passo a passo
Grupo de tipos:
Passo 1 – é necessário a declaração do grupo de tipos SLIS onde de encontram os tipos
fundamentais para a saída de um relatório ALV.
Ex: type-pools: slis.
Variantes de exibição:
Mas a frente neste curso, veremos que o usuário poderá escolher as colunas que ele deseja
exibir em seu relatório e com isso salvá-los (na própria tela do relatório) com um nome
desejado. Chamamos de variantes de exibição em ALV, esses layouts (colunas desejadas)
que o usuário poderá salvar no relatório.
Passo 2 – Criar um parameter do tipo disvariant-variant .
Ex: parameters: p_vari like disvariant-variant. "Layout
Passo 3 – para o evento INITIALIZATION faremos a chamada de uma função que nos
retornará a variante default do relatório. Mas para isso precisaremos declarar algumas
estruturas do tipo disvariant (Variant.exibição) e variáveis no seguinte padrão:
variant_def(1) type c e variant_exit(1)type c.
Ex: clear variante.
repid = sy-repid.
variante-report = repid.
A função abaixo retornará a variante que foi salva como default na exibição do relatório
ALV. Lembrando que quando executamos o relatório pela primeira vez , não existe
variante default. Veremos depois que gerarmos nosso primeiro ALV, que quando
salvarmos uma variante de exibição existirá um flag chamado CONFIGURAÇÃO
PRELIMINAR, que sendo marcado quando salvamos estamos definindo
conseqüentemente esta variante como default do relatório.
call function 'REUSE_ALV_VARIANT_DEFAULT_GET'
exporting
i_save = ‘A’
changing
cs_variant = def_variante
exceptions
wrong_input = 1
not_found = 2
program_error = 3
others = 4.
if sy-subrc = 0.
p_vari = def_variante-variant.
endif.
Página: 6
Create PDF with PDF4U. If you wish to remove this line, please click here to purchase the full version
ALV(ABAP LIST VIEWER)
i_tabname_header = 'IT_SAIDA' “ Tabela interna saida
it_default_fieldcat = s_fieldcat[] “ Tabela de formatação
i_display_via_grid = 'X' “ Dispara POPUP em ALV
importing
e_exit = variant_exit “ Se não existir variante X
es_variant = def_variante “ Variante default
exceptions
not_found =1
program_error =2
others = 3.
if sy-subrc = 2.
message id sy-msgid type 'S' number sy-msgno
with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
else.
if variant_exit = space.
p_vari = def_variante-variant. “ Recebe variante escolhida
endif.
endif.
Passo 5 – Sabendo que existe a possibilidade do usuário entrar com uma variante de
exibição não existente, usaremos em todos os nossos relatórios ALV uma função que
checará se a mesma existe. No evento at selection-screen faremos esta “Receita de bolo”:
if not p_vari is initial.
variante = def_variante.
else.
clear variante.
variante-report = repid.
endif.
Estrutura slis_layout_alv:
Campo Descrição Valores propostos
Parâmetros Gerais
Página: 7
Create PDF with PDF4U. If you wish to remove this line, please click here to purchase the full version
ALV(ABAP LIST VIEWER)
no_colhead Sem Títulos (Cabeçalho)
no_hotspot Títulos sem Hotspot
no_vline Colunas separadas por espaços
Zebra Listrado (Uma linha clara outra X
escura)
Reprep
no_keyfix Não fixar coluna chave
Expand_all Expandir todas as posições
no_author Nenhuma verificação padrão da
autoridade
PF-status
def_status Status Default
item_text
Opções de Display
Colwidth_optimize Largura otimizada das colunas X
no_min_linesize Tamanho da linha = tamanho da
lista
min_linesize Default 80
max_linesize Default 250
Window_titlebar Título na barra de títulos ‘Titulo do relatório’
no_uline_hs
Exceções
lights_fieldname Nome do campo para exceção
lights_tabname Nome da tabela para exceção
lights_rollname
lights_condense
Somatórios
no_sumchoice Sem escolha para Somar para
cima
no_totalline Sem Total Linha
no_subchoice
no_subtotals Sem Sub-Total
no_unit_splitting
totals_before_items Mostrar total antes dos itens
totals_only Mostrar somente os totais
a
totals_text Texto para a 1 . coluna na linha
de total
a
Subtotals_text Texto para a 1 . coluna na linha
de Sub-total
Interações
box_fieldname Nome do Campo que foi ‘BOX’ Supondo que na
declarado como like nossa tabela interna o
ptrv_approval-box para campo se chame box
Checkbox na tabela interna
box_tabname Nome da tabela interna que ‘tab_int’
contem o campo box
box_rollname
Expand_fieldname
Hotspot_fieldname Nome do Campo para Hotspot
confirmation_prompt Confirmar Saída da lista
key_hotspot keys as hotspot " K_KEYHOT
flexible_key Mover as colunas chaves
group_buttons Grupo de Botões
get_selinfos Ler tela de seleção X
group_change_edit Settings by user for new group
no_scrolling Sem movimentar tela
Página: 8
Create PDF with PDF4U. If you wish to remove this line, please click here to purchase the full version
ALV(ABAP LIST VIEWER)
Detalhes Tela
detail_popup Mostrar detalhes em nova X
janela
detail_initial_lines Todos os campos em detalhes X
detail_titlebar Título para tela de detalhes
Mostar Variantes
header_text Texto para o botão
default_item
Cores
info_fieldname
Coltab_fieldname Nome do campo que conterá as
cores das células
Outros
list_append Sem chamada de tela
Xifunckey Extended interaction(SAPQuery)
Xidirect Extended
INTeraction(SAPQuery)
dtc_layout Configuração de layout para
Tabstrip
Campo Descrição
sp_group Nome do campo
text Descrição dos grupos
Página: 9
Create PDF with PDF4U. If you wish to remove this line, please click here to purchase the full version
ALV(ABAP LIST VIEWER)
Parâmetros de ordenação
Página: 10
Create PDF with PDF4U. If you wish to remove this line, please click here to purchase the full version
ALV(ABAP LIST VIEWER)
Expa Expandir
Obligatory Campo obrigatório
Agora, nós veremos os campos de nossa tabela interna de saída que desejamos que sejam
disparados no relatório. A estrutura slis_t_fieldcat_alv determina o modo de apresentação
campo a campo a nossa tabela interna de saída.
Página: 11
Create PDF with PDF4U. If you wish to remove this line, please click here to purchase the full version
ALV(ABAP LIST VIEWER)
no_sign Sem sinal
no_zero Não imprimir campos zerados
no_convext
edit_mask Máscara de Edição
Emphasize Campo em destaque C300
fix_column Fixar Coluna Passando ‘X’
do_sum Totalizar Coluna Exibir total geral do relatório.
no_out Não exibir o campo Quando passamos ‘x’ para
este campo,este campo da
tabela interna estará
disponível somente após o
clique do botão modificar
layout.
Tech
outputlen Tamanho do campo para Largura do campo na saída do
saída dos dados relatório.
Offset
seltext_l Descrição Longa do Campo String de 40 no cabeçalho . O
ref_tabname precisa estar
vazio.
seltext_m Descrição Média do Campo String de 20 no cabeçalho . O
ref_tabname precisa estar
vazio
seltext_s Descrição Curta do Campo String de 10 no cabeçalho . O
ref_tabname precisa estar
vazio
Ddictxt Indicação de Qual descrição Trás do elemento de dados
utilizar - (S)hort (M)iddle do fieldname da ref_tabname
(L)ong as denominações
breve(S),média(M) e longa(L)
respectivamente
Página: 12
Create PDF with PDF4U. If you wish to remove this line, please click here to purchase the full version
ALV(ABAP LIST VIEWER)
Definir cabeçalho (apenas para o grid)
clear ls_line.
ls_line-typ = 'S'.
ls_line-key = 'Aspen RJ'.
ls_line-info = 'Treinamento ALV'.
append ls_line to p_s_top.
clear ls_line.
ls_line-typ = 'A'.
ls_line-key = 'Aspen RJ'.
ls_line-info = 'Treinamento ALV'.
append ls_line to p_s_top.
Endform.
Passo 17 - form top_of_page .O nome deste form será passada para a função de impressão
do ALV.
Página: 13
Create PDF with PDF4U. If you wish to remove this line, please click here to purchase the full version
ALV(ABAP LIST VIEWER)
call function 'REUSE_ALV_COMMENTARY_WRITE'
exporting
it_list_commentary = s_top
i_logo = 'ALVFIGURA'.
Parâmetros de impressão
Campo Descrição
prnt_info Informações de Impressão
Print
prnt_title
no_coverpage
no_new_page
reserve_lines Linhas reservadas para o final da página
no_print_listinfos Não imprimir página com número de registros
selecionados
no_change_print_params Não alterar tamanho de linha
no_print_selinfos Não mostrar informações de impressão
Passo 21 – Neste passo, carregamos a nossa tabela interna de saída com os dados já
processados para a exibição de nosso relatório.
Página: 14
Create PDF with PDF4U. If you wish to remove this line, please click here to purchase the full version
ALV(ABAP LIST VIEWER)
O Display do relatório
Página: 15
Create PDF with PDF4U. If you wish to remove this line, please click here to purchase the full version
ALV(ABAP LIST VIEWER)
Passo 22 – Utilizar uma das funções de ALV para saída de nosso relatório.
Para o LIST
Para o hierárquico
Página: 16
Create PDF with PDF4U. If you wish to remove this line, please click here to purchase the full version
ALV(ABAP LIST VIEWER)
Para o grid:
endif.
Página: 17
Create PDF with PDF4U. If you wish to remove this line, please click here to purchase the full version
ALV(ABAP LIST VIEWER)
Para PF-STATUS:
Para criação do pf-status, nós iremos repetir alguns botões que vinham através das funções.
Para que esses botões continuem não precisando de tratamento é necessário que se saiba o
nome da função standard de cada botão.Abaixo temos a relação.
Página: 18
Create PDF with PDF4U. If you wish to remove this line, please click here to purchase the full version
ALV(ABAP LIST VIEWER)
&VEXCEL Microsoft Excel
Uma outra forma de adquirir o nome destas funções é com os procedimentos abaixo:
1. Pressionar o botão esquerdo do mouse encima do botão;
2. Pressionar a tecla F1;
3. Soltar o botão esquerdo do mouse.
Passo 24 – Declaração de uma estrutura do tipo slis_selfield para o Drill Down e uma
variável do tipo sy-ucomm.
Ex: s_selfield type slis_selfield.
V_ucomm like sy-ucomm.
Para user_command
Passo 25 – Para tratamento destes botões e drill down vamos criar um PERFORM USER_
COMMAND como modelo abaixo:
Ex: perform user_command using v_ucomm
s_selfield.
E o form:
Ex: form user_command using p_v_ucomm
p_s_selfield type slis_selfield.
Tratamento de Botões:
Ex:
Case p_v_ucomm.
When ‘BOTÃO1’.
Commandos;
When ‘BOTÃO2.
Comandos;
Endcase.
Tratamento de Drill-Down:
Ex:
case p_s_selfield-sel_tab_field.
When ‘tab_int-campo1’.
Para ler linha do clique.
Read table tab_int index p_s_selfield-tabindex.
Valor da célula do clique
set parameter id 'ALV' field p_s_selfield-value.
call transaction 'ALV' and skip first screen.
Página: 19
Create PDF with PDF4U. If you wish to remove this line, please click here to purchase the full version
ALV(ABAP LIST VIEWER)
When ‘tab_int-campo2’.
Comandos;
Endcase.
Ex:
case p_s_selfield-sel_tab_field.
When ‘tab_int-campo1’.
Página: 20
Create PDF with PDF4U. If you wish to remove this line, please click here to purchase the full version
ALV(ABAP LIST VIEWER)
PBO
MODULE status_0100 OUTPUT.
SET PF-STATUS '0100'.
SET TITLEBAR 'teste'.
Página: 21
Create PDF with PDF4U. If you wish to remove this line, please click here to purchase the full version
ALV(ABAP LIST VIEWER)
module gera_objeto output.
container_name = p_container.
Endform.
CLEAR : t_html.
REFRESH : t_html.
* start HTML;
Página: 22
Create PDF with PDF4U. If you wish to remove this line, please click here to purchase the full version
ALV(ABAP LIST VIEWER)
* Finalizando página
DATA : v_doc_url(80).
OTHERS = 4
.
PAI
ENDFORM.
SET SCREEN 0.
LEAVE SCREEN.
ENDMODULE.
Página: 23
Create PDF with PDF4U. If you wish to remove this line, please click here to purchase the full version
ALV(ABAP LIST VIEWER)
C100,C101 e C110
Página: 24
Create PDF with PDF4U. If you wish to remove this line, please click here to purchase the full version
ALV(ABAP LIST VIEWER)
C200,C201 e 210
C300,C301 e C310
C400,C401 e C410
Página: 25
Create PDF with PDF4U. If you wish to remove this line, please click here to purchase the full version
ALV(ABAP LIST VIEWER)
C500,C501 e C510
C600,C601 e C610
C700,C701 e C710
Página: 26
Create PDF with PDF4U. If you wish to remove this line, please click here to purchase the full version
ALV(ABAP LIST VIEWER)
Passo2: Criar uma tabela interna de mesmo tipo com header line.
EX: data: gt_color type lvc_t_scol with header line.
Página: 27
Create PDF with PDF4U. If you wish to remove this line, please click here to purchase the full version
ALV(ABAP LIST VIEWER)
append gt_color.
t_saida-colinfo[] = gt_color[].
modify t_saida.
Endloop.
FORM f_evento.
t_headerline-name = 'TOP_OF_PAGE'.
t_headerline-form = 'TOP_OF_PAGE'.
APPEND t_headerline TO t_eventos.
ENDFORM.
NEW-LINE NO-SCROLLING.
WRITE: sy-uline(66).
SKIP.
Página: 28
Create PDF with PDF4U. If you wish to remove this line, please click here to purchase the full version
ALV(ABAP LIST VIEWER)
Página: 29
Create PDF with PDF4U. If you wish to remove this line, please click here to purchase the full version