+ All Categories
Home > Documents > ALV - Treinamento 2004

ALV - Treinamento 2004

Date post: 28-Jun-2015
Category:
Upload: giovanacmarques
View: 1,262 times
Download: 2 times
Share this document with a friend
Popular Tags:
29
ALV(ABAP LIST VIEWER) Por Osmar Antunes de Araújo Júnior Aspen/RJ Create PDF with PDF4U. If you wish to remove this line, please click here to purchase the full version
Transcript
Page 1: ALV - Treinamento 2004

ALV(ABAP LIST VIEWER)Por Osmar Antunes de Araújo Júnior

Aspen/RJ

Create PDF with PDF4U. If you wish to remove this line, please click here to purchase the full version

Page 2: ALV - Treinamento 2004

ALV(ABAP LIST VIEWER)

Página: 2

Introdução.................................................................................................................................... 3O que é ALV?.............................................................................................................................. 3Layouts dos Relatórios ALV:..................................................................................................... 4

ALV Hierárquico ................................................................................................................... 4ALV List .................................................................................................................................. 5ALV GRID ............................................................................................................................. 5

Montagem do ALV passo a passo.............................................................................................. 6Grupo de tipos: ..................................................................................................................... 6Variantes de exibição:......................................................................................................... 6Seleção e preparação dos dados..................................................................................... 7Configuração de saída do relatório ALV......................................................................... 7

Parâmetros gerais do Layout do relatório ................................................................. 7Estrutura slis_layout_alv: ............................................................................................... 7

Detalhes Tela .................................................................................................................. 9Criação de Grupos de Campos ........................................................................................ 9

Passo 9 - declarar uma estrutura do tipo slis_t_sp_group_alv .......................... 9Passo 10 - Carregar esta tabela com os parâmetros necessários. ...................... 9

Estrutura tipo slis_t_sp_group_alv:.............................................................................. 9Parâmetros de ordenação................................................................................................ 10

Estrutura tipo slis_t_sortinfo_alv: ............................................................................... 10Parâmetros de cada campo em particular - slis_t_fieldcat_alv ............................... 11

Estrutura tipo slis_t_fieldcat_alv:................................................................................ 11Definir cabeçalho (apenas para o grid) ......................................................................... 13Somente para o hierárquico ............................................................................................ 14Parâmetros de impressão ................................................................................................ 14Seleção e tratamento dos Dados ................................................................................... 14

Passo 21 – Neste passo, carregamos a nossa tabela interna de saída com os dadosjá processados para a exibição de nosso relatório. ................................................. 14

O Display do relatório ........................................................................................................ 15Para o LIST ..................................................................................................................... 16Para o hierárquico.......................................................................................................... 16Para o grid: ...................................................................................................................... 17

Tratamento de evento USER_COMMAND e criação de PF-STATUS.................. 17Para PF-STATUS: ......................................................................................................... 18Para user_command ..................................................................................................... 19

Tratamento de Botões:.................................................................................................. 19Tratamento de Drill-Down:.......................................................................................... 19Tratamento de Drill-Down disparando tela popup HTML:....................................... 20

PBO ........................................................................................................................... 21PAI............................................................................................................................. 23

Adicionar Cores em células do ALV....................................................................................... 241-Uma passando para o campo emphasize da fieldcat:........................................... 242-Colorindo células específicas ...................................................................................... 27

TOP-OF-PAGE no ALV Hierárquico ..................................................................................... 28

Create PDF with PDF4U. If you wish to remove this line, please click here to purchase the full version

Page 3: ALV - Treinamento 2004

ALV(ABAP LIST VIEWER)

Página: 3

Introdução

O objetivo deste material é passar para o consultor que o ALV não é um “bicho de setecabeç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 eALV GRID.

O que é ALV?

O Abap List Viewer (ALV) é uma ferramenta que padroniza e simplifica o uso de listas erelatórios no sistema R/3 tanto para o desenvolvedor tanto para o usuário que interage como relatório.

O ALV através de suas funções e estruturas torna o desenvolvimento mais simples namedida que economiza significativas linhas de código como por exemplo no tratamento dequebras, totais, subtotais, cores e outras vantagens que veremos a seguir.

Create PDF with PDF4U. If you wish to remove this line, please click here to purchase the full version

Page 4: ALV - Treinamento 2004

ALV(ABAP LIST VIEWER)

Página: 4

Layouts dos Relatórios ALV:ALV Hierárquico

Create PDF with PDF4U. If you wish to remove this line, please click here to purchase the full version

Page 5: ALV - Treinamento 2004

ALV(ABAP LIST VIEWER)

Página: 5

ALV List

ALV GRID

Create PDF with PDF4U. If you wish to remove this line, please click here to purchase the full version

Page 6: ALV - Treinamento 2004

ALV(ABAP LIST VIEWER)

Página: 6

Montagem do ALV passo a passoGrupo de tipos:Passo 1 – é necessário a declaração do grupo de tipos SLIS onde de encontram os tiposfundamentais 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 desejaexibir em seu relatório e com isso salvá-los (na própria tela do relatório) com um nomedesejado. 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. "LayoutPasso 3 – para o evento INITIALIZATION faremos a chamada de uma função que nosretornará a variante default do relatório. Mas para isso precisaremos declarar algumasestruturas 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.

* Buscar variante defaultdef_variante = variante.

A função abaixo retornará a variante que foi salva como default na exibição do relatórioALV. Lembrando que quando executamos o relatório pela primeira vez , não existevariante default. Veremos depois que gerarmos nosso primeiro ALV, que quandosalvarmos uma variante de exibição existirá um flag chamado CONFIGURAÇÃOPRELIMINAR, que sendo marcado quando salvamos estamos definindoconseqüentemente esta variante como default do relatório.call function 'REUSE_ALV_VARIANT_DEFAULT_GET'

exportingi_save = ‘A’

changingcs_variant = def_variante

exceptionswrong_input = 1not_found = 2program_error = 3others = 4.

if sy-subrc = 0.p_vari = def_variante-variant.

endif.

Passo4 – Matchcode do campo de variante de exibição. É simples, basta no evento AtSelection-Screen On Value-Request fazer:call function 'REUSE_ALV_VARIANT_F4'

exportingis_variant = variante “ Report com asi_save = ‘A’ “ Variantes Salvas

Create PDF with PDF4U. If you wish to remove this line, please click here to purchase the full version

Page 7: ALV - Treinamento 2004

ALV(ABAP LIST VIEWER)

Página: 7

i_tabname_header = 'IT_SAIDA' “ Tabela interna saidait_default_fieldcat = s_fieldcat[] “ Tabela de formataçãoi_display_via_grid = 'X' “ Dispara POPUP em ALV

importinge_exit = variant_exit “ Se não existir variante Xes_variant = def_variante “ Variante default

exceptionsnot_found = 1program_error = 2others = 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 deexibição não existente, usaremos em todos os nossos relatórios ALV uma função quechecará se a mesma existe. No evento at selection-screen faremos esta “Receita de bolo”:

if not p_vari is initial.

def_variante = variante. “ Nome do reportdef_variante-variant = p_vari. “ O que foi digitadocall function 'REUSE_ALV_VARIANT_EXISTENCE'

exportingi_save = ‘A’

changingcs_variant = def_variante.

variante = def_variante.else.

clear variante.variante-report = repid.

endif.

Seleção e preparação dos dados

Passo 6 – Seleção e preparação dos dados.

Configuração de saída do relatório ALVParâmetros gerais do Layout do relatórioPasso7 – declarar uma estrutura do tipo slis_layout_alv.Ex: s_layout type slis_layout_alv.Passo8 – Abaixo passar os campos fundamentais e mais utilizados em programas decliente.Ex: S_layout-box_fieldname = 'BOX'. "campo checkbox p/tab_saida

S_layout-get_selinfos = 'X'. “Mostrar tela de seleção”.S_layout-detail_popup = 'X'. “Mostrar detalhe via popup”.S_layout-detail_initial_lines = 'X'. “Todos os campos em detalhes”.S_layout-zebra = 'X'. “Cor sim / cor não”.S_layout-colwidth_optimize = 'X'. “Otimização de largura de colunas

