SubScreenArea
É um componente da categoria de elementos complexos de tela do Screen Painter que permite marcar uma área da tela que será substituída por uma sub-tela em tempo de execução. Uma SubScreenArea permite que você tenha um efeito de painéis sobrepostos uns aos outros.
Screen Painter
Para usar o componente SubScreenArea siga os seguintes passos:
- Crie um programa chamado Zsubscreen.
- Na transação Se51 crie a tela numero 100, está será sua tela principal.
- A tela principal contém um Text Field, um Box, um SubScreenArea e um PushButton.
- Para o botão coloque o function code F_SAIR e nomeie o SubScreenArea de SSA1, nomeie os outros componentes da tela como desejar.
- Disponha os elementos como no layout abaixo:
- Crie a tela 110 com o tipo de tela da aba Attributes: SubScreen.
- Para esta coloque 2 Text Fields, um Box, e um PushButton.
- Nomeie o Box de SSA1 e insira o function code do botão de F_S1A, nomeie os outros componentes como desejar.
- Use a figura abaixo para o design:
- Crie a tela 120 com o tipo de tela da aba Attributes: SubScreen.
- Para esta coloque 2 Text Fields, um Box, e um PushButton.
- Nomeie o Box de SSA1 e insira o function code do botão de F_S2V, nomeie os outros componentes como desejar.
- Use o seguinte Layout:
- Ative todas as telas.
- Na tela 100 use o código abaixo para o Flow Logic.
- Use o código abaixo para o programa.
- Ative e teste o programa.
Exemplo:
Neste exemplo criamos um programa básico de 3 telas com 2 sub telas e fazemos este programa se comportar como um Wizard sobrepondo os painéis de acordo com a necessidade do programador.
Abap
Flow Logic – Tela 100
PROCESS BEFORE OUTPUT. MODULE STATUS_0100. CALL SUBSCREEN SSA1 INCLUDING sy-repid painel. * PROCESS AFTER INPUT. MODULE USER_COMMAND_0100. CALL SUBSCREEN SSA1.
Programa- ZSubScreen
*&---------------------------------------------------------------------*
*& Report ZSUBSCREEN
*&
*&---------------------------------------------------------------------*
*& Desenvolvimento Aberto
*& Sub Screens - Painéis
*&---------------------------------------------------------------------*
REPORT ZSUBSCREEN.
* Declara eventos dos botões
DATA: ok_code TYPE sy-ucomm,
clique_ok TYPE sy-ucomm.
* Cria componente Painel (SubScreens)
DATA painel(4) TYPE n VALUE '0110'.
* Chama tela 100
CALL SCREEN 100.
MODULE STATUS_0110 OUTPUT.
* Crie um menu para este programa.
* SET PF-STATUS 'xxxxxxxx'.
* SET TITLEBAR 'xxx'.
ENDMODULE. " STATUS_0110 OUTPUT
MODULE USER_COMMAND_0100 INPUT.
* Previne OK_CODE de sujeiras PAI
clique_ok = ok_code.
CLEAR ok_code.
* Eventos dos botões
CASE clique_ok.
WHEN 'F_SAIR'.
LEAVE PROGRAM.
WHEN 'F_S1A'.
painel = '0120'.
WHEN 'F_S2V'.
painel = '0110'.
ENDCASE.
ENDMODULE. " USER_COMMAND_0100 INPUT











