SAP Container é um controle que acomoda outros controles, como o SAP Tree, o SAP Picture , 0 SAP TextEdit , e assim por diante. Ele gerencia esses controles logicamente em uma coleção, e fornece uma área física em que eles são exibidos. Existem cinco tipos de SAP Containers.
CL_GUI_SPLITTER_CONTAINER
Representa um controle que consiste de uma barra móvel que divide a área de exibição de um recipiente em dois painéis redimensionáveis. Permite exibir mais de um controle em uma determinada área, dividindo-o nas células.
CL_GUI_CONTAINER
Representa um painel que pode ser alocado dentro de uma célula de um container.
Screen Painter
Para usar o Sap Container no modo Splitter siga os seguintes passos:
- Crie um programa chamado ZSPLITERCONTAINER na transação SE38.
- Você pode criar um titulo e um menu para este programa na transação SE41 (Opcional).
- Crie uma tela de numero 100 para este programa no Screen Painter na transação SE51.
- Crie um evento PBO padrão para a variável Status 100 na aba Flow Logic.
- Em Layout coloque um componente Custom Control na tela e o nomeie como MEUCONTAINER.
- Ative a tela 100.
- Abra seu programa e utilize o código abaixo.
Exemplo:
Neste exemplo criamos uma tela à partir de um componente visual Custom Control que possui um painel contendo duas células redimensionáveis, cada uma contendo um painel que contem um outro componente Custom instanciado de um objeto.
Abap
*&---------------------------------------------------------------------*
*& Report ZSPLITERCONTAINER
*&
*&---------------------------------------------------------------------*
*& Desenvolvimento Aberto
*& SAP Container - Splitter
*&---------------------------------------------------------------------*
REPORT ZSPLITERCONTAINER.
* Declara componentes
DATA: meucontainer TYPE REF TO cl_gui_custom_container,
painel TYPE REF TO CL_GUI_SPLITTER_CONTAINER,
imagem TYPE REF TO CL_GUI_PICTURE,
editor TYPE REF TO cl_gui_textedit,
painel1 TYPE REF TO CL_GUI_CONTAINER,
painel2 TYPE REF TO CL_GUI_CONTAINER.
* Declara tabela interna
DATA: linha(256),
texto_tab LIKE STANDARD TABLE OF linha.
* Inicio do programa
START-OF-SELECTION.
* Adiciona texto na tabela interna
linha = 'O balonismo é um esporte aeronáutico praticado com um balão de ar quente.'.
APPEND linha TO texto_tab.
linha = 'Possui adeptos em todo o mundo. No Brasil, o esporte começou a se popularizar'.
APPEND linha TO texto_tab.
linha = 'a partir dos anos 90.'.
APPEND linha TO texto_tab.
linha = 'O balão é considerado uma aeronave assim como avião, helicópteros e outros.'.
APPEND linha TO texto_tab.
linha = 'Por esta razão o balão deve ter uma matricula (prefixo) registrado junto'.
APPEND linha TO texto_tab.
linha = 'à ANAC, seu piloto deve possuir uma licença (brevê) específico para a pratica'.
APPEND linha TO texto_tab.
linha = 'do balonismo também emitido pela ANAC.'.
APPEND linha TO texto_tab.
* Chama tela Screen Painter
CALL SCREEN 100.
* Modulo PBO
MODULE STATUS_0100 OUTPUT.
* SET PF-STATUS 'xxxxxxxx'.
* SET TITLEBAR 'xxx'.
* Cria componentes
* Cria componente Screen Painter Custom Container
CREATE OBJECT MEUCONTAINER
EXPORTING
CONTAINER_NAME = 'MEUCONTAINER'
LIFETIME = MEUCONTAINER->LIFETIME_DYNPRO.
* Cria Splitter Container
CREATE OBJECT PAINEL
EXPORTING
PARENT = MEUCONTAINER
ROWS = 1
COLUMNS = 2
ALIGN = 15.
* Exibe Painel 1
CALL METHOD PAINEL->GET_CONTAINER
EXPORTING
ROW = 1
COLUMN = 1
RECEIVING
CONTAINER = PAINEL1.
* Exibe Painel 2
CALL METHOD PAINEL->GET_CONTAINER
EXPORTING
ROW = 1
COLUMN = 2
RECEIVING
CONTAINER = PAINEL2.
* Cria imagem
CREATE OBJECT IMAGEM
EXPORTING
LIFETIME = IMAGEM->LIFETIME_DYNPRO
PARENT = PAINEL1.
*Chama imagem da url
CALL METHOD IMAGEM->load_picture_from_url
EXPORTING
url = 'https://desenvolvimentoaberto.org/wp-content/uploads/2014/04/balonismo.jpg'
EXCEPTIONS
error = 1.
* Cria Editor
CREATE OBJECT EDITOR
EXPORTING
PARENT = PAINEL2.
* Adiciona texto
CALL METHOD editor->set_text_as_stream
EXPORTING
text = texto_tab.
ENDMODULE. " STATUS_0100 OUTPUT











