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

Text Editor using cl_gui_textedit

Former Member
0 Likes
3,468

Hi,

I need a text editor box on selection screen in display mode. and I'm using cl_gui_textedit class to get it.. but for some reason its not working.

Here is the code below -

report YLTEST1

no standard page heading line-size 255.

DATA: g_text_editor TYPE REF TO cl_gui_textedit,

g_text_container TYPE REF TO cl_gui_custom_container,

g_gen_text_editor TYPE REF TO cl_gui_textedit,

g_gen_text_container TYPE REF TO cl_gui_custom_container.

DATA: WORDWRAP_POSITION LIKE CL_GUI_TEXTEDIT=>M_WORDWRAP_POSITION.

data: g_gen_txt_container TYPE scrfname VALUE 'GENERAL_TEXT_FOR_REPS'.

DATA: TEXT_TAB TYPE STANDARD TABLE OF LINE.

parameters: p_check.

at selection-screen output.

  • Create sales Text container

WORDWRAP_POSITION = 100.

IF G_GEN_TEXT_CONTAINER IS INITIAL.

CREATE OBJECT:

G_GEN_TEXT_CONTAINER EXPORTING CONTAINER_NAME = G_GEN_TXT_CONTAINER,

G_GEN_TEXT_EDITOR EXPORTING PARENT = G_GEN_TEXT_CONTAINER

WORDWRAP_MODE = CL_GUI_TEXTEDIT=>WORDWRAP_AT_FIXED_POSITION

WORDWRAP_POSITION = WORDWRAP_POSITION

WORDWRAP_TO_LINEBREAK_MODE = CL_GUI_TEXTEDIT=>TRUE.

ENDIF.

IF not G_GEN_TEXT_CONTAINER IS INITIAL.

  • Set container options

CALL METHOD: G_GEN_TEXT_EDITOR->SET_TOOLBAR_MODE

EXPORTING TOOLBAR_MODE = 0,

G_GEN_TEXT_EDITOR->SET_READONLY_MODE

EXPORTING READONLY_MODE = 1,

G_GEN_TEXT_EDITOR->SET_STATUSBAR_MODE

EXPORTING STATUSBAR_MODE = 0,

G_GEN_TEXT_EDITOR->SET_AUTOINDENT_MODE

EXPORTING AUTO_INDENT = 1.

  • Pass the text to the sales text container

CALL METHOD G_GEN_TEXT_EDITOR->SET_TEXT_AS_STREAM

EXPORTING

TEXT = TEXT_TAB.

endif.

4 REPLIES 4
Read only

former_member156446
Active Contributor
0 Likes
1,291

looks like you are creating a screen

CREATE OBJECT:
    G_GEN_TEXT_CONTAINER EXPORTING CONTAINER_NAME = G_GEN_TXT_CONTAINER,

make sure you are using that screen in fact calling screen.

Read only

0 Likes
1,291

Do I need to create a screen or anything like that... I just coded this and trying to execute..

Read only

former_member156446
Active Contributor
0 Likes
1,291

you need to create a container in se51 and assign the container name as you declared in the program.

[Concept of OO|http://help.sap.com/saphelp_nw70/helpdata/en/2a/755b94ca5911d299af5c9604c10e27/content.htm]

[Create Text Editor Source code|https://wiki.sdn.sap.com/wiki/x/780] by Karthikeyan

Read only

naimesh_patel
Active Contributor
1,291

Try this way:


DATA: lo_dock TYPE REF TO cl_gui_docking_container.
DATA: lo_text_editor TYPE REF TO cl_gui_textedit.

DATA: lt_tab TYPE STANDARD TABLE OF char80.
DATA: la_tab LIKE LINE OF lt_tab.

DATA: w_carrid TYPE sflight-carrid.

** Selection Screen
SELECTION-SCREEN: BEGIN OF BLOCK blk1 WITH FRAME TITLE aaa.
SELECT-OPTIONS: s_carrid FOR w_carrid.
SELECTION-SCREEN: END   OF BLOCK blk1.

INITIALIZATION.
* Docking container
  CHECK lo_dock IS INITIAL.
  CREATE OBJECT lo_dock
    EXPORTING
      repid     = sy-cprog
      dynnr     = sy-dynnr
      ratio     = 80
      side      = cl_gui_docking_container=>dock_at_bottom
      name      = 'DOCK_CONT'.
  IF sy-subrc <> 0.
    MESSAGE 'Error in the Docking control' TYPE 'S'.
  ENDIF.

* Text Editor
  CREATE OBJECT lo_text_editor
    EXPORTING
      parent                 = lo_dock
    EXCEPTIONS
      error_cntl_create      = 1
      error_cntl_init        = 2
      error_cntl_link        = 3
      error_dp_create        = 4
      gui_type_not_supported = 5
      OTHERS                 = 6
      .
  IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.

* Set text
  la_tab = 'This is test'.
  APPEND la_tab TO lt_tab.

  CALL METHOD lo_text_editor->set_text_as_r3table
    EXPORTING
      table           = lt_tab
    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.

Regards,

Naimesh Patel