Categorias

Report Interativo – Exemplo

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