Estrutura slis_layout_alv:Campo Descrição Valores propostosParâmetros Gerais

Create PDF with PDF4U. If you wish to remove this line, please click here to purchase the full version

Page 8: ALV - Treinamento 2004

ALV(ABAP LIST VIEWER)

Página: 8

no_colhead Sem Títulos (Cabeçalho)no_hotspot Títulos sem Hotspotno_vline Colunas separadas por espaçosZebra Listrado (Uma linha clara outra

escura)X

Reprepno_keyfix Não fixar coluna chaveExpand_all Expandir todas as posiçõesno_author Nenhuma verificação padrão da

autoridadePF-statusdef_status Status Defaultitem_textOpções de DisplayColwidth_optimize Largura otimizada das colunas Xno_min_linesize Tamanho da linha = tamanho da

listamin_linesize Default 80max_linesize Default 250Window_titlebar Título na barra de títulos ‘Titulo do relatório’no_uline_hsExceçõeslights_fieldname Nome do campo para exceçãolights_tabname Nome da tabela para exceçãolights_rollnamelights_condenseSomatóriosno_sumchoice Sem escolha para Somar para

cimano_totalline Sem Total Linhano_subchoiceno_subtotals Sem Sub-Totalno_unit_splittingtotals_before_items Mostrar total antes dos itenstotals_only Mostrar somente os totaistotals_text Texto para a 1a. coluna na linha

de totalSubtotals_text Texto para a 1a. coluna na linha

de Sub-totalInteraçõesbox_fieldname Nome do Campo que foi

declarado como likeptrv_approval-box paraCheckbox na tabela interna

‘BOX’ Supondo que nanossa tabela interna ocampo se chame box

box_tabname Nome da tabela interna quecontem o campo box

‘tab_int’

box_rollnameExpand_fieldnameHotspot_fieldname Nome do Campo para Hotspotconfirmation_prompt Confirmar Saída da listakey_hotspot keys as hotspot " K_KEYHOTflexible_key Mover as colunas chavesgroup_buttons Grupo de Botõesget_selinfos Ler tela de seleção Xgroup_change_edit Settings by user for new groupno_scrolling Sem movimentar tela

Create PDF with PDF4U. If you wish to remove this line, please click here to purchase the full version

Page 9: ALV - Treinamento 2004

ALV(ABAP LIST VIEWER)

Página: 9

Detalhes Teladetail_popup Mostrar detalhes em nova

janelaX

detail_initial_lines Todos os campos em detalhes Xdetail_titlebar Título para tela de detalhesMostar Variantesheader_text Texto para o botãodefault_itemCoresinfo_fieldnameColtab_fieldname Nome do campo que conterá as

cores das célulasOutroslist_append Sem chamada de telaXifunckey Extended interaction(SAPQuery)Xidirect Extended

INTeraction(SAPQuery)dtc_layout Configuração de layout para

Tabstrip

Criação de Grupos de CamposNão é fundamental a criação de grupos de campos, mas facilita ao usuário na hora deescolher os campos de exibição após o clique do botão MODIFICAR LAYOUT . Várioscampos da fieldcat podem ser definidos para um mesmo grupo de campo.Veremos mais afrente como atribuir um campo a um grupo de campo.Passo 9 - declarar uma estrutura do tipo slis_t_sp_group_alvEx: s_grupos type slis_t_sp_group_alv with header line.Passo 10 - Carregar esta tabela com os parâmetros necessários.Ex: move: 'Moeda' to s_grupos-sp_group,

'Campos moeda' to s_grupos-text.append s_grupos.

Estrutura tipo slis_t_sp_group_alv:

Campo Descriçãosp_group Nome do campotext Descrição dos grupos

Create PDF with PDF4U. If you wish to remove this line, please click here to purchase the full version

Page 10: ALV - Treinamento 2004

ALV(ABAP LIST VIEWER)

Página: 10

Parâmetros de ordenação

Passo 11 – declarar uma estrutura do tipo slis_t_sortinfo_alv.Ex: s_sort type slis_t_sortinfo_alv with header line.

