REPORT z_caixa_de_texto.
* Opa pessoal, quando vamos montar telas para os nossos queridos User
* colocamos sempre os campos da tabela que estamos trabalhando e na maioria
* das vezes só os campos mais importantes, só que as vezes esses mesmos
* users querem uma caixa de texto lateral ou abaixo das informações para
* principais para que seja possível incluir observações sobre o processo,
* documento ou qualquer outra coisa que esteja fazendo... Até aí sem problema.
* O problema começa quando o objeto de caixa de texto não é existe na caixa
* de ferramentas da edição da screen, nesse momento vamos descobrir a usar
* a classe CL_GUI_TEXTEDIT.
* No final contem os prints de tela.
* Caso não lembre como ver os dados gravados em um Objeto de texto.
* Como em todos os posts estarei fazendo os comentários no meio do código,
* bons estudos =).
DATA :
o_docking TYPE REF TO cl_gui_docking_container,
o_editor TYPE REF TO cl_gui_textedit.
* Tela Principal
CALL SCREEN 9000.
*&---------------------------------------------------------------------*
*& Module INIT OUTPUT
*&---------------------------------------------------------------------*
MODULE init OUTPUT.
CREATE OBJECT o_docking
EXPORTING
repid = sy-repid " Report to Which This Docking Control is Linked
dynnr = '9000'. " Screen to Which This Docking Control is Linked
IF o_editor IS NOT BOUND.
* Limite do docking que conterá o textedit
o_docking->set_extension( 400 ).
* Criação do objeto da caixa de texto com limitações de quantidade total e
* quantidade total por linha.
CREATE OBJECT o_editor
EXPORTING
max_number_chars = 100
parent = o_docking
wordwrap_mode = cl_gui_textedit=>wordwrap_at_fixed_position
wordwrap_position = 25
wordwrap_to_linebreak_mode = cl_gui_textedit=>true.
* Abaixo eu criei um perform para dar get e set na caixa de texto pois
* o mesmo usaria as mesmas variaveis no read_text e save_text, sendo o
* o primeiro parametro ( que nesse caso é o 'SET' como chave para o processo
* READ_TEXT -> SET_TEXT_AS_R3TABLE
PERFORM f_get_set_text_to_editor USING 'SET' o_editor.
ENDIF.
ENDMODULE. " INIT OUTPUT
* Opa pessoal, quando vamos montar telas para os nossos queridos User
* colocamos sempre os campos da tabela que estamos trabalhando e na maioria
* das vezes só os campos mais importantes, só que as vezes esses mesmos
* users querem uma caixa de texto lateral ou abaixo das informações para
* principais para que seja possível incluir observações sobre o processo,
* documento ou qualquer outra coisa que esteja fazendo... Até aí sem problema.
* O problema começa quando o objeto de caixa de texto não é existe na caixa
* de ferramentas da edição da screen, nesse momento vamos descobrir a usar
* a classe CL_GUI_TEXTEDIT.
* No final contem os prints de tela.
* Caso não lembre como ver os dados gravados em um Objeto de texto.
* Como em todos os posts estarei fazendo os comentários no meio do código,
* bons estudos =).
DATA :
o_docking TYPE REF TO cl_gui_docking_container,
o_editor TYPE REF TO cl_gui_textedit.
* Tela Principal
CALL SCREEN 9000.
*&---------------------------------------------------------------------*
*& Module INIT OUTPUT
*&---------------------------------------------------------------------*
MODULE init OUTPUT.
CREATE OBJECT o_docking
EXPORTING
repid = sy-repid " Report to Which This Docking Control is Linked
dynnr = '9000'. " Screen to Which This Docking Control is Linked
IF o_editor IS NOT BOUND.
* Limite do docking que conterá o textedit
o_docking->set_extension( 400 ).
* Criação do objeto da caixa de texto com limitações de quantidade total e
* quantidade total por linha.
CREATE OBJECT o_editor
EXPORTING
max_number_chars = 100
parent = o_docking
wordwrap_mode = cl_gui_textedit=>wordwrap_at_fixed_position
wordwrap_position = 25
wordwrap_to_linebreak_mode = cl_gui_textedit=>true.
* Abaixo eu criei um perform para dar get e set na caixa de texto pois
* o mesmo usaria as mesmas variaveis no read_text e save_text, sendo o
* o primeiro parametro ( que nesse caso é o 'SET' como chave para o processo
* READ_TEXT -> SET_TEXT_AS_R3TABLE
PERFORM f_get_set_text_to_editor USING 'SET' o_editor.
ENDIF.
ENDMODULE. " INIT OUTPUT