+ All Categories
Home > Documents > ALV-Treinamento-2004

ALV-Treinamento-2004

Date post: 17-Jul-2015
Category:
Upload: dalmanmarinho
View: 312 times
Download: 0 times
Share this document with a friend
Popular Tags:

of 29

Transcript

ALV(ABAP LIST VIEWER) Por Osmar Antunes de Arajo Jnior Aspen/RJ

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

ALV(ABAP LIST VIEWER)

Introduo.................................................................................................................................... 3 O que ALV?.............................................................................................................................. 3 Layouts dos Relatrios ALV:..................................................................................................... 4 ALV Hierrquico ................................................................................................................... 4 ALV List .................................................................................................................................. 5 ALV GRID ............................................................................................................................. 5 Montagem do ALV passo a passo.............................................................................................. 6 Grupo de tipos: ..................................................................................................................... 6 Variantes de exibio:......................................................................................................... 6 Seleo e preparao dos dados..................................................................................... 7 Configurao de sada do relatrio ALV......................................................................... 7 Parmetros gerais do Layout do relatrio ................................................................. 7 Estrutura slis_layout_alv: ............................................................................................... 7 Detalhes Tela .................................................................................................................. 9 Criao 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 parmetros necessrios....................... 9 Estrutura tipo slis_t_sp_group_alv:.............................................................................. 9 Parmetros de ordenao................................................................................................ 10 Estrutura tipo slis_t_sortinfo_alv: ............................................................................... 10 Parmetros de cada campo em particular - slis_t_fieldcat_alv ............................... 11 Estrutura tipo slis_t_fieldcat_alv:................................................................................ 11 Definir cabealho (apenas para o grid) ......................................................................... 13 Somente para o hierrquico ............................................................................................ 14 Parmetros de impresso ................................................................................................ 14 Seleo e tratamento dos Dados ................................................................................... 14 Passo 21 Neste passo, carregamos a nossa tabela interna de sada com os dados j processados para a exibio de nosso relatrio. ................................................. 14 O Display do relatrio........................................................................................................ 15 Para o LIST ..................................................................................................................... 16 Para o hierrquico.......................................................................................................... 16 Para o grid: ...................................................................................................................... 17 Tratamento de evento USER_COMMAND e criao de PF-STATUS.................. 17 Para PF-STATUS: ......................................................................................................... 18 Para user_command ..................................................................................................... 19 Tratamento de Botes:.................................................................................................. 19 Tratamento de Drill-Down:.......................................................................................... 19 Tratamento de Drill-Down disparando tela popup HTML:....................................... 20 PBO ........................................................................................................................... 21 PAI............................................................................................................................. 23 Adicionar Cores em clulas do ALV ....................................................................................... 24 1-Uma passando para o campo emphasize da fieldcat:........................................... 24 2-Colorindo clulas especficas ...................................................................................... 27 TOP-OF-PAGE no ALV Hierrquico ..................................................................................... 28

Pgina: 2

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

ALV(ABAP LIST VIEWER)

IntroduoO objetivo deste material passar para o consultor que o ALV no um bicho de sete cabeas e citar as principais dificuldades de um iniciante em ALV. Existem 3 tipos de ALV que ns 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 relatrios no sistema R/3 tanto para o desenvolvedor tanto para o usurio que interage com o relatrio. O ALV atravs de suas funes e estruturas torna o desenvolvimento mais simples na medida que economiza significativas linhas de cdigo como por exemplo no tratamento de quebras, totais, subtotais, cores e outras vantagens que veremos a seguir.

Pgina: 3

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

ALV(ABAP LIST VIEWER)Layouts dos Relatrios ALV:ALV Hierrquico

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

Pgina: 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 passoGrupo de tipos:

Passo 1 necessrio a declarao do grupo de tipos SLIS onde de encontram os tipos fundamentais para a sada de um relatrio ALV. Ex: type-pools: slis.Variantes de exibio:

Mas a frente neste curso, veremos que o usurio poder escolher as colunas que ele deseja exibir em seu relatrio e com isso salv-los (na prpria tela do relatrio) com um nome desejado. Chamamos de variantes de exibio em ALV, esses layouts (colunas desejadas) que o usurio poder salvar no relatrio. 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 funo que nos retornar a variante default do relatrio. Mas para isso precisaremos declarar algumas estruturas do tipo disvariant (Variant.exibio) e variveis no seguinte padro: variant_def(1) type c e variant_exit(1)type c. Ex: clear variante. repid = sy-repid. variante-report = repid. * Buscar variante default def_variante = variante. A funo abaixo retornar a variante que foi salva como default na exibio do relatrio ALV. Lembrando que quando executamos o relatrio pela primeira vez , no existe variante default. Veremos depois que gerarmos nosso primeiro ALV, que quando salvarmos uma variante de exibio existir um flag chamado CONFIGURAO PRELIMINAR, que sendo marcado quando salvamos estamos definindo conseqentemente esta variante como default do relatrio. 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.

Passo4 Matchcode do campo de variante de exibio. simples, basta no evento At Selection-Screen On Value-Request fazer:call function 'REUSE_ALV_VARIANT_F4' exporting is_variant = variante Report com as i_save = A Variantes Salvas

Pgina: 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 formatao i_display_via_grid = 'X' Dispara POPUP em ALV importing e_exit = variant_exit Se no 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 usurio entrar com uma variante de exibio no existente, usaremos em todos os nossos relatrios ALV uma funo que checar 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 report def_variante-variant = p_vari. O que foi digitado call function 'REUSE_ALV_VARIANT_EXISTENCE' exporting i_save = A changing cs_variant = def_variante. variante = def_variante. else. clear variante. variante-report = repid. endif.

Seleo e preparao dos dados Passo 6 Seleo e preparao dos dados.Configurao de sada do relatrio ALV

Parmetros gerais do Layout do relatrio Passo7 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 de cliente. Ex: S_layout-box_fieldname = 'BOX'. "campo checkbox p/tab_saidaS_layout-get_selinfos S_layout-detail_popup S_layout-detail_initial_lines S_layout-zebra S_layout-colwidth_optimize = = = = = 'X'. 'X'. 'X'. 'X'. 'X'. Mostrar tela de seleo. Mostrar detalhe via popup. Todos os campos em detalhes. Cor sim / cor no. Otimizao de largura de colunas

Estrutura slis_layout_alv:Campo Parmetros Gerais

Descrio

Valores propostos

Pgina: 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 no_hotspot no_vline Zebra Reprep no_keyfix Expand_all no_author PF-status def_status item_text Opes de Display Colwidth_optimize no_min_linesize min_linesize max_linesize Window_titlebar no_uline_hs Excees lights_fieldname lights_tabname lights_rollname lights_condense Somatrios no_sumchoice no_totalline no_subchoice no_subtotals no_unit_splitting totals_before_items totals_only totals_text Subtotals_text Interaes box_fieldname Sem Ttulos (Cabealho) Ttulos sem Hotspot Colunas separadas por espaos Listrado (Uma linha clara outra X escura) No fixar coluna chave Expandir todas as posies Nenhuma verificao padro da autoridade Status Default Largura otimizada das colunas Tamanho da linha = tamanho da lista Default 80 Default 250 Ttulo na barra de ttulosX

Titulo do relatrio

Nome do campo para exceo Nome da tabela para exceo

Sem escolha para Somar para cima Sem Total Linha Sem Sub-Total Mostrar total antes dos itens Mostrar somente os totais a Texto para a 1 . coluna na linha de total a Texto para a 1 . coluna na linha de Sub-total Nome do Campo que foi declarado como like ptrv_approval-box para Checkbox na tabela interna Nome da tabela interna que contem o campo boxBOX Supondo que na nossa tabela interna o campo se chame box tab_int

box_tabname box_rollname Expand_fieldname Hotspot_fieldname confirmation_prompt key_hotspot flexible_key group_buttons get_selinfos group_change_edit no_scrolling

Nome do Campo para Hotspot Confirmar Sada da lista keys as hotspot " K_KEYHOT Mover as colunas chaves Grupo de Botes Ler tela de seleo Settings by user for new group Sem movimentar tela

X

Pgina: 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 detail_initial_lines detail_titlebar Mostar Variantes header_text default_item Cores info_fieldname Coltab_fieldname Outros list_append Xifunckey Xidirect Mostrar detalhes em nova janela Ttulo para tela de detalhes Texto para o botoX X

Todos os campos em detalhes

Nome do campo que conter as cores das clulas Sem chamada de tela Extended interaction(SAPQuery) Extended INTeraction(SAPQuery)

dtc_layout

Configurao de layout para Tabstrip