Passo 12 - Abaixo carregar os campos necessários e mais utilizados em programas decliente.Ex:clear s_sort.

s_sort-up = 'X'. “Ordenação crescentes_sort-fieldname = 'campo pelo qual queremos ordenar da Tabela interna de

saída'.s_sort-tabname = 'Tabela interna de saída'.s_sort-spos = '1'. “Prioridade de ordenaçãoappend s_sort.

Estrutura tipo slis_t_sortinfo_alv:

Campo Descrição ValoresSpos Seqüência de Ordenação Prioridade de ordenaçãofieldname Nome do campo Campo da tab.interna de

saídaTabname Nome da tabela a qual

pertence o campoTabela interna de saída domesmo.

Up Ordenação Menor para MaiorDown Ordenação Maior para MenorGroup Grupo de camposSubtot Gerar Sub TotalComp Comprimir

Create PDF with PDF4U. If you wish to remove this line, please click here to purchase the full version

Page 11: ALV - Treinamento 2004

ALV(ABAP LIST VIEWER)

Página: 11

Expa ExpandirObligatory Campo obrigatório

OBS.:Na tabela it_sort(que é passada como parametro da funçãoREUSE_ALV_LIST_DISPLAY), coloque * no campo group no registro que desejafazer a quebra de página. Para traçar um uline invés da quebra de páginacoloque UL no campo group.

Parâmetros de cada campo em particular - slis_t_fieldcat_alv

Agora, nós veremos os campos de nossa tabela interna de saída que desejamos que sejamdisparados no relatório. A estrutura slis_t_fieldcat_alv determina o modo de apresentaçãocampo a campo a nossa tabela interna de saída.

Passo 13 – declarar estrutura do tipo slis_t_fieldcat_alv with header line.Ex: data: s_fieldcat type slis_t_fieldcat_alv with header line.

Passo 14 – abaixo estão em detalhes os campos da s_fielcat fundamentais.Ex: clear s_fieldcat.

s_fieldcat-fieldname = 'EBELN'.s_fieldcat-tabname = 'IT_SAIDA'.s_fieldcat-ref_fieldname = ‘EBELN’.s_fieldcat-ref_tabname = ‘EKKO’.s_fieldcat-key = ‘X’.append s_fieldcat.

Estrutura tipo slis_t_fieldcat_alv:

Campo Descrição DefiniçõesRow_pos Saída na linha (1,2,3,...)Col_pos Posição da colunaFieldname Nome do campo na tab_intTabname Nome da tabela internaCurrency Moedacfieldname Campo com Unidade de MoedaCtabname Tabela referência para Unidade

MoedaIfieldname initial columnQuantity Unidade de Medidaqfieldname Campo com Unidade MedidaQtabname Tabela com Unidade MedidaRound Arredondar CampoExponent Expoente para floatsKey Campo como ChaveIcon Campo como ÍconeSymbol Campo como SímboloCheckbox Campo como Checkbox Este campo é marcado em

tempo de execução natabela interna. Precisamosinformar apenas em ALVHierarquico na i_tab deitens

Just Alinhamento – R (Direita) L(Esquerda) C (Centralizado)

Lzero Leading zero Omitir zeros em impressãode relatório

Create PDF with PDF4U. If you wish to remove this line, please click here to purchase the full version

Page 12: ALV - Treinamento 2004

ALV(ABAP LIST VIEWER)

Página: 12

no_sign Sem sinalno_zero Não imprimir campos zeradosno_convextedit_mask Máscara de EdiçãoEmphasize Campo em destaque C300fix_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 databela interna estarádisponível somente após oclique do botão modificarlayout.

Techoutputlen Tamanho do campo para

saída dos dadosLargura do campo na saída dorelatório.

Offsetseltext_l Descrição Longa do Campo String de 40 no cabeçalho . O

ref_tabname precisa estarvazio.

seltext_m Descrição Média do Campo String de 20 no cabeçalho . Oref_tabname precisa estarvazio

seltext_s Descrição Curta do Campo String de 10 no cabeçalho . Oref_tabname precisa estarvazio

Ddictxt Indicação de Qual descriçãoutilizar - (S)hort (M)iddle(L)ong

