Текущее время: Сб, ноя 22 2025, 17:05

Часовой пояс: UTC + 3 часа


Правила форума


ВНИМАНИЕ!

Вопросы по SAP Query и Quick View - сюда



Начать новую тему Ответить на тему  [ Сообщений: 17 ]  На страницу Пред.  1, 2
Автор Сообщение
 Заголовок сообщения: Re: Обновление грида после события "DATA_CHANGED"
СообщениеДобавлено: Ср, янв 12 2011, 06:24 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Чт, ноя 11 2004, 16:25
Сообщения: 3109
Пол: Мужской
nickan, внимательно прочитайте тему. :wink:


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Обновление грида после события "DATA_CHANGED"
СообщениеДобавлено: Ср, янв 12 2011, 08:26 
Младший специалист
Младший специалист
Аватара пользователя

Зарегистрирован:
Чт, янв 14 2010, 13:26
Сообщения: 70
Откуда: Санкт-Петербург
Пол: Мужской
Если кому интересно - я решил эту проблему полным извратом, в связи с тем, что времени много нет...
После
Code:
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

Потом получаю объект этого алв
Code:
CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
    IMPORTING
      E_GRID = L_GRID.


Code:
FORM data_changed USING
     rr_data_changed TYPE REF TO cl_alv_changed_data_protocol.

  DATA: w_itab         TYPE LINE OF lvc_t_modi,
        itab           TYPE lvc_t_modi,
        ix             LIKE sy-tabix,
        lt_fcat        TYPE LVC_T_FCAT,
        event_receiver TYPE REF TO lcl_event_receiver.

  itab[] = rr_data_changed->mt_mod_cells[].

  CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
    IMPORTING
      E_GRID = L_GRID.

  LOOP AT itab INTO w_itab.
    ix = sy-tabix.

    CASE w_itab-fieldname.
      WHEN 'VIBOR'.
        READ TABLE IT_ztdocinfo INDEX w_itab-row_id.
        IF w_itab-value = 'X' AND
          ( ( IT_ztdocinfo-NALICHIE = icon_led_green AND p_create = 'X' ) OR
          ( IT_ztdocinfo-NALICHIE = icon_led_red AND p_change = 'X' ) ).
          IT_ztdocinfo-temp = 'X'.
          MODIFY IT_ztdocinfo INDEX w_itab-row_id.

        ENDIF.
    ENDCASE.
  ENDLOOP.

  IF event_receiver IS INITIAL.   "Такой изврат нужен чтобы отловить изменения редактируемых полей
    CREATE OBJECT event_receiver.
    SET HANDLER event_receiver->handle_data_changed_finished FOR L_GRID.
  ENDIF.

ENDFORM.                    "data_changed


Code:
CLASS lcl_event_receiver DEFINITION.

  PUBLIC SECTION.

    METHODS:
    handle_DATA_CHANGED_FINISHED
        FOR EVENT DATA_CHANGED_FINISHED OF cl_gui_alv_grid
            IMPORTING E_MODIFIED ET_GOOD_CELLS.

  PRIVATE SECTION.
    DATA: ls_stable TYPE lvc_s_stbl.
*&
ENDCLASS.                    "lcl_event_receiver DEFINITION

*----------------------------------------------------------------------*
*       CLASS lcl_event_receiver IMPLEMENTATION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS lcl_event_receiver IMPLEMENTATION.
  method handle_DATA_CHANGED_FINISHED.
    DATA:
          IS_stable  TYPE LVC_S_STBL.

    LOOP AT IT_ztdocinfo INTO TEMP_ZT where temp = 'X'.
      TEMP_ZT-vibor = ''.
      MODIFY IT_ztdocinfo FROM TEMP_ZT.
    ENDLOOP.

    IS_stable-ROW = 'X'.
    IS_stable-COL = 'X'.
    CALL METHOD L_GRID->REFRESH_TABLE_DISPLAY( IS_STABLE = IS_stable ).
  endmethod.                    "handle_DATA_CHANGED_FINISHED

ENDCLASS.                    "lcl_event_receiver IMPLEMENTATION


Получился полный бред, зато работает... Все из-за того, что ALV лучше сразу лупить через классы, 'REUSE_ALV_GRID_DISPLAY' - прошлый век получается....


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 17 ]  На страницу Пред.  1, 2

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: Ahrefs [Bot]


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB