Visual – Screen Painter – Design First, Code Later – Abap Development WorkBench – Abap

Publicado: 15 de março de 2014 em Abap

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

  1. Entre na transação SE38 e crie um programa chamado ZDesignFirst.
  2. Entre na transação SE51
  3. Adicione no campo Program, o nome do programa criado anteriormente e no campo Screen Number escreva o numero: 100 e clique em Create.
  4. No campo Short Description coloque : Desenvolvimento Aberto.
  5. Na aba Flow Logic, apague o caractere de comentario “*”, deixando a linha: “MODULE STATUS_0100.” compilavel.
  6. De um duplo clique na variável “STATUS_0100“.
  7. Em Create PBO Module escolha: MAIN PROGRAM, clique em Ok e salve.spainter_pbo
  8. Digite a transação /nSE51, para voltar no Screen Painter, selecione modificar e clique em Layout.spainter_layout
  9. No editor de Layout clique no icone Dictionary ou aperte a tecla F6.
  10. Na tela seguinte, no campo Table/Field Name escolha a tabela SPFLI e clique no botão GET FROM DICTIONARY.spainter_dict
  11. Selecione todos os campos, clique em OK e solte os componentes na tela (não converta nenhum componente).
  12. Coloque um componente BOX na tela e de um duplo clique, na janela de propriedades, mude a  propriedade Text para: Reserva de Voo.
  13. Coloque um PushButton na tela e preencha as propriedades: Name = Mostrar, Text = Mostrar e FctCode = F_MOSTRAR.
  14. 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.
  15. Alinhe o Desing da tela como na figura abaixo.spainter_design
  16. Clique em Save, Activate e pressione Flow Logic.
  17. Na aba Element List, no elemento tipo OK nomeie para OK_CODE.spainter_okcode
  18. Na aba Attributes em Cursor Position escolha: SPFLI_CARRID
  19. Clique em Activate e volte para a transação SE38  e abra o seu programa ZDesignFirst.
  20. 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:

spainter_programa

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.
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