Screen Painter
É uma ferramenta do ABAP Workbench que permite a criação de telas para suas transações. Você pode usá-lo tanto para criar a própria tela, com campos e outros elementos gráficos, e para escrever a lógica do fluxo atrás da tela.
O Screen Painter tem um editor de layout que você usa para criar seu layout de tela. Ele funciona no modo gráfico e no modo alfanumérico. Ambos os modos oferecem as mesmas funções, mas usam diferentes interfaces. No modo gráfico, você usa uma interface de arrastar semelhante a uma ferramenta de desenho. No modo alfanumérico, você usa seu teclado e menus.
Design First, Code Later
O editor de layout gráfico fornece um ambiente amigável para projetar telas. Você pode iniciar o editor de layout a partir da tela inicial do Screen Painter ou a partir do Navegador do repositório. O editor de layout possui dependências com o SAP GUI e você precisa estar usando versões compatíveis com o Graphical Layout Editor.
Depois de adicionar um elemento na sua tela, você pode convertê-lo para um outro tipo de elemento usando o menu Editar. Você também pode usar a paleta de elementos para selecionar e colocar os elementos da tela sem primeiro identificar seus campos ou você pode importar os campos e criar componentes automaticamente direto de uma tabela transparente.
Screen Painter Layout Editor
- Entre na transação SE38 e crie um programa chamado ZDesignFirst.
- Entre na transação SE51
- Adicione no campo Program, o nome do programa criado anteriormente e no campo Screen Number escreva o numero: 100 e clique em Create.
- No campo Short Description coloque : Desenvolvimento Aberto.
- Na aba Flow Logic, apague o caractere de comentario “*”, deixando a linha: “MODULE STATUS_0100.” compilavel.
- De um duplo clique na variável “STATUS_0100“.
- Em Create PBO Module escolha: MAIN PROGRAM, clique em Ok e salve.
- Digite a transação /nSE51, para voltar no Screen Painter, selecione modificar e clique em Layout.
- No editor de Layout clique no icone Dictionary ou aperte a tecla F6.
- Na tela seguinte, no campo Table/Field Name escolha a tabela SPFLI e clique no botão GET FROM DICTIONARY.
- Selecione todos os campos, clique em OK e solte os componentes na tela (não converta nenhum componente).
- Coloque um componente BOX na tela e de um duplo clique, na janela de propriedades, mude a propriedade Text para: Reserva de Voo.
- Coloque um PushButton na tela e preencha as propriedades: Name = Mostrar, Text = Mostrar e FctCode = F_MOSTRAR.
- Crie mais quatro botões e repita os mesmos procedimentos acima, o primeiro com o nome de limpar e segundo com o nome de Sair, Gravar e Excluir.
- Alinhe o Desing da tela como na figura abaixo.
- Clique em Save, Activate e pressione Flow Logic.
- Na aba Element List, no elemento tipo OK nomeie para OK_CODE.
- Na aba Attributes em Cursor Position escolha: SPFLI_CARRID
- Clique em Activate e volte para a transação SE38 e abra o seu programa ZDesignFirst.
- Use os dois códigos abaixo.
Programa Abap
O programa com a tela totalmente funcional, deve ficar como na imagem abaixo, deve ser capaz de pesquisar, gravar e excluir uma tabela transparente:
Exemplo:
Neste programa usamos a tabela de reserva de voo, SPFLI do Flight Model que não possui uma GUI de entrada de dados. O que vamos fazer é criar a GUI de entrada de dados apenas para esta tabela usando o Screen Painter e OPEN SQL, visto que temos que respeitar as Foreing Keys das tabelas transparentes, é necessário rodar primeiramente o programa Zdados para preencher manualmente as tabelas auxiliares para nosso programa. Vale ressaltar que neste ponto só nos interessa o Screen Painter e não como manipular dados consistentemente, o que veremos mais tarde.
Abap
Zdados -Rode este programa para gravar dados nas tabelas transparentes.
*&---------------------------------------------------------------------* *& Report ZDADOS *& *&---------------------------------------------------------------------* *& Desenvolvimento Aberto *& Insere Dados manualmente no Flight Model *&---------------------------------------------------------------------* REPORT ZDADOS. * Define tabelas do Banco de dados TABLES SCARR. TABLES SGEOCITY. TABLES SAIRPORT. TABLES SPFLI. * Apaga dados existentes DELETE FROM SCARR. DELETE FROM SGEOCITY. DELETE FROM SAIRPORT. DELETE FROM SPFLI. * Cria MATRIZs de dados (rows) DATA MATRIZ1 TYPE SCARR. DATA MATRIZ2 TYPE SGEOCITY. DATA MATRIZ3 TYPE SAIRPORT. DATA MATRIZ4 TYPE SPFLI. * Insere dados. MATRIZ1-CARRID = '001'. MATRIZ1-CARRNAME = 'DA LINNHAS AEREAS'. MATRIZ1-CURRCODE = 'REAL'. MATRIZ1-MANDT = '001'. MATRIZ1-URL = 'https://desenvolvimentoaberto.wordpress.com'. INSERT INTO SCARR VALUES MATRIZ1. MATRIZ2-CITY = 'SAO PAULO'. MATRIZ2-COUNTRY = 'BRA'. MATRIZ2-LATITUDE = '23'. MATRIZ2-LONGITUDE = '46'. MATRIZ2-MANDT = '001'. INSERT INTO SGEOCITY VALUES MATRIZ2. MATRIZ2-CITY = 'RIO DE JANEIRO'. MATRIZ2-COUNTRY = 'BRA'. MATRIZ2-LATITUDE = '22'. MATRIZ2-LONGITUDE = '43'. MATRIZ2-MANDT = '001'. INSERT INTO SGEOCITY VALUES MATRIZ2. MATRIZ3-ID ='001'. MATRIZ3-MANDT ='001'. MATRIZ3-NAME = 'AEROPORTO DE CONGONHAS'. MATRIZ3-TIME_ZONE = 'GMT-3'. INSERT INTO SAIRPORT VALUES MATRIZ3. MATRIZ3-ID ='002'. MATRIZ3-MANDT ='001'. MATRIZ3-NAME = 'AERO PORTO SANTOS DUMONT'. MATRIZ3-TIME_ZONE = 'GMT-3'. INSERT INTO SAIRPORT VALUES MATRIZ3. MATRIZ4-AIRPFROM = '001'. MATRIZ4-AIRPTO = '002'. MATRIZ4-ARRTIME = '170000'. MATRIZ4-CARRID = '001'. MATRIZ4-CITYFROM = 'SAO PAULO'. MATRIZ4-CITYTO = 'RIO DE JANEIRO'. MATRIZ4-CONNID = '001'. MATRIZ4-COUNTRYFR = 'BRA'. MATRIZ4-COUNTRYTO = 'BRA'. MATRIZ4-DEPTIME = '181500'. MATRIZ4-DISTANCE = '500'. MATRIZ4-DISTID = 'KM'. MATRIZ4-FLTIME = '75'. MATRIZ4-FLTYPE = 'X'. MATRIZ4-MANDT = '001'. MATRIZ4-PERIOD = '1'. INSERT INTO SPFLI VALUES MATRIZ4. * Exibe imagem WRITE : / 'Dados inseridos'.
ZDesignFirst – Screen Painter
*&---------------------------------------------------------------------* *& Report ZDESIGNFIRST *& *&---------------------------------------------------------------------* *& Desenvolvimento Aberto *& Screen Painter *&---------------------------------------------------------------------* REPORT ZDESIGNFIRST. * Define tabela de Reserva de Voo TABLES SPFLI. * Define variaveis do programa DATA : OK_CODE LIKE SY-UCOMM. * chama tela numero 100 CALL SCREEN 100. MODULE STATUS_0100 OUTPUT. * verifica ação dos botões CASE SY-UCOMM. WHEN 'F_SAIR'. LEAVE PROGRAM. WHEN 'F_MOSTRAR'. SELECT SINGLE * FROM spfli INTO CORRESPONDING FIELDS OF spfli WHERE carrid = spfli-CARRID AND CONNID = spfli-CONNID. WHEN 'F_LIMPAR'. CLEAR SPFLI. WHEN 'F_GRAVAR'. INSERT INTO SPFLI VALUES SPFLI. MESSAGE 'Registro gravado com Sucesso' TYPE 'S'. CLEAR SPFLI. WHEN 'F_EXCLUIR'. DELETE FROM SPFLI CLIENT SPECIFIED WHERE mandt = spfli-MANDT AND carrid = spfli-CARRID AND CONNID = spfli-CONNID. MESSAGE 'Registro deletado com Sucesso' TYPE 'S'. CLEAR SPFLI. ENDCASE. ENDMODULE.
horrível