quinta-feira, 26 de abril de 2012

Classe - CL_GUI_TEXTEDIT

  "  Opa, tudo bem aii? Hoje vou passar pra vocês como fazer uma caixa
" de texto na sua tela para que o pessoal possa faze comentários sobre 
" algo, primeiramente estarei mostrando como faz um, daqui a pouco num
" post futuro eu posto usando na prática gravando e deletando estes 
" comentário.
"  Ahhh, eu criei uma tela com um Custom Control, vocês vão perceber 
" isso quando verem a classe que o objeto Container está sendo referenciado,
" o nome deste Custom Control está sendo informado quando eu crio o 
" Container. Outra coisa.... Isso eh um report não eh um module mas se quiser
" fazer em Module Pool fiquem a vontade.

REPORT z_cl_gui_textedit.

" Variáveis Globais
DATA:
  ok_code   TYPE sy-ucomm.

" Estruturas e tabelas internas
DATA:
  st_tdline  TYPE tdline,
  it_tdline  TYPE TABLE OF tdline.

" Objetos
DATA:
  container TYPE REF TO cl_gui_custom_container,
  editor    TYPE REF TO cl_gui_textedit.

" Início do processo

START-OF-SELECTION.

  " Chama tela de o Custom Control de caixa de texto.
  CALL SCREEN 9001.

END-OF-SELECTION.



*&---------------------------------------------------------------------*
*&      Module  STATUS_9001  OUTPUT
*&---------------------------------------------------------------------*

MODULE status_9001 OUTPUT.
  SET PF-STATUS 'DEFAULT'.
*  SET TITLEBAR 'xxx'.

ENDMODULE.                 " STATUS_9001  OUTPUT

*&---------------------------------------------------------------------*
*&      Module  USER_COMMAND_9001  INPUT
*&---------------------------------------------------------------------*
MODULE user_command_9001 INPUT.

  CASE ok_code.
    WHEN 'EXEC'.
    WHEN 'SAVE'.
    WHEN 'BACK'.
      LEAVE PROGRAM.
    WHEN 'CANCEL' OR 'EXIT'.
      LEAVE PROGRAM.
    WHEN OTHERS.
  ENDCASE.

ENDMODULE.                 " USER_COMMAND_9001  INPUT

*&---------------------------------------------------------------------*
*&      Module  INITIALIZATION_9001  OUTPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE initialization_9001 OUTPUT.

  "  Verifica se os objetos Container e editor já foram criados
  IF container IS INITIAL AND editor IS INITIAL.
    "  Aqui estamos criando o container exportando para o Objeto o Nome do
    " Custom control criado na tela que irá receber o editor.
    CREATE OBJECT: container EXPORTING container_name = 'TEXTEDIT',
"  E aqui estamos criando o editor de texto, exportando o container como
" local.
                   editor    EXPORTING parent         = container.
  ENDIF.

  " Coloquei texto dentro da tabela pra ver alguma coisa no container.
  st_tdline = 'texto breve'.
  APPEND st_tdline TO it_tdline.

  "  Está sendo chamada um metodo da classe referenciada do objeto Editor,
  " este método usado faz mostrar os dados da tabela no Container.
  CALL METHOD editor->set_text_as_stream
    EXPORTING
      text = it_tdline.

ENDMODULE.                 " INITIALIZATION_9001  OUTPUT

2 comentários:

  1. Como Faço para recuperar o valor informado na caixa de texto depois de executar a tela. exemplo informo a palavra teste no editor e noPBO recupero este valor.

    ResponderExcluir