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

Problem with refresh_table_display

Former Member
0 Likes
509

Hi there. I've got a code


*----------------------------------------------------------------------*
*   INCLUDE ZWOP_LISTING_INCL_UKOLY                                    *
*----------------------------------------------------------------------*


*&---------------------------------------------------------------------*
*&      Module  STATUS_1024  OUTPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE STATUS_1024 OUTPUT.
*  SET PF-STATUS 'xxxxxxxx'.
*  SET TITLEBAR 'xxx'.
  DATA: line   LIKE LINE OF G_ukoly .


* EDITOR
  DATA: L_utext TYPE ls_lch8192 OCCURS 0 .
  DATA: L_utmp LIKE zlhist03 .
  DATA: L_utmp2 LIKE zlhist04 .
  DATA: L_txt01(100) TYPE c .

  IF c_ukol02 IS INITIAL .
    create object c_ukol02
      exporting
        container_name = 'C_UKOL02' .

    create object e_ukol02
      exporting
         parent            = c_ukol02
         wordwrap_mode     = cl_gui_textedit=>wordwrap_at_fixed_position
         wordwrap_position = 80
      exceptions
         others            = 1.

    call method e_ukol02->set_statusbar_mode
      exporting statusbar_mode = 1.
    call method e_ukol02->set_toolbar_mode
      exporting toolbar_mode = 1.
  ENDIF .

  CALL METHOD e_ukol02->delete_text .
*  REFRESH L_utext .
*  CLEAR   L_utmp2 .


* 01
  IF ( C_UKOL01 IS INITIAL ) .
    CREATE OBJECT c_ukol01
      EXPORTING container_name = 'C_UKOL01'.
  ENDIF .

  IF ( g_report01 IS INITIAL ) .
    CREATE OBJECT g_ukol01
      EXPORTING i_parent = c_ukol01 .
    PERFORM fieldcat_ukol01 .

    is_lay_ukol01-no_toolbar = 'X' .
    is_lay_ukol01-no_rowmark = 'X' .

    SET HANDLER lcl_event_receiver=>e_udclick
      FOR g_ukol01 .

    CALL METHOD g_ukol01->register_edit_event
      EXPORTING
        i_event_id = cl_gui_alv_grid=>mc_evt_modified .

    CALL METHOD g_ukol01->set_table_for_first_display
      EXPORTING is_layout       = is_lay_ukol01
                i_save          = 'A'
      CHANGING
                it_outtab       = G_ukoly[]
                it_fieldcatalog = ws_fcat_ukol01 .
  ELSE .
    CALL METHOD g_ukol01->refresh_table_display .
  ENDIF .

  LOOP AT SCREEN .
    IF ( SCREEN-NAME EQ 'B_UOK' ) .
      IF ( session_u-umode EQ 'N' ) OR ( session_u-umode EQ 'E' ) .
        SCREEN-ACTIVE = 1 .
        MODIFY SCREEN .
      ELSE .
        SCREEN-ACTIVE = 0 .
        MODIFY SCREEN .
      ENDIF .
    ENDIF .
  ENDLOOP .

  CLEAR: L_txt01 .
  WRITE ICON_MESSAGE_INFORMATION_SMALL TO L_txt01 AS ICON .
  IF ( session_u-umode EQ 'N' ) .
    CONCATENATE L_txt01 'Enter new text and press Ok' INTO L_txt01 .
    WRITE L_txt01 TO i_ucomm01 .
  ELSEIF ( session_u-umode EQ 'E' ) .
    CONCATENATE L_txt01 'Change text and press Ok' INTO L_txt01 .
    WRITE L_txt01 TO i_ucomm01 .
  ELSE .
    CLEAR i_ucomm01 .
  ENDIF .

  REFRESH L_text .
  READ TABLE G_ukoly INTO line INDEX session_u-uidx .
  APPEND line-text TO L_text .
  CALL METHOD e_ukol02->set_text_as_stream EXPORTING text = L_text .

ENDMODULE.                 " STATUS_1024  OUTPUT


*&---------------------------------------------------------------------*
*&      Module  USER_COMMAND_1024  INPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE USER_COMMAND_1024 INPUT.
  DATA: ucode LIKE sy-ucomm .
  DATA: unum_max TYPE i .

  DATA: L_ctext TYPE ls_lch8192 OCCURS 0 .
  DATA: L_cline LIKE LINE OF L_text.
  DATA: L_clenght TYPE i .
  DATA: clongchar TYPE ls_lch8192 .

  ucode = sy-ucomm .
  CLEAR sy-ucomm .
  CLEAR zlhist03 .
* CLEAR session_u .

  CASE ucode .
    WHEN 'F_ULEAVE' .
*     REFRESH data415 .
      CLEAR session_u .
      LEAVE TO SCREEN 0 .

    WHEN 'F_UNEWTASK' .
      session_u-umode = 'N' .
      CALL METHOD e_ukol02->delete_text .

    WHEN 'F_UOK' .
      IF ( session_u-umode EQ 'N' ) .
        SELECT SINGLE MAX( unum ) FROM zlhist03 INTO zlhist03-unum
        WHERE snr   = session_p-snr   AND
              bukrs = session_p-bukrs AND
              matkl = xmatkl          .

        CALL METHOD e_ukol02->get_text_as_stream
          IMPORTING text = L_ctext .
        LOOP AT L_ctext INTO L_cline.
          CONCATENATE clongchar L_cline INTO clongchar.
        ENDLOOP.
        L_clenght = strlen( clongchar ).

        zlhist03-snr   = session_p-snr .
        zlhist03-bukrs = session_p-bukrs .
        zlhist03-matkl = xmatkl .
        zlhist03-unum  = zlhist03-unum + 1 .
        zlhist03-delka = L_clenght .
        zlhist03-text  = clongchar .

        IF ( L_clenght GT 0 ) .
          MODIFY zlhist03 .
          G_ukoly-unum  = session_u-unum .
          G_ukoly-delka = L_clenght .
          G_ukoly-text  = clongchar .
          APPEND G_ukoly .                       " <= itab change
        ENDIF .
        CLEAR session_u-umode .
      ELSEIF ( session_u-umode EQ 'E' ) .
        CALL METHOD e_ukol02->get_text_as_stream
          IMPORTING text = L_ctext .
        LOOP AT L_ctext INTO L_cline.
          CONCATENATE clongchar L_cline INTO clongchar.
        ENDLOOP.
        L_clenght = strlen( clongchar ).

        zlhist03-snr   = session_p-snr .
        zlhist03-bukrs = session_p-bukrs .
        zlhist03-matkl = xmatkl .
        zlhist03-unum  = session_u-unum .
        zlhist03-delka = L_clenght .
        zlhist03-text  = clongchar .

        IF ( L_clenght GT 0 ) .
          MODIFY zlhist03 .
          G_ukoly-unum  = session_u-unum .
          G_ukoly-delka = L_clenght .
          G_ukoly-text  = clongchar .
          MODIFY G_ukoly INDEX session_u-uidx .  " <= itab change
        ENDIF .
        CLEAR session_u-umode .
      ENDIF .

    WHEN 'F_UDELTASK' .

  ENDCASE .
ENDMODULE.                 " USER_COMMAND_1024  INPUT


*&---------------------------------------------------------------------*
*&      Form  fieldcat_ukol01
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM fieldcat_ukol01.
* PERFORM append_wsfield_15 USING ws_field_report01 ws_fieldcat_report01
*   'ICON'    '' 0 1 0 '' 2 '' '' '' '' '' '' '' '' .
  PERFORM append_wsfield_15 USING ws_field_ukol01 ws_fcat_ukol01
    'TEXT'   '' 0 1 0 'Text' 50 '' '' '' '' '' '' '' '' .
ENDFORM.                    " fieldcat_ukol01

the doubleclick event is handled by


  METHOD e_udclick .
    DATA: line LIKE LINE OF G_ukoly .
    READ TABLE G_ukoly INTO line INDEX e_row-index .

    session_u-umode = 'E' . " EDIT
    session_u-unum = line-unum .
    session_u-uidx = e_row-index .

    CALL METHOD cl_gui_cfw=>set_new_ok_code
      EXPORTING
        new_code = 'SOMECODE'.
  ENDMETHOD .

when I douleclick grid row - text is to be shown in editor. Then I can modify that text and save. Save is done into database and into grid sourcetab G_ukoly. The problem is that G_ukoly is refreshed - modified rows are saved into that tab (it can be observed), but when displaying grid - old content is still visible, even after refresh_table_display . What am I doing wrong?

Edited by: Piotr Wojciechowski on Apr 23, 2008 3:05 PM

2 REPLIES 2
Read only

Former Member
0 Likes
471

Problem still exists

Sorry, I posted it by mistake

Edited by: Piotr Wojciechowski on Apr 23, 2008 11:07 PM

Read only

0 Likes
471

Hi,

Here before reading the table can u clear the table and read.

like this:

clear itab.

read table itab with key = lv_key.

may be this would solve.

Thanks

Anitha