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.