Application Development 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: 

Text Editor get refresh for 2 time

Former Member
0 Kudos

Hello all,


Below is my coad, if i run it once it will capture the value of text editor and put it into the g_mytable, but when i come back to selection screen after 1 time execution and during 2 time execution its not capture value of text editor.


can anyone help me for how holding value every time in internal table via GET_TEXT_AS_R3TABLE method of CL_GUI_TEXTEDIT class.


CONSTANTS: line_length type I value 254.

data: GC_CONTAINER type ref to cl_gui_custom_container,

         GC_editor type ref to cl_gui_textedit,

         GV_text type string,

         g_container_linked TYPE i,     " container to which control is linked

         g_mytable(line_length) TYPE c OCCURS 0,

         g_mycontainer(30) TYPE c.      " string for the containers

start-of-selection.

   call screen '0100'.

*&---------------------------------------------------------------------*

*&      Module  STATUS_0100  OUTPUT

*&---------------------------------------------------------------------*

*       text

*----------------------------------------------------------------------*

MODULE STATUS_0100 OUTPUT.

 

   SET PF-STATUS 'ZTEXTEDIT_TEST'.

   CREATE OBJECT GC_CONTAINER

     EXPORTING

       CONTAINER_NAME                   = 'TEXTEDITOR'

     EXCEPTIONS

       CNTL_ERROR                            = 1

       CNTL_SYSTEM_ERROR             = 2

       CREATE_ERROR                       = 3

       LIFETIME_ERROR                      = 4

       LIFETIME_DYNPRO_DYNPRO_LINK = 5

       others                                        = 6.

   g_mycontainer = 'TEXTEDITOR'.

   CREATE OBJECT GC_editor

     EXPORTING

       PARENT                                                 = GC_CONTAINER

       WORDWRAP_MODE                              = '2'

       WORDWRAP_POSITION                         = 75

       WORDWRAP_TO_LINEBREAK_MODE     = CL_GUI_TEXTEDIT=>TRUE "FALSE

     EXCEPTIONS

       ERROR_CNTL_CREATE                              = 1

       ERROR_CNTL_INIT                                     = 2

       ERROR_CNTL_LINK                                   = 3

       ERROR_DP_CREATE                                = 4

       GUI_TYPE_NOT_SUPPORTED                   = 5

       others                                                       = 6.

   CALL METHOD gc_editor->set_toolbar_mode

     EXPORTING

       toolbar_mode = cl_gui_textedit=>FALSE.

   CALL METHOD gc_editor->set_statusbar_mode

     EXPORTING

       statusbar_mode = cl_gui_textedit=>FALSE.

ENDMODULE.                 " STATUS_0100  OUTPUT



*&---------------------------------------------------------------------*

*&      Module  USER_COMMAND_0100  INPUT

*&---------------------------------------------------------------------*

MODULE USER_COMMAND_0100 INPUT.

   case sy-ucomm.

     when 'EXIT'.


       if not gc_editor is initial.

         CALL METHOD gc_editor->free

           EXCEPTIONS

             others = 1.

         if sy-subrc ne 0.

         endif.

         free gc_editor.

       endif.


       if not gc_container is initial.

         CALL METHOD gc_container->free

           EXCEPTIONS

             others = 1.

         if sy-subrc <> 0.

         endif.

         free gc_container.

       endif.

       CALL METHOD cl_gui_cfw=>flush

         EXCEPTIONS

           OTHERS = 1.

       leave program.

     WHEN 'EXE'.

       break dgiri.

       CALL METHOD GC_editor->GET_TEXT_AS_R3TABLE

*     EXPORTING

*       ONLY_WHEN_MODIFIED     = CL_GUI_TEXTEDIT=>TRUE

         IMPORTING

           TABLE                             = g_mytable

*          IS_MODIFIED                   = IS_MODIFIED

         EXCEPTIONS

           ERROR_DP                              = 1

           ERROR_CNTL_CALL_METHOD = 2

           ERROR_DP_CREATE               = 3

           POTENTIAL_DATA_LOSS         = 4

           others                                      = 5.

       CALL METHOD cl_gui_cfw=>flush

         EXCEPTIONS

           OTHERS = 1.

   endcase.

ENDMODULE.                 " USER_COMMAND_0100  INPUT



Thanks in Advance

Jahnavee Trivedi

1 ACCEPTED SOLUTION

raymond_giuseppi
Active Contributor
0 Kudos

First adjust the PBO module, check that objects are not already assigned before creating them again (also actually check the error returned codes) :


IF object IS INITIAL.

  CREATE object...

ENDIF.

NB: You could also add some CLEAR object after object->free to prevent you against different behavior of the free method.

Regards,

Raymond

2 REPLIES 2

raymond_giuseppi
Active Contributor
0 Kudos

First adjust the PBO module, check that objects are not already assigned before creating them again (also actually check the error returned codes) :


IF object IS INITIAL.

  CREATE object...

ENDIF.

NB: You could also add some CLEAR object after object->free to prevent you against different behavior of the free method.

Regards,

Raymond

0 Kudos

hi Raymond,

I put the condition if object is initial. and it resolve my problem. Thank You. 🙂