Trás do elemento de dadosdo fieldname da ref_tabnameas denominaçõesbreve(S),média(M) e longa(L)respectivamente

rollname Elemento de dados para helpDatatype Tipo do CampoInttype Tipo do CampoIntlen Tamanho do CampoLowercase Letra Minúscularef_fieldname Campo referênciaref_tabname Tabela referênciaRoundfieldname Nome campo para

ArredondamentoRoundtabname Nome tabelaDecimalsfieldname Nome campo para DecimaisDecimalstabname Nome tabeladecimals_out Número de decimais para

escrever um númerotext_fieldnamereptext_ddic Texto para a colunaddic_outputlen Tamanho do Campokey_sel field not obligatoryno_sum Não totalizar o camposp_group Grupo Em qual grupo de campo será

enquadrado este campo.ReprepInput Campo como input de dadosEdit Uso internoHotspot Campo como hotspot

Create PDF with PDF4U. If you wish to remove this line, please click here to purchase the full version

Page 13: ALV - Treinamento 2004

ALV(ABAP LIST VIEWER)

Página: 13

Definir cabeçalho (apenas para o grid)

Passo 15 – Declarar a estrutura do tipo slis_t_listheader.Ex: data : s_top type slis_t_listheader .

Passo 16 – Perform zf_top using s_top.No form codificaremos como abaixo:form zf_top using p_s_top type slis_t_listheader.data: ls_line type slis_listheader.clear ls_line.ls_line-typ = 'H'.ls_line-info = 'Treinamento ALV'.append ls_line to p_s_top.

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.

No campo TYP deverá ser informado :H – HeaderS – SelectionA – Action

Passo 17 - form top_of_page .O nome deste form será passada para a função de impressãodo ALV.

Antes de passar a figura como parâmetro pa a função,cadastrar a figura no BusinessDocument Navigator:Transação:0fpm002Nome de Classe:picturesCategoria:OTChave de objeto: Nome desejado que quiser.Vamos usar ALVFIGURA.

Create PDF with PDF4U. If you wish to remove this line, please click here to purchase the full version

Page 14: ALV - Treinamento 2004

ALV(ABAP LIST VIEWER)

Página: 14

call function 'REUSE_ALV_COMMENTARY_WRITE'exporting

it_list_commentary = s_topi_logo = 'ALVFIGURA'.

Somente para o hierárquicoVamos definir as ligações entre as tabelas para as quebras no momento da impressão.Passo 18 - Declarar a estrutura do tipo slis_keyinfo_alv.Data: s_keyinfo type slis_keyinfo_alv.Passo 19 - s_keyinfo-header01 = 'Campo_tabela_header'.

s_keyinfo-item01 = ‘Campo da tabela de item'.

Parâmetros de impressão

Passo 20 – declarar a estrutura do tipo slis_print_alv.Ex: data: s_print type slis_print_alv.Codificar: s_print-no_print_selinfos = 'N'.

s_print-no_print_listinfos = 'N'.

Campo Descriçãoprnt_info Informações de ImpressãoPrintprnt_titleno_coverpageno_new_pagereserve_lines Linhas reservadas para o final da páginano_print_listinfos Não imprimir página com número de registros

selecionadosno_change_print_params Não alterar tamanho de linhano_print_selinfos Não mostrar informações de impressão

Seleção e tratamento dos Dados

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.

Create PDF with PDF4U. If you wish to remove this line, please click here to purchase the full version

Page 15: ALV - Treinamento 2004

ALV(ABAP LIST VIEWER)

Página: 15

O Display do relatório

Como já falamos anteriormente, existem 3 tipos de relatório ALV:(List, Hierarquico eGrid).OBS: antes de criarmos os forms set_pf_status e user_command, comentar os parâmetrosdas funções i_callback_pf_status_set e i_callback_user_command .

Create PDF with PDF4U. If you wish to remove this line, please click here to purchase the full version

Page 16: ALV - Treinamento 2004

ALV(ABAP LIST VIEWER)

Página: 16

Passo 22 – Utilizar uma das funções de ALV para saída de nosso relatório.

Para o LIST

