Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

How can I importing when create object?

Former Member
0 Likes
1,377

Hi Gurus,

I’m beginner with OO Abap. Please give me a hand with this.

I’m 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.

4 REPLIES 4
Read only

uwe_schieferstein
Active Contributor
0 Likes
933

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

Read only

0 Likes
933

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,

Read only

0 Likes
933

Thanks again everybody,

I solved it.

Read only

Former Member
0 Likes
933

good book on ABAP objects(OOPS)

http://www.esnips.com/doc/bc475662-82d6-4412-9083-28a7e7f1ce09/Abap-Objects---An-Introduction-To-Pro...

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.allsaplinks.com/

http://www.sap-img.com/

http://www.sapgenie.com/

http://help.sap.com

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