‎2008 Apr 21 9:11 PM
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
‎2008 Apr 23 2:14 PM
Problem still exists
Sorry, I posted it by mistake
Edited by: Piotr Wojciechowski on Apr 23, 2008 11:07 PM
‎2008 Apr 23 10:57 PM
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