2007 Oct 09 9:03 PM
Hi Gurus,
Im beginner with OO Abap. Please give me a hand with this.
Im using the programming interface REPORT Z_TEST_ST_TEXT_EDITOR for text editor found on /people/igor.barbaric/blog/2005/06/06/the-standard-text-editor-oo-abap-cfw-class which is good and useful for me (highly recommended) but I need to import the text created (t_text) in method constructor in order to send it via e.mail.
Could anybody tell me how to get/import the text created?
Thank you in advance.
Below is the coding. (program which uses the developed class and method consisting the created text)
DATA: o_txe TYPE REF TO <b>zcl_standard_text_editor</b>,
v_caption TYPE char100,
s_thead TYPE thead.
call screen
CALL SCREEN 0100.
MODULE s0100_start
MODULE s0100_start OUTPUT.
SET PF-STATUS 'BASIC'.
s_thead-tdname = 'VENDOR0000000011'.
s_thead-tdid = 'ST'.
s_thead-tdobject = 'TEXT'.
s_thead-tdspras = sy-langu.
CONCATENATE 'Standard text:' s_thead-tdname
INTO v_caption SEPARATED BY space.
IF o_txe IS INITIAL.
<b> CREATE OBJECT o_txe</b>
EXPORTING i_thead = s_thead
i_caption = v_caption.
<b>IMPORTING????</b>
ENDIF.
ENDMODULE.
****************************************************
<b>method CONSTRUCTOR</b>.
DATA: o_dialogbox TYPE REF TO cl_gui_dialogbox_container,
t_text TYPE STANDARD TABLE OF tdline,
s_event TYPE cntl_simple_event,
t_events TYPE cntl_simple_events,
t_lines TYPE STANDARD TABLE OF tline,
v_text TYPE tdline,
v_text_temp TYPE tdline,
v_line_temp TYPE tdline,
v_line_len TYPE i,
v_index TYPE i.
FIELD-SYMBOLS: <line> TYPE tline.
me->thead = i_thead.
me->caption = i_caption.
*------ containers
IF i_container IS INITIAL.
CREATE OBJECT o_dialogbox
EXPORTING top = 50
left = 200
height = 150
width = 500
caption = i_caption.
me->main_container = o_dialogbox.
SET HANDLER me->on_container_close FOR o_dialogbox.
ELSE.
me->main_container = i_container.
ENDIF.
IF me->splitter IS INITIAL.
CREATE OBJECT me->splitter
EXPORTING
parent = me->main_container
orientation = me->splitter->orientation_vertical
sash_position = 10. "percentage of containers
------ toolbar
CREATE OBJECT me->toolbar
EXPORTING parent = me->splitter->top_left_container.
CALL METHOD me->toolbar->add_button
EXPORTING fcode = me->c_save
is_disabled = ' '
icon = '@2L@' "icon_system_save
butn_type = cntb_btype_button.
CALL METHOD me->toolbar->add_button
EXPORTING fcode = me->c_close
is_disabled = ' '
icon = '@3X@' "icon_close
butn_type = cntb_btype_button.
*------ register events
REFRESH t_events.
s_event-eventid = cl_gui_toolbar=>m_id_function_selected.
s_event-appl_event = ' '.
APPEND s_event TO t_events.
CALL METHOD me->toolbar->set_registered_events
EXPORTING events = t_events.
SET HANDLER: me->on_toolbar_func_sel FOR me->toolbar.
*------ create textedit control
CREATE OBJECT me->textedit
EXPORTING parent = me->splitter->bottom_right_container.
ENDIF.
*----
get text
CALL FUNCTION 'READ_TEXT'
EXPORTING ID = me->thead-tdid
LANGUAGE = me->thead-tdspras
NAME = me->thead-tdname
OBJECT = me->thead-tdobject
TABLES LINES = t_lines
EXCEPTIONS ID = 1
LANGUAGE = 2
NAME = 3
NOT_FOUND = 4
OBJECT = 5
REFERENCE_CHECK = 6
WRONG_ACCESS_TO_ARCHIVE = 7
OTHERS = 8.
*------- convert text to text editor format
LOOP AT t_lines ASSIGNING <line>.
IF <line>-tdformat = space OR <line>-tdformat = '=' OR sy-tabix = 1.
v_line_temp = <line>-tdline.
CONCATENATE v_text v_line_temp INTO v_text_temp.
ELSE.
CONCATENATE: cl_abap_char_utilities=>cr_lf <line>-tdline
INTO v_line_temp.
CONCATENATE v_text v_line_temp INTO v_text_temp.
ENDIF.
IF sy-subrc = 0.
v_text = v_text_temp.
ELSE.
APPEND v_text TO t_text.
v_text = v_line_temp.
ENDIF.
ENDLOOP.
IF sy-subrc = 0.
APPEND v_text TO <b>t_text</b>.
ENDIF.
*------- display text
CALL METHOD me->textedit->set_text_as_stream
EXPORTING text = t_text.
me->t_initial_text = t_text.
endmethod.
2007 Oct 10 5:07 AM
Hello Sasha
The class ZCL_STANDARD_TEXT_EDITOR will use the text object information to read the texts from the DB (tables STXH and others) using function module READ_TEXT, e.g.:
CALL FUNCTION 'READ_TEXT'
EXPORTING
* CLIENT = SY-MANDT
id = gs_header-tdid
language = gs_header-tdspras
name = gs_header-tdname
object = gs_header-tdobject
* ARCHIVE_HANDLE = 0
* LOCAL_CAT = ' '
* IMPORTING
* HEADER =
TABLES
lines = gt_lines " type table of TDLINE
EXCEPTIONS
id = 1
language = 2
name = 3
not_found = 4
object = 5
reference_check = 6
wrong_access_to_archive = 7
OTHERS = 8.
IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.To fill the textedit control you can use the following method:
CALL METHOD go_textedit->set_text_as_r3table
EXPORTING
table = gt_lines
EXCEPTIONS
error_dp = 1
error_dp_create = 2
OTHERS = 3.
IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.Finally, to retrieve the text from the control you can use:
CALL METHOD go_textedit->get_text_as_r3table
* EXPORTING
* ONLY_WHEN_MODIFIED = FALSE
IMPORTING
TABLE = gt_lines
* IS_MODIFIED =
* EXCEPTIONS
* ERROR_DP = 1
* ERROR_CNTL_CALL_METHOD = 2
* ERROR_DP_CREATE = 3
* POTENTIAL_DATA_LOSS = 4
* others = 5
.
IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
CALL METHOD go_textedit->get_text_as_stream
* EXPORTING
* ONLY_WHEN_MODIFIED = FALSE
IMPORTING
TEXT = gt_lines
* IS_MODIFIED =
* EXCEPTIONS
* ERROR_DP = 1
* ERROR_CNTL_CALL_METHOD = 2
* others = 3
.
IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.The text stream method returns text as stream with carrige retruns and linefeeds. Perhaps you have to use another itab having a different line type (<> TDLINE).
Thus, add a method to the class which retrieves the current text using the methods mentioned above.
Regards
Uwe
2007 Oct 10 4:33 PM
Hello Uwe,
Thanks for your reply. May be I was not clear with my question.
The text is filled and coding I use is OK (thanks for yours also) but I need to send the lines after "CREATE OBJECT" (t_text in coding I sent to you or gt_lines whatever). It' s visible inside the class only but I need to have later. How to do it?
MODULE s0200_start OUTPUT.
SET PF-STATUS 'BASIC'.
s_thead-tdname = 'Message Text'.
s_thead-tdid = 'ST'.
s_thead-tdobject = 'TEXT'.
s_thead-tdspras = sy-langu.
CONCATENATE 'Standard text:' s_thead-tdname
INTO v_caption SEPARATED BY space.
CLEAR o_txe.
IF o_txe IS INITIAL.
<b>CREATE OBJECT o_txe</b> EXPORTING i_thead = s_thead
i_caption = v_caption.
????? <b>importing</b> ???????
Thanks again,
2007 Oct 10 7:48 PM
2007 Oct 10 5:42 AM
good book on ABAP objects(OOPS)
http://www.sapgenie.com/abap/OO/
http://www.sapgenie.com/abap/OO/index.htm
http://help.sap.com/saphelp_nw04/helpdata/en/c3/225b5654f411d194a60000e8353423/content.htm
http://www.esnips.com/doc/375fff1b-5a62-444d-8ec1-55508c308b17/prefinalppt.ppt
http://www.esnips.com/doc/2c76dc57-e74a-4539-a20e-29383317e804/OO-abap.pdf
http://www.esnips.com/doc/5c65b0dd-eddf-4512-8e32-ecd26735f0f2/prefinalppt.ppt
http://www.sapgenie.com/abap/OO/
http://www.sapgenie.com/abap/OO/index.htm
http://www.sapgenie.com/abap/controls/index.htm
http://www.esnips.com/doc/2c76dc57-e74a-4539-a20e-29383317e804/OO-abap.pdf
http://www.esnips.com/doc/0ef39d4b-586a-4637-abbb-e4f69d2d9307/SAP-CONTROLS-WORKSHOP.pdf
http://www.sapgenie.com/abap/OO/index.htm
http://help.sap.com/saphelp_erp2005/helpdata/en/ce/b518b6513611d194a50000e8353423/frameset.htm
http://www.sapgenie.com/abap/OO/
these links
http://help.sap.com/saphelp_47x200/helpdata/en/ce/b518b6513611d194a50000e8353423/content.htm
For funtion module to class
http://help.sap.com/saphelp_47x200/helpdata/en/c3/225b5954f411d194a60000e8353423/content.htm
for classes
http://help.sap.com/saphelp_47x200/helpdata/en/c3/225b5c54f411d194a60000e8353423/content.htm
for methods
http://help.sap.com/saphelp_47x200/helpdata/en/08/d27c03b81011d194f60000e8353423/content.htm
for inheritance
http://help.sap.com/saphelp_47x200/helpdata/en/dd/4049c40f4611d3b9380000e8353423/content.htm
for interfaces
http://help.sap.com/saphelp_47x200/helpdata/en/c3/225b6254f411d194a60000e8353423/content.htm
For Materials:
1) http://help.sap.com/printdocu/core/Print46c/en/data/pdf/BCABA/BCABA.pdf -- Page no: 1291
2) http://esnips.com/doc/5c65b0dd-eddf-4512-8e32-ecd26735f0f2/prefinalppt.ppt
3) http://esnips.com/doc/2c76dc57-e74a-4539-a20e-29383317e804/OO-abap.pdf
4) http://esnips.com/doc/0ef39d4b-586a-4637-abbb-e4f69d2d9307/SAP-CONTROLS-WORKSHOP.pdf
5) http://esnips.com/doc/92be4457-1b6e-4061-92e5-8e4b3a6e3239/Object-Oriented-ABAP.ppt
6) http://esnips.com/doc/448e8302-68b1-4046-9fef-8fa8808caee0/abap-objects-by-helen.pdf
7) http://esnips.com/doc/39fdc647-1aed-4b40-a476-4d3042b6ec28/class_builder.ppt
😎 http://www.amazon.com/gp/explorer/0201750805/2/ref=pd_lpo_ase/102-9378020-8749710?ie=UTF8
1) http://www.erpgenie.com/sap/abap/OO/index.htm
2) http://help.sap.com/saphelp_nw04/helpdata/en/ce/b518b6513611d194a50000e8353423/frameset.htm
Rewards if useful......................
Minal