Visual – Sap Container – CL_GUI_CONTAINER e CL_GUI_SPLITTER_CONTAINER – Abap

Publicado: 26 de abril de 2014 em Abap

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.

Sap Container

Sap Container

Screen Painter

Para usar o Sap Container no modo Splitter siga os seguintes passos:

  1. Crie um programa chamado ZSPLITERCONTAINER na transação SE38.
  2. Você pode criar um titulo e um menu para este programa na transação SE41 (Opcional).
  3. Crie uma tela de numero 100 para este programa no Screen Painter na transação SE51.
  4. Crie um evento PBO padrão para a variável Status 100 na aba Flow Logic.
  5. Em Layout coloque um componente Custom Control na tela e o nomeie como MEUCONTAINER.
  6. Ative a tela 100.
  7. 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.files.wordpress.com/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
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