call function 'REUSE_ALV_LIST_DISPLAY'exporting

i_callback_program = c_repidi_callback_pf_status_set = 'SET_PF_STATUS'i_callback_user_command = 'USER_COMMAND'i_structure_name = 'it_saida'is_layout = s_layoutit_fieldcat = s_fieldcatit_sort = s_sort[]

* - Parâmetro p/executar sempre com a variante defaulti_default = ‘X’

* - Se é possível salvar as variantesi_save = 'A'

* - Nome da variante selecionadais_variant = varianteis_print = s_printit_special_groups = s_grupos[]

tablest_outtab = it_saida.

Para o hierárquico

call function 'REUSE_ALV_HIERSEQ_LIST_DISPLAY'exportingi_callback_program = sy-repidi_callback_pf_status_set = 'SET_PF_STATUS'i_callback_user_command = 'USER_COMMAND'is_layout = s_layoutit_fieldcat = s_fieldcat[]it_special_groups = s_grupos[]

* - Parâmetro p/executar sempre com a variante defaulti_default = ‘X’

* - Se é possível salvar as variantesi_save = 'A'

* - Nome da variante selecionadais_variant = variantei_tabname_header = 'IT_CABECALHO'i_tabname_item = 'IT_ITEM'is_keyinfo = s_keyinfois_print = s_print

tablest_outtab_header = it_CABECALHOt_outtab_item = it_ITEM.

Create PDF with PDF4U. If you wish to remove this line, please click here to purchase the full version

Page 17: ALV - Treinamento 2004

ALV(ABAP LIST VIEWER)

Página: 17

Para o grid:

call function 'REUSE_ALV_GRID_DISPLAY'exporting

i_callback_program = c_repidi_callback_pf_status_set = 'SET_PF_STATUS'i_callback_user_command = 'USER_COMMAND'i_callback_top_of_page = 'TOP_OF_PAGE'is_layout = s_layoutit_fieldcat = s_fieldcat[]it_sort = s_sort[]

* - Parâmetro p/executar sempre com a variante defaulti_default = ‘X’

* - Se é possível salvar as variantesi_save = 'A'

* - Nome da variante selecionadais_variant = variante

is_print = s_printi_screen_start_column = 0i_screen_start_line = 0i_screen_end_column = 0i_screen_end_line = 0it_special_groups = s_grupo[]

tablest_outtab = t_ordem

exceptionsprogram_error = 1others = 2.

if not sy-subrc is initial.message id sy-msgid type sy-msgty number sy-msgno

with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

endif.

Tratamento de evento USER_COMMAND e criação de PF-STATUSAgora que já aprendemos a gerar o ALV, reparamos em sua barra de botões que ele trásbotões default pelas funções de saída, mas haverá a necessidade em algumas vezes decriações de novos botões para o usuário como exemplo abaixo.

Create PDF with PDF4U. If you wish to remove this line, please click here to purchase the full version

Page 18: ALV - Treinamento 2004

ALV(ABAP LIST VIEWER)

Página: 18

Para PF-STATUS:

Passo 23 – Criação de um form como no modelo abaixo:EX: form set_pf_status using extab type slis_t_extab.

set pf-status 'NOME' excluding extab.Endform.

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 onome da função standard de cada botão.Abaixo temos a relação.

%PC File local...%SL Destinatário de correio eletrônico&ABC Análise ABC&AQW Processamento de texto...&AVE Gravar layout...&ETA Detalhes&F03 Voltar&F12 Cancelar&F15 Encerrar&GRAPH Gráfico&ILT Definir filtro&INFO Informação&OAD Selecionar layout...&ODN Ordenação decrescente&OL0 Modificar layout...&OUP Ordenação crescente&RNT_PREV Pré-visualiz.impressão&SUM Subtotais&UMC Total

Create PDF with PDF4U. If you wish to remove this line, please click here to purchase the full version

Page 19: ALV - Treinamento 2004

ALV(ABAP LIST VIEWER)

Página: 19

&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 umavariável do tipo sy-ucomm.Ex: s_selfield type slis_selfield.

V_ucomm like sy-ucomm.

