Текущее время: Пн, июл 21 2025, 12:15

Часовой пояс: 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 часа


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

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


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

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