Visual – Selection Screen, Frame, Start of Selection, Load of Program, At Selection Screen, Checkbox, RadioButton, Eventos sscrfields e Buttons – Abap

Publicado: 10 de março de 2014 em Abap

Quando você precisa que o usuário forneça dados de entrada para algum tipo de processamento, você pode montar uma tela com parâmetros de seleção usando componentes visuais que são criados em tempo de execução, você pode usar rótulos (COMMENT), campos de edição, botões de cheque, botões de radio, botões comuns e eventos para realizar uma interação com a resposta do usuário.

PARAMETERS

Os parâmetros são os componentes de uma tela de seleção que são atribuídos a um objeto de dados elementar global no programa ABAP e um campo de entrada na tela de seleção. Parameters é o tipo mais básico de aceitação de entrada. Usando os parâmetros você pode gerar uma tela de tela de seleção padrão.

EVENT BLOCK

Um programa ABAP é uma coleção de blocos de processamento, chamados pelo ambiente de tempo de execução quando relacionados a eventos é acionado através do fluxo natural do programa de controle ou quando provocado por uma ação do usuário.

LOAD-OF-PROGRAM

Esta palavra-chave define um bloco de evento cujo evento é acionado pelo ambiente ABAP-runtime quando um programa executável, um pool de módulo, um grupo de funções ou uma pool de sub-rotina é carregado na sessão interna.

START-OF-SELECTION

Esta palavra-chave define o bloco de processamento padrão de um programa executável. O evento associado é acionado pelo ambiente de tempo de execução ABAP durante a execução de um programa executável após quaisquer telas de seleção padrão serem processadas.

SELECTION-SCREEN

Telas de seleção são telas especiais que não são criadas no Screen Painter, mas são geradas a partir de declarações ABAP. Você pode usá-las sempre que quiser que o usuário digite um único valor para um campo ou campos, ou para introduzir critérios de seleção.

AT SELECTION-SCREEN

Define uma forma básica de toda uma série de eventos que ocorrem enquanto a tela de seleção está sendo processada.

A tela de seleção standard, em um programa executável ou no banco de dados lógico ligado a ela, é chamada automaticamente entre os eventos da inicialização e o inicio da selecão. Quando você chama a tela de seleção e, quando os usuários interagem com ela, o ambiente de tempo de execução ABAP gera eventos de tela de seleção, que ocorrem entre os comandos INITIALIZATION e START-OF-SELECTION.

Exemplo:
Neste exemplo desenvolvemos uma tela de seleção usando frames e vários componentes de seleção, usamos também o eventos de seleção.

Abap

*&---------------------------------------------------------------------*
*& Report  ZVISUAL
*&
*&---------------------------------------------------------------------*
*& Desenvolvimento Aberto
*& Selection Screen - List process events
*&---------------------------------------------------------------------*

REPORT  ZVISUAL.

* Define tabela ucommcomponent para o fcode do botão
TABLES sscrfields.

* Define variaveis
DATA evento TYPE i VALUE 0.

* Define bloco do frame 1
SELECTION-SCREEN BEGIN OF BLOCK bloco1 WITH FRAME

  TITLE titulo1.

  SELECTION-SCREEN BEGIN OF LINE.

    SELECTION-SCREEN COMMENT 1(10) com1.
    PARAMETERS: var1 TYPE i,
                var2 TYPE i,
                var3 TYPE i.
    SELECTION-SCREEN END OF LINE.

SELECTION-SCREEN END OF BLOCK bloco1.

* Define bloco do frame 2
SELECTION-SCREEN BEGIN OF BLOCK bloco2 WITH FRAME

  TITLE titulo2.

  SELECTION-SCREEN BEGIN OF LINE.
    SELECTION-SCREEN COMMENT 1(12) com2.
    PARAMETERS data LIKE sy-datum.
  SELECTION-SCREEN END OF LINE.

SELECTION-SCREEN END OF BLOCK bloco2.

* Define bloco do frame 3
SELECTION-SCREEN BEGIN OF BLOCK bloco3 WITH FRAME

  TITLE titulo3.

  SELECTION-SCREEN BEGIN OF LINE.
    SELECTION-SCREEN COMMENT 1(9) com3.
    PARAMETERS masc AS CHECKBOX.
    SELECTION-SCREEN COMMENT 18(8) com4.
    PARAMETERS fem AS CHECKBOX.
  SELECTION-SCREEN END OF LINE.

SELECTION-SCREEN END OF BLOCK bloco3.

* Define bloco do frame 4
SELECTION-SCREEN BEGIN OF BLOCK bloco4 WITH FRAME

  TITLE titulo4.

  SELECTION-SCREEN BEGIN OF LINE.
    SELECTION-SCREEN COMMENT 1(10) com5.
    PARAMETERS: variavel AS CHECKBOX.
  SELECTION-SCREEN END OF LINE.

SELECTION-SCREEN END OF BLOCK bloco4.

* Define bloco do frame 5
SELECTION-SCREEN BEGIN OF BLOCK bloco5 WITH FRAME

  TITLE titulo5.

  SELECTION-SCREEN BEGIN OF LINE.
    SELECTION-SCREEN PUSHBUTTON 2(10) but1 USER-COMMAND CLIQUE1.
  SELECTION-SCREEN END OF LINE.

SELECTION-SCREEN END OF BLOCK bloco5.

* Usa componente sem frame

SELECTION-SCREEN COMMENT 1(15) com6.
PARAMETERS : escolha1 RADIOBUTTON GROUP grpa,
escolha2 RADIOBUTTON GROUP grpa,
escolha3 RADIOBUTTON GROUP grpa.

* Carrega variaveis da selecão de tela
LOAD-OF-PROGRAM.

  titulo1 = 'Entre campos numericos (Parameters)'.
  titulo2 = 'Data (Data - Calendario)'.
  titulo3 = 'Sexo (Checkbox)'.
  titulo4 = 'Variave (Checkbox)'.
  titulo5 = 'Botão (PushButton)'.

  but1 = 'OK'.

  com1 = 'Numeros '.
  com2 = 'Data de hoje'.
  com3 = 'Masculino'.
  com4 = 'Feminino'.
  com5 = 'Variavel'.
  com6 = 'RadioButton'.

* Evento do botão
AT SELECTION-SCREEN.

  CASE sscrfields.
    WHEN 'CLIQUE1'.
      evento = 1.
  ENDCASE.

* Inicio do processamento da seleção de tela
START-OF-SELECTION.

* Imprime campo data
  WRITE : / 'Data:', data.
  .
* Imprime campo sexo
  IF masc = 'X'.
    WRITE / 'Você é do sexo masculino!'.
  ENDIF.
  IF fem = 'X'.
    WRITE / 'Você é do sexo feminino!'.
  ENDIF.

* Imprime resultado do Checkbox
  IF variavel = 'X'.
    WRITE / 'Você clicou no checkbox'.
  ELSE.
    WRITE / 'Você não clicou no checkbox'.
  ENDIF.

* Imprime resultado do Radiobutton
  CASE 'X'.
    WHEN escolha1.
      WRITE / 'Você fez a primeira escolha'.
    WHEN escolha2.
      WRITE / 'Você fez a segunda escolha'.
    WHEN escolha3.
      WRITE / 'Você fez a terceira escolha'.
    WHEN OTHERS.
      WRITE / 'Você não fez nenhuma escolha'.
  ENDCASE.

* Captura resultado do evento
  CASE evento.
    WHEN 1.
      WRITE : / 'Você clicou no botão'.
    WHEN 0.
      WRITE : / 'Você não clicou no botão'.
  ENDCASE.
Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s