Abaixo os campos principais da estrutura slis_selfield em detalhes:

TABNAME Nome da tabela interna de saída do ALVTABINDEX Índice do clique na tabela interna de saídaSEL_TAB_FIELD Tabela-interna-campo do cliqueVALUE Valor da célula do cliqueREFRESH Reexecuta o ALVFIELDNAME Campo do clique(coluna)

Para user_commandPasso 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.

Create PDF with PDF4U. If you wish to remove this line, please click here to purchase the full version

Page 20: ALV - Treinamento 2004

ALV(ABAP LIST VIEWER)

Página: 20

When ‘tab_int-campo2’.Comandos;

Endcase.

Tratamento de Drill-Down disparando tela popup HTML:

Ex:case p_s_selfield-sel_tab_field.

When ‘tab_int-campo1’.

CALL SCREEN '0100' STARTING AT 6 6 ENDING AT 90 20.

Create PDF with PDF4U. If you wish to remove this line, please click here to purchase the full version

Page 21: ALV - Treinamento 2004

ALV(ABAP LIST VIEWER)

Página: 21

PBOMODULE status_0100 OUTPUT.SET PF-STATUS '0100'.SET TITLEBAR 'teste'.

ENDMODULE. " STATUS_0100 OUTPUT

Create PDF with PDF4U. If you wish to remove this line, please click here to purchase the full version

Page 22: ALV - Treinamento 2004

ALV(ABAP LIST VIEWER)

Página: 22

module gera_objeto output.

Instanciando o objeto container

Na declaração fazer como abaixo:

Data:o_container type ref to cl_gui_custom_container.Constants: c_container(4) value 'HTML'.

perform f_criar_container using o_container c_container.

form f_criar_container usingp_object type ref to cl_gui_custom_containerp_container.

create object p_objectexporting

container_name = p_container.Endform.

Instanciando objeto html

Na declaração fazer como abaixo:Data: o_html type ref to cl_gui_html_viewer.

perform f_criar_html using o_htmlo_container.

form f_criar_html usingp_object type ref to cl_gui_html_viewerp_container type ref to cl_gui_custom_container.

Instanciando o objeto - HTMLcreate object p_object

exportingparent = p_container.

endform. " f_criar_html

endmodule. " gera_objeto OUTPUT

module gera_html output.Cabeçalho HTMLNa declaração fazer como abaixo:

Data: t_html like w3html occurs 0.

perform f_criar _html tables t_html.

CLEAR : t_html.REFRESH : t_html.

* start HTML;

wa_html = '<HTML><HEAD><TITLE> Teste com a tag img</TITLE></HEAD>'.t_html = wa_html.APPEND t_html.

CONCATENATE '<BODY><H1><CENTER>Imagem</H1>'</CENTER></BODY></HTML>' INTOwa_html.t_html = wa_html.APPEND t_html.

Create PDF with PDF4U. If you wish to remove this line, please click here to purchase the full version

Page 23: ALV - Treinamento 2004

ALV(ABAP LIST VIEWER)

Página: 23

* Finalizando página

* perform f_fim_html tables t_html.

perform f_exibe_html using o_html.

FORM f_exibe_html USING p_object TYPE REF TO cl_gui_html_viewer.

DATA : v_doc_url(80).

CALL METHOD p_object->load_dataEXPORTINGtype = 'text'subtype = 'html'

IMPORTINGassigned_url = v_doc_url

CHANGINGdata_table = t_html

EXCEPTIONSdp_invalid_parameter = 1dp_error_general = 2cntl_error = 3

OTHERS = 4.

CALL METHOD p_object->show_dataEXPORTINGurl = v_doc_url

EXCEPTIONScntl_error = 1cnht_error_not_allowed = 2cnht_error_parameter = 3dp_error_general = 4OTHERS = 5

.

ENDFORM. " f_exibe_html

PAI

MODULE user_command_0100 INPUT.

* Liberando objeto HTMLPERFORM f_libera_html USING o_html.

FORM f_libera_html USINGp_object TYPE REF TO cl_gui_html_viewer.

CALL METHOD p_object->free.

ENDFORM. " f_libera_html

* Liberando o objeto containerPERFORM f_libera_container USING o_container.FORM f_libera_container USING

p_object TYPE REF TO cl_gui_custom_container.

CALL METHOD p_object->free.

ENDFORM.SET SCREEN 0.LEAVE SCREEN.

ENDMODULE.

Create PDF with PDF4U. If you wish to remove this line, please click here to purchase the full version

Page 24: ALV - Treinamento 2004

ALV(ABAP LIST VIEWER)

Página: 24

Adicionar Cores em células do ALV

Exitem duas formas de adicionar cores:1-Uma passando para o campo emphasize da fieldcat:Valores para emphasize.Lembrando que desta forma aplicaremos a cor a colunainteira.Observe os efeitos na segunda coluna dos relatórios exemplo:

C100,C101 e C110

Create PDF with PDF4U. If you wish to remove this line, please click here to purchase the full version

Page 25: ALV - Treinamento 2004

ALV(ABAP LIST VIEWER)

Página: 25

C200,C201 e 210

C300,C301 e C310

C400,C401 e C410

Create PDF with PDF4U. If you wish to remove this line, please click here to purchase the full version

Page 26: ALV - Treinamento 2004

ALV(ABAP LIST VIEWER)

Página: 26

C500,C501 e C510

C600,C601 e C610

C700,C701 e C710

Create PDF with PDF4U. If you wish to remove this line, please click here to purchase the full version

Page 27: ALV - Treinamento 2004

ALV(ABAP LIST VIEWER)

Página: 27

2-Colorindo células específicas

Passo1:Declarar um campo na tabela interna de saída do ALV com o tipo lvc_t_scol.Ex: begin of it_saida occurs 0,

Campo 1 like …….,COLINFO type lvc_t_scol,

End of it_saida.

Passo2: Criar uma tabela interna de mesmo tipo com header line.EX: data: gt_color type lvc_t_scol with header line.

Passo3: Na estrutura s_Layout campo coltab_fieldname passar o nome do campo da tabelainterna de saída que conterá as cores.Ex: s_layout-coltab_fieldname = ‘COLINFO’.

Passo4: Lógica exemplo de campos que iremos colorir.

EX: loop at t_saida.gt_color-fname = 'WKGBTR'.gt_color-color-int = '1'.gt_color-color-inv = '0'.gt_color-color-col = '6'.

Create PDF with PDF4U. If you wish to remove this line, please click here to purchase the full version

Page 28: ALV - Treinamento 2004

ALV(ABAP LIST VIEWER)

Página: 28

append gt_color.

t_saida-colinfo[] = gt_color[].

modify t_saida.

Endloop.

TOP-OF-PAGE no ALV Hierárquico

Passo1: Criar duas estruturas:

Data:t_eventosheader type slis_alv_event,T_eventos type slis_t_event.

Passo2: Criar antes da chamada da função de saída Perform zf_evento carregando at_eventos.

FORM f_evento.

t_headerline-name = 'TOP_OF_PAGE'.t_headerline-form = 'TOP_OF_PAGE'.APPEND t_headerline TO t_eventos.

ENDFORM.

Passo3: De acordo com o exemplo anterior crie um FORM top_of_page e dentro domesmo insira comandos de um Report comum conforme a necessidade como no exemplo:

FORMAT COLOR COL_NORMAL INTENSIFIED OFF.WRITE: t_ekko-kdatb,

sy-vline, t_ekko-kdate,sy-vline, t_ekko-waers.

NEW-LINE NO-SCROLLING.WRITE: sy-uline(66).SKIP.

Passo4: Na função de saída (REUSE_ALV_HIERSEQ_LIST_DISPLAY) passe para o parâmetroit_events a tabela que contém os eventos,no caso do exemplo seria it_events = t_eventos[].

Create PDF with PDF4U. If you wish to remove this line, please click here to purchase the full version

Page 29: ALV - Treinamento 2004

ALV(ABAP LIST VIEWER)

Página: 29

Qualquer sugestão de alterações ou acréscimos deste documento passarem paramailto:[email protected]

Create PDF with PDF4U. If you wish to remove this line, please click here to purchase the full version


Recommended