Текущее время: Вс, июл 20 2025, 22:56

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 8 ] 
Автор Сообщение
 Заголовок сообщения: MESSAGE_TYPE_X в ALV-Grid при нажатии кнопки в поле
СообщениеДобавлено: Чт, ноя 21 2013, 17:01 
Старший специалист
Старший специалист

Зарегистрирован:
Пт, окт 15 2010, 14:06
Сообщения: 292
Есть Grid на классе CL_GUI_ALV_GRID. В Grid'е - 4 поля. Последнее поле - кнопка, вызывающая текстовый редактор. Для каждой записи, по кнопке сохраняется свой текст.
Grid редактируемый. Из кнопок модификации оставил только &LOCAL&APPEND и &LOCAL&DELETE_ROW.
Есть 2 случая:
1) Добавить сразу несколько строк и в них, нажимая кнопку, по которой выходит редактор - заполнять его текстом. Всё работает без нареканий.
2) Добавлять по одной строке, с нажатием кнопки вызова редактора. Тут косяк. На 3 записи, при нажатии кнопки в поле вылезает Dump. Почему? Как лечится?
После каждого вызова текстового редактора, объект самого редактора и контекнера - чистятся. Думаю, беда не в этом.

Перечитал over 9K постов (в том числе http://sapboard.ru/forum/viewtopic.php?f=13&t=61599), но всё не то.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: MESSAGE_TYPE_X в ALV-Grid при нажатии кнопки в поле
СообщениеДобавлено: Чт, ноя 21 2013, 17:10 
Старший специалист
Старший специалист

Зарегистрирован:
Чт, окт 22 2009, 12:41
Сообщения: 473
Если с кодом все нормально, не пробовали обновлять SAP GUI?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: MESSAGE_TYPE_X в ALV-Grid при нажатии кнопки в поле
СообщениеДобавлено: Чт, ноя 21 2013, 17:15 
Старший специалист
Старший специалист

Зарегистрирован:
Пт, окт 15 2010, 14:06
Сообщения: 292
2weise: Можно подробнее? Где-то на эту тему нота была какая-то?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: MESSAGE_TYPE_X в ALV-Grid при нажатии кнопки в поле
СообщениеДобавлено: Чт, ноя 21 2013, 17:16 
Старший специалист
Старший специалист

Зарегистрирован:
Пт, окт 15 2010, 14:06
Сообщения: 292
Кстати, попробовал вставить в DATA_CHANGED такой код:

Code:
FORM event_data_changed USING p_data_changed TYPE REF TO cl_alv_changed_data_protocol
                              p_onf4 p_onf4_before p_onf4_after.

*  CALL METHOD gr_grid->register_edit_event
*    EXPORTING i_event_id = cl_gui_alv_grid=>mc_evt_modified.
ENDFORM.                    " EVENT_DATA_CHANGED


Тогда, дамп вылезает на добавлении 3-ей строки, а не на кнопке вызова редактора в ней.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: MESSAGE_TYPE_X в ALV-Grid при нажатии кнопки в поле
СообщениеДобавлено: Чт, ноя 21 2013, 17:46 
Старший специалист
Старший специалист

Зарегистрирован:
Чт, окт 22 2009, 12:41
Сообщения: 473
На эту тему нот не помню. Но помню, что сообщения типа X в ALV иногда лечились обновлением саповского клиента.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: MESSAGE_TYPE_X в ALV-Grid при нажатии кнопки в поле
СообщениеДобавлено: Чт, ноя 21 2013, 17:48 
Старший специалист
Старший специалист

Зарегистрирован:
Пт, окт 15 2010, 14:06
Сообщения: 292
Ошибка возникает в методе класса CL_GUI_ALV_GRID->SAVE_DATA. На строке 270, с таким кодом:

Code:
*... Read the original rowID from frontend table
          read table mt_roid_front into ls_row_no
                     with key row_id = ls_good_cells-row_id.
          if sy-subrc ne 0.
            message x000(0k).
          endif.


Видимо, в MT_ROID_FRONT только ID той записи, которая добавлена во внутреннюю таблицу до вызова Grid'а.
А, SAVE_DATA, в моём случае, срабатывает на 3-ей строчке, который, как и 2-ой нет во внутренней таблице.
Это что же получается? Мы не можем сохранить новой записи, так как её нет во внутренней таблице, а во внутренней таблице она не появится, пока грид её не сохранит?
Может, кто пролъёт свет на это?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: MESSAGE_TYPE_X в ALV-Grid при нажатии кнопки в поле
СообщениеДобавлено: Пн, дек 02 2013, 10:23 
Младший специалист
Младший специалист

Зарегистрирован:
Ср, мар 24 2010, 08:46
Сообщения: 56
Пол: Мужской
Что-то подобное было.
А Вы событие handle_data_changed отлавливаете?
У меня проблема решилась корректной обработкой этого события. Найти там новые строки и сказать этому методу, что они хорошие. (Не помню, куда там что нужно положить, кода перед глазами нет). После этого стало все попадать куда нужно. И дампы пропали.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: MESSAGE_TYPE_X в ALV-Grid при нажатии кнопки в поле
СообщениеДобавлено: Вт, дек 03 2013, 09:23 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Чт, авг 22 2013, 01:09
Сообщения: 108
Откуда: г. Жлобин, Республика Беларусь
Пол: Мужской
Acid_Firewood написал(а):
Кстати, попробовал вставить в DATA_CHANGED такой код:

Code:
FORM event_data_changed USING p_data_changed TYPE REF TO cl_alv_changed_data_protocol
                              p_onf4 p_onf4_before p_onf4_after.

*  CALL METHOD gr_grid->register_edit_event
*    EXPORTING i_event_id = cl_gui_alv_grid=>mc_evt_modified.
ENDFORM.                    " EVENT_DATA_CHANGED


Тогда, дамп вылезает на добавлении 3-ей строки, а не на кнопке вызова редактора в ней.


Как правило регистрацию событий выполняют в том же месте, где происходит подготовка ALV к первому показу, т. е. где есть вызов метода set_table_for_first_display. И если есть необходимость обновить ALV по событию, то я обычно делаю это в рамках методе своего класса, который реагирует на событие data_change_finished, когда все обновление внутри ALV отработало, осталось его только перерисовать.

_________________
Когда другие слепо следуют за истиной, помни - ничто не истина.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 8 ] 

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


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

Сейчас этот форум просматривают: нет зарегистрированных пользователей


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

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