Exemplo de Report Interativo
REPORT ZBCR010Z NO STANDARD PAGE HEADING MESSAGE-ID ZM01 LINE-SIZE 95. INCLUDE. * Tabela com dados dos programas DATA: BEGIN OF T_PROGRAMAS OCCURS 0, REPTI LIKE RS38M-REPTI, " Título do programa PROGRAMM LIKE RS38M-PROGRAMM, " ABAP/4: nome do programa LINHA TYPE I, " Nr da linha de impressao TRANSACAO(1), " Flag para transacao/relatório EXIBE(1), " Flag para exibição END OF T_PROGRAMAS. * Variáveis DATA: W_LINHA TYPE I, W_CAMPO(30), W_PARAMETRO(12). AT LINE-SELECTION. GET CURSOR FIELD W_CAMPO LINE W_LINHA. CHECK W_CAMPO = 'ICON_EXECUTE_OBJECT' OR W_CAMPO = 'T_PROGRAMAS-REPTI'. READ TABLE T_PROGRAMAS WITH KEY LINHA = W_LINHA. IF SY-SUBRC = 0. IF T_PROGRAMAS-TRANSACAO EQ SPACE. IF T_PROGRAMAS-EXIBE NE SPACE. SUBMIT (T_PROGRAMAS-PROGRAMM) AND RETURN. PERFORM LISTA_PROGRAMAS. ENDIF. ELSE. READ LINE W_LINHA FIELD VALUE W_PARAMETRO. IF W_PARAMETRO NE SPACE. SET PARAMETER ID 'MPN' FIELD W_PARAMETRO. CALL TRANSACTION 'SM35' AND SKIP FIRST SCREEN. ELSE. CALL TRANSACTION 'SM35'. ENDIF. ENDIF. ENDIF. INITIALIZATION. SET PARAMETER ID 'MPN' FIELD SPACE. START-OF-SELECTION. * Carrega Lista de Programas PERFORM CARREGA_LISTA. * Lista Programas PERFORM LISTA_PROGRAMAS. *&---------------------------------------------------------------------* *& Form CARREGA_LISTA *&---------------------------------------------------------------------* FORM CARREGA_LISTA. T_PROGRAMAS-REPTI = '- Ativo Fixo'. T_PROGRAMAS-PROGRAMM = 'ZAMC010Z'. T_PROGRAMAS-EXIBE = 'X'. APPEND T_PROGRAMAS. T_PROGRAMAS-REPTI = '- Localização Física'. T_PROGRAMAS-PROGRAMM = 'ZAMC030Z'. T_PROGRAMAS-EXIBE = 'X'. APPEND T_PROGRAMAS. T_PROGRAMAS-REPTI = '- Tipo de Imobilizado'. T_PROGRAMAS-PROGRAMM = 'ZAMC040Z'. T_PROGRAMAS-EXIBE = 'X'. APPEND T_PROGRAMAS. T_PROGRAMAS-REPTI = '- Centro de Custo'. T_PROGRAMAS-PROGRAMM = 'ZCOC010Z'. T_PROGRAMAS-EXIBE = 'X'. APPEND T_PROGRAMAS. T_PROGRAMAS-REPTI = '- Centro de Lucro'. T_PROGRAMAS-PROGRAMM = 'ZCOC020Z'. T_PROGRAMAS-EXIBE = 'X'. APPEND T_PROGRAMAS. T_PROGRAMAS-REPTI = '- Ordem Interna'. T_PROGRAMAS-PROGRAMM = 'ZCOC030Z'. T_PROGRAMAS-EXIBE = 'X'. APPEND T_PROGRAMAS. T_PROGRAMAS-REPTI = '- Bancos de Fornecedores'. T_PROGRAMAS-PROGRAMM = 'ZFIC010Z'. T_PROGRAMAS-EXIBE = 'X'. APPEND T_PROGRAMAS. T_PROGRAMAS-REPTI = '- Taxas de Câmbio'. T_PROGRAMAS-PROGRAMM = 'ZFIC020Z'. T_PROGRAMAS-EXIBE = 'X'. APPEND T_PROGRAMAS. T_PROGRAMAS-REPTI = '- Plano de Contas'. T_PROGRAMAS-PROGRAMM = 'ZFIC030Z'. T_PROGRAMAS-EXIBE = 'X'. APPEND T_PROGRAMAS. T_PROGRAMAS-REPTI = '- Lista de Opções de Fornecedores - LOF'. T_PROGRAMAS-PROGRAMM = 'ZMMC020Z'. T_PROGRAMAS-EXIBE = 'X'. APPEND T_PROGRAMAS. T_PROGRAMAS-REPTI = '- Fornecedores'. T_PROGRAMAS-PROGRAMM = 'ZMMC030Z'. T_PROGRAMAS-EXIBE = 'X'. APPEND T_PROGRAMAS. T_PROGRAMAS-REPTI = '- Materiais 1 - Dados Gerais'. T_PROGRAMAS-PROGRAMM = 'ZMMC040Z'. T_PROGRAMAS-EXIBE = 'X'. APPEND T_PROGRAMAS. T_PROGRAMAS-REPTI = '- Materiais 2 - Centro'. T_PROGRAMAS-PROGRAMM = 'ZMMC041Z'. T_PROGRAMAS-EXIBE = ' '. APPEND T_PROGRAMAS. T_PROGRAMAS-REPTI = '- Materiais 2 - Centro / PS'. T_PROGRAMAS-PROGRAMM = 'ZMMC043Z'. T_PROGRAMAS-EXIBE = 'X'. APPEND T_PROGRAMAS. T_PROGRAMAS-REPTI = '- Materiais 3 - Depósito'. T_PROGRAMAS-PROGRAMM = 'ZMMC042Z'. T_PROGRAMAS-EXIBE = 'X'. APPEND T_PROGRAMAS. T_PROGRAMAS-REPTI = '- Serviços'. T_PROGRAMAS-PROGRAMM = 'ZMMC050Z'. T_PROGRAMAS-EXIBE = 'X'. APPEND T_PROGRAMAS. T_PROGRAMAS-REPTI = '- Exceção de IPI'. T_PROGRAMAS-PROGRAMM = 'ZMMC080Z'. T_PROGRAMAS-EXIBE = 'X'. APPEND T_PROGRAMAS. T_PROGRAMAS-REPTI = '- Histórico Consumo de Materiais'. T_PROGRAMAS-PROGRAMM = 'ZMMC110Z'. T_PROGRAMAS-EXIBE = 'X'. APPEND T_PROGRAMAS. T_PROGRAMAS-REPTI = '- Fornecedores - IRF'. T_PROGRAMAS-PROGRAMM = 'ZMMC170Z'. T_PROGRAMAS-EXIBE = 'X'. APPEND T_PROGRAMAS. T_PROGRAMAS-REPTI = '- Lote de Materiais'. T_PROGRAMAS-PROGRAMM = 'ZMMC130Z'. T_PROGRAMAS-EXIBE = 'X'. APPEND T_PROGRAMAS. T_PROGRAMAS-REPTI = '- Saldo de Estoque'. T_PROGRAMAS-PROGRAMM = 'ZMMC010Z'. T_PROGRAMAS-EXIBE = 'X'. APPEND T_PROGRAMAS. T_PROGRAMAS-REPTI = '- NCM'. T_PROGRAMAS-PROGRAMM = 'ZMMC100Z'. T_PROGRAMAS-EXIBE = 'X'. APPEND T_PROGRAMAS. T_PROGRAMAS-REPTI = '- Alíquota IPI'. T_PROGRAMAS-PROGRAMM = 'ZMMC140Z'. T_PROGRAMAS-EXIBE = 'X'. APPEND T_PROGRAMAS. T_PROGRAMAS-REPTI = '- ICMS - Exceção'. T_PROGRAMAS-PROGRAMM = 'ZMMC090Z'. T_PROGRAMAS-EXIBE = 'X'. APPEND T_PROGRAMAS. T_PROGRAMAS-REPTI = '- Projetos de Investimento'. T_PROGRAMAS-PROGRAMM = 'ZPSC010Z'. T_PROGRAMAS-EXIBE = 'X'. APPEND T_PROGRAMAS. T_PROGRAMAS-REPTI = '- Orçamento de Projetos'. T_PROGRAMAS-PROGRAMM = 'ZPSC020Z'. T_PROGRAMAS-EXIBE = 'X'. APPEND T_PROGRAMAS. T_PROGRAMAS-REPTI = '- Saldo Contábil para Projetos '. T_PROGRAMAS-PROGRAMM = 'ZPSC050Z'. T_PROGRAMAS-EXIBE = 'X'. APPEND T_PROGRAMAS. T_PROGRAMAS-REPTI = '- Saldo de Material para Projeto'. T_PROGRAMAS-PROGRAMM = 'ZPSC040Z'. T_PROGRAMAS-EXIBE = 'X'. APPEND T_PROGRAMAS. T_PROGRAMAS-REPTI = '- Conversão Funcionário x Usuário'. T_PROGRAMAS-PROGRAMM = 'ZBTC100Z'. T_PROGRAMAS-EXIBE = 'X'. APPEND T_PROGRAMAS. T_PROGRAMAS-REPTI = '- Conversão de Características de Materiais'. T_PROGRAMAS-PROGRAMM = 'ZMMC150Z'. T_PROGRAMAS-EXIBE = 'X'. APPEND T_PROGRAMAS. T_PROGRAMAS-REPTI = '- Carga de Faturas BT'. T_PROGRAMAS-PROGRAMM = 'ZBTC010Z'. T_PROGRAMAS-EXIBE = 'X'. APPEND T_PROGRAMAS. T_PROGRAMAS-REPTI = '- Carga de Pedido de Compras'. T_PROGRAMAS-PROGRAMM = 'ZMMC160Z'. T_PROGRAMAS-EXIBE = 'X'. APPEND T_PROGRAMAS. **** BATCH INPUT - SM35 **** MANTER COM ÚLTIMO ITEM T_PROGRAMAS-REPTI = TEXT-002. T_PROGRAMAS-PROGRAMM = 'SM35'. T_PROGRAMAS-EXIBE = 'X'. APPEND T_PROGRAMAS. ENDFORM. " CARREGA_LISTA *&---------------------------------------------------------------------* *& Form LISTA_PROGRAMAS *&---------------------------------------------------------------------* FORM LISTA_PROGRAMAS. DATA: W_COLUNA(1). SY-LSIND = 0. GET PARAMETER ID 'MPN' FIELD W_PARAMETRO. WRITE TEXT-001 COLOR 1 CENTERED. SORT T_PROGRAMAS BY REPTI. W_COLUNA = '1'. LOOP AT T_PROGRAMAS. AT LAST. * SKIP 1. WRITE: /5 TEXT-003 CENTERED COLOR 6 INVERSE. * SKIP 1. READ TABLE T_PROGRAMAS INDEX SY-TABIX. T_PROGRAMAS-TRANSACAO = 'X'. MODIFY T_PROGRAMAS. ENDAT. IF T_PROGRAMAS-EXIBE NE SPACE. WRITE: /5 ICON_EXECUTE_OBJECT AS ICON HOTSPOT, 8 T_PROGRAMAS-REPTI NO-GAP HOTSPOT. ELSE. WRITE: /5 ICON_EXECUTE_OBJECT AS ICON , 8 T_PROGRAMAS-REPTI NO-GAP COLOR 2 INVERSE ON. ENDIF. IF T_PROGRAMAS-TRANSACAO = 'X'. WRITE: 62 W_PARAMETRO INPUT COLOR 6. HIDE W_PARAMETRO. ELSE. ENDIF. T_PROGRAMAS-LINHA = SY-LINNO. MODIFY T_PROGRAMAS. ENDLOOP. ENDFORM. " LISTA_PROGRAMAS