Criao de Grupos de Campos No fundamental a criao de grupos de campos, mas facilita ao usurio na hora de escolher os campos de exibio aps o clique do boto MODIFICAR LAYOUT . Vrios campos da fieldcat podem ser definidos para um mesmo grupo de campo.Veremos mais a frente como atribuir um campo a um grupo de campo. Passo 9 - declarar uma estrutura do tipo slis_t_sp_group_alv Ex: s_grupos type slis_t_sp_group_alv with header line. Passo 10 - Carregar esta tabela com os parmetros necessrios. 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 Descrio

sp_group text

Nome do campo Descrio dos grupos

Pgina: 9

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

ALV(ABAP LIST VIEWER)

Parmetros de ordenao 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 necessrios e mais utilizados em programas de cliente. Ex:clear s_sort.s_sort-up s_sort-fieldname sada'. s_sort-tabname s_sort-spos append s_sort. = 'X'. Ordenao crescente = 'campo pelo qual queremos ordenar da Tabela interna de = 'Tabela interna de sada'. = '1'. Prioridade de ordenao

Estrutura tipo slis_t_sortinfo_alv:Campo Spos fieldname Tabname Up Down Group Subtot Comp Descrio Seqncia de Ordenao Nome do campo Nome da tabela a qual pertence o campo Ordenao Menor para Maior Ordenao Maior para Menor Grupo de campos Gerar Sub Total ComprimirValores Prioridade de ordenao Campo da tab.interna de sada Tabela interna de sada do mesmo.

Pgina: 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 Obligatory Expandir Campo obrigatrio

OBS.:Na tabela it_sort(que passada como parametro da funo REUSE_ALV_LIST_DISPLAY), coloque * no campo group no registro que deseja fazer a quebra de pgina. Para traar um uline invs da quebra de pgina coloque UL no campo group.

Parmetros de cada campo em particular - slis_t_fieldcat_alv Agora, ns veremos os campos de nossa tabela interna de sada que desejamos que sejam disparados no relatrio. A estrutura slis_t_fieldcat_alv determina o modo de apresentao campo a campo a nossa tabela interna de sada. 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 esto 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 Row_pos Col_pos Fieldname Tabname Currency cfieldname Ctabname Ifieldname Quantity qfieldname Qtabname Round Exponent Key Icon Symbol Checkbox Descrio Definies Sada na linha (1,2,3,...) Posio da coluna Nome do campo na tab_int Nome da tabela interna Moeda Campo com Unidade de Moeda Tabela referncia para Unidade Moeda initial column Unidade de Medida Campo com Unidade Medida Tabela com Unidade Medida Arredondar Campo Expoente para floats Campo como Chave Campo como cone Campo como Smbolo Este campo marcado em Campo como Checkbox

Just Lzero

Alinhamento R (Direita) L (Esquerda) C (Centralizado) Leading zero

tempo de execuo na tabela interna. Precisamos informar apenas em ALV Hierarquico na i_tab de itens Omitir zeros em impresso de relatrio

Pgina: 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 no_zero no_convext edit_mask Emphasize fix_column do_sum no_out Sem sinal No imprimir campos zerados Mscara de Edio Campo em destaque Fixar Coluna Totalizar Coluna No exibir o campo

C300 Passando X Exibir total geral do relatrio. Quando passamos x para este campo,este campo da tabela interna estar disponvel somente aps o clique do boto modificar layout. Largura do campo na sada do relatrio. String de 40 no cabealho . O ref_tabname precisa estar vazio. String de 20 no cabealho . O ref_tabname precisa estar vazio String de 10 no cabealho . O ref_tabname precisa estar vazio Trs do elemento de dados do fieldname da ref_tabname as denominaes breve(S),mdia(M) e longa(L) respectivamente

Tech outputlen Offset seltext_l seltext_m seltext_s Ddictxt

Tamanho do campo para sada dos dados Descrio Longa do Campo Descrio Mdia do Campo Descrio Curta do Campo Indicao de Qual descrio utilizar - (S)hort (M)iddle (L)ong

rollname Datatype Inttype Intlen Lowercase ref_fieldname ref_tabname Roundfieldname Roundtabname Decimalsfieldname Decimalstabname decimals_out text_fieldname reptext_ddic ddic_outputlen key_sel no_sum sp_group Reprep Input Edit Hotspot

Elemento de dados para help Tipo do Campo Tipo do Campo Tamanho do Campo Letra Minscula Campo referncia Tabela referncia Nome campo para Arredondamento Nome tabela Nome campo para Decimais Nome tabela Nmero de decimais para escrever um nmero Texto para a coluna Tamanho do Campo field not obligatory No totalizar o campo Grupo Campo como input de dados Uso interno Campo como hotspot

Em qual grupo de campo ser enquadrado este campo.

Pgina: 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 cabealho (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 Header S Selection A Action Passo 17 - form top_of_page .O nome deste form ser passada para a funo de impresso do ALV. Antes de passar a figura como parmetro pa a funo,cadastrar a figura no Business Document Navigator: Transao:0fpm002 Nome de Classe:pictures Categoria:OT Chave de objeto: Nome desejado que quiser.Vamos usar ALVFIGURA.

Pgina: 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'.

Somente para o hierrquico Vamos definir as ligaes entre as tabelas para as quebras no momento da impresso. 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'. Parmetros de impresso 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 prnt_info Print prnt_title no_coverpage no_new_page reserve_lines no_print_listinfos no_change_print_paramsno_print_selinfos

Descrio Informaes de Impresso

Linhas reservadas para o final da pgina No imprimir pgina com nmero de registros selecionados No alterar tamanho de linha No mostrar informaes de impresso

Seleo e tratamento dos Dados Passo 21 Neste passo, carregamos a nossa tabela interna de sada com os dados j processados para a exibio de nosso relatrio.

Pgina: 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 relatrio Como j falamos anteriormente, existem 3 tipos de relatrio ALV:(List, Hierarquico e Grid). OBS: antes de criarmos os forms set_pf_status e user_command, comentar os parmetros das funes i_callback_pf_status_set e i_callback_user_command .

Pgina: 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 funes de ALV para sada de nosso relatrio. 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_layout it_fieldcat = s_fieldcat it_sort = s_sort[]* * * Parmetro p/executar sempre com a variante default i_default = X Se possvel salvar as variantes i_save = 'A' Nome da variante selecionada is_variant = variante

is_print = s_print it_special_groups = s_grupos[] tables t_outtab = it_saida. Para o hierrquicocall function 'REUSE_ALV_HIERSEQ_LIST_DISPLAY' exporting i_callback_program = sy-repid i_callback_pf_status_set = 'SET_PF_STATUS' i_callback_user_command = 'USER_COMMAND' is_layout = s_layout it_fieldcat = s_fieldcat[] it_special_groups = s_grupos[] * Parmetro p/executar sempre com a variante default i_default = X * Se possvel salvar as variantes i_save = 'A' * Nome da variante selecionada is_variant = variante i_tabname_header = 'IT_CABECALHO' i_tabname_item = 'IT_ITEM' is_keyinfo = s_keyinfo is_print = s_print tables t_outtab_header = it_CABECALHO t_outtab_item = it_ITEM.

Pgina: 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: call function 'REUSE_ALV_GRID_DISPLAY' exporting i_callback_program = c_repid i_callback_pf_status_set = 'SET_PF_STATUS' i_callback_user_command = 'USER_COMMAND' i_callback_top_of_page = 'TOP_OF_PAGE' is_layout = s_layout it_fieldcat = s_fieldcat[] it_sort = s_sort[]* * * Parmetro p/executar sempre com a variante default i_default = X Se possvel salvar as variantes i_save = 'A' Nome da variante selecionada is_variant = variante

is_print = s_print i_screen_start_column = 0 i_screen_start_line = 0 i_screen_end_column = 0 i_screen_end_line =0 it_special_groups = s_grupo[] tables t_outtab = t_ordem exceptions program_error =1 others = 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 criao de PF-STATUS Agora que j aprendemos a gerar o ALV, reparamos em sua barra de botes que ele trs botes default pelas funes de sada, mas haver a necessidade em algumas vezes de criaes de novos botes para o usurio como exemplo abaixo.

Pgina: 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: Passo 23 Criao 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 criao do pf-status, ns iremos repetir alguns botes que vinham atravs das funes. Para que esses botes continuem no precisando de tratamento necessrio que se saiba o nome da funo standard de cada boto.Abaixo temos a relao. %PC %SL &ABC &AQW &AVE &ETA &F03 &F12 &F15 &GRAPH &ILT &INFO &OAD &ODN &OL0 &OUP &RNT_PREV &SUM &UMC File local... Destinatrio de correio eletrnico Anlise ABC Processamento de texto... Gravar layout... Detalhes Voltar Cancelar Encerrar Grfico Definir filtro Informao Selecionar layout... Ordenao decrescente Modificar layout... Ordenao crescente Pr-visualiz.impresso Subtotais Total Pgina: 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 funes com os procedimentos abaixo: 1. Pressionar o boto esquerdo do mouse encima do boto; 2. Pressionar a tecla F1; 3. Soltar o boto esquerdo do mouse. Passo 24 Declarao de uma estrutura do tipo slis_selfield para o Drill Down e uma varivel 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 TABINDEX SEL_TAB_FIELD VALUE REFRESH FIELDNAME Nome da tabela interna de sada do ALV ndice do clique na tabela interna de sada Tabela-interna-campo do clique Valor da clula do clique Reexecuta o ALV Campo do clique(coluna)

Para user_command Passo 25 Para tratamento destes botes 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 Botes: Ex: Case p_v_ucomm. When BOTO1. Commandos; When BOTO2. 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 clula do clique set parameter id 'ALV' field p_s_selfield-value. call transaction 'ALV' and skip first screen.

Pgina: 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. 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.

Pgina: 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'. ENDMODULE. " STATUS_0100 OUTPUT

Pgina: 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.

Instanciando o objeto containerNa declarao 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 using p_object type ref to cl_gui_custom_container p_container. create object p_object exporting container_name Endform. = p_container.

Instanciando objeto htmlNa declarao fazer como abaixo: Data: o_html type ref to cl_gui_html_viewer. perform f_criar_html using o_html o_container. form f_criar_html using p_object type ref to cl_gui_html_viewer p_container type ref to cl_gui_custom_container. Instanciando o objeto - HTML create object p_object exporting parent = p_container. endform. endmodule. " f_criar_html " gera_objeto OUTPUT

module gera_html output. Cabealho HTML Na declarao 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 = ' Teste com a tag img'. t_html = wa_html. APPEND t_html. CONCATENATE 'Imagem'' INTO wa_html. t_html = wa_html. APPEND t_html.

Pgina: 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 pgina * perform f_fim_html tables t_html. perform f_exibe_html using o_html. FORM f_exibe_html USING DATA : v_doc_url(80). CALL METHOD p_object->load_data EXPORTING type = 'text' subtype = 'html' IMPORTING assigned_url = v_doc_url CHANGING data_table = t_html EXCEPTIONS dp_invalid_parameter = 1 dp_error_general = 2 cntl_error = 3 OTHERS . = 4 p_object TYPE REF TO cl_gui_html_viewer.

CALL METHOD p_object->show_data EXPORTING url = v_doc_url EXCEPTIONS cntl_error = 1 cnht_error_not_allowed = 2 cnht_error_parameter = 3 dp_error_general = 4 OTHERS = 5 . ENDFORM. " f_exibe_html

PAIMODULE user_command_0100 INPUT.* Liberando objeto HTML

PERFORM f_libera_html USING o_html. FORM f_libera_html USING p_object TYPE REF TO cl_gui_html_viewer.CALL METHOD p_object->free.

ENDFORM.

" f_libera_html

* Liberando o objeto container PERFORM 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.

Pgina: 23

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

ALV(ABAP LIST VIEWER)Adicionar Cores em clulas 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 coluna inteira.Observe os efeitos na segunda coluna dos relatrios exemplo: C100,C101 e C110

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

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

Pgina: 26

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

ALV(ABAP LIST VIEWER)2-Colorindo clulas especficas

Passo1:Declarar um campo na tabela interna de sada 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 tabela interna de sada que conter as cores. Ex: s_layout-coltab_fieldname = COLINFO. Passo4: Lgica 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'.

Pgina: 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.

TOP-OF-PAGE no ALV HierrquicoPasso1: Criar duas estruturas: Data:t_eventosheader type slis_alv_event, T_eventos type slis_t_event. Passo2: Criar antes da chamada da funo de sada Perform zf_evento carregando a t_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 do mesmo 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 funo de sada (REUSE_ALV_HIERSEQ_LIST_DISPLAY) passe para o parmetro it_events a tabela que contm os eventos,no caso do exemplo seria it_events = t_eventos[].

Pgina: 28

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

ALV(ABAP LIST VIEWER)

Qualquer sugesto de alteraes ou acrscimos deste documento passarem para mailto:[email protected]

Pgina: 29

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


Recommended