Текущее время: Пт, авг 01 2025, 14:46

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 17 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Проверки в ALV после обновления (refresh)
СообщениеДобавлено: Чт, апр 09 2009, 14:24 
Менеджер
Менеджер

Зарегистрирован:
Чт, фев 24 2005, 18:37
Сообщения: 530
Добрый день!

ALV построено через классы (CL_GUI_ALV_GRID).
В списке ALV если функция добавления новых записей (самописная).
Добавляем записи во внутреннюю таблицу, потом CALL METHOD gr_alv->refresh_table_display.
Но при таком добавлении не отрабатывают проверки (которые есть на DATA_CHANGED). Как их можно после обновления запустить принудательно после REFRESH?



Спасибо!


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Проверки в ALV после обновления (refresh)
СообщениеДобавлено: Чт, апр 09 2009, 14:48 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Вт, сен 07 2004, 17:47
Сообщения: 2988
Trisha написал(а):
Добрый день!

ALV построено через классы (CL_GUI_ALV_GRID).
В списке ALV если функция добавления новых записей (самописная).
Добавляем записи во внутреннюю таблицу, потом CALL METHOD gr_alv->refresh_table_display.
Но при таком добавлении не отрабатывают проверки (которые есть на DATA_CHANGED). Как их можно после обновления запустить принудательно после REFRESH?
Спасибо!

А зачем? Вынесети код проверок в подпрограммы\ФМ, и вызывайте их. Из обработки DATA_CHANGED или из логики добавления строк в таблицу, или ещё откуда угодно.
Откуда вобще берётся это навязчивое желание обязательно проэмулировать ручной ввод?

_________________
"После" - не значит "вследствие"


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проверки в ALV после обновления (refresh)
СообщениеДобавлено: Чт, апр 09 2009, 14:49 
Модератор
Модератор
Аватара пользователя

Зарегистрирован:
Пт, июн 16 2006, 00:43
Сообщения: 1686
Откуда: Москва <-> Красноярск
Пол: Мужской
CHECK_CHANGED_DATA

To sy-uname: вынести то не проблема. Но красиво привязать ошибки к гриду и "подсветить красненьким" ячейки с неверным вводом можно только через cl_alv_changed_data_protocol.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Проверки в ALV после обновления (refresh)
СообщениеДобавлено: Чт, апр 09 2009, 16:03 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Пн, дек 20 2004, 16:05
Сообщения: 1080
Откуда: 4.0B
Пол: Мужской
Пономарев Артем написал:
CHECK_CHANGED_DATA



А разве поможет?
Мне казалось это инициация data_change, data_change_finished, которые не были обработаны.
Тоесть изменения в ячейку были внесены руками, но события не наступило, не поменялся фокус там или что-то еще.
Как-то сомнительн, что это поможет в данной ситуации.

Да и чего, собственно, красивого. Если ввелось 100 позиций 20 из которых ошибочны. Бегать по ним по всем? Лог гораздо нагляднее, а при желании всю строчку подсветить не большая проблема.

_________________
Я слышу и забываю,
Я вижу и помню долго,
Я делаю и — понимаю.


Последний раз редактировалось Lars Чт, апр 09 2009, 16:10, всего редактировалось 1 раз.

Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проверки в ALV после обновления (refresh)
СообщениеДобавлено: Чт, апр 09 2009, 16:09 
Менеджер
Менеджер

Зарегистрирован:
Чт, фев 24 2005, 18:37
Сообщения: 530
Можно переформулировать задачу - требуется чтобы сразу при отображении ALV подсветились бы красным некорректно заполненные поля. Т.е. до событий data_changed и data_changed_finished


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Проверки в ALV после обновления (refresh)
СообщениеДобавлено: Чт, апр 09 2009, 16:10 
Модератор
Модератор
Аватара пользователя

Зарегистрирован:
Пт, июн 16 2006, 00:43
Сообщения: 1686
Откуда: Москва <-> Красноярск
Пол: Мужской
To Lars:
Почему же не поможет?
Можно выполнить все нужные проверки и добавить, по необходимости, сообщения в лог.
Не вижу никаких причин сомневаться в применимости такого решения.

Придется, конечно, учитывать что mt_good_cells и т.д. уже не содержат все необходимые ячейки для проверок.

Что каксаетя логи и подсветки строки:
реализовать можно что угодно. Но я не вижу в этом никакого смысла при том, что существует стандартный лог грида, сообщения в котором привязаны к конкретной ячейке, а также существует стандартная подсветка для ячеек с ошибками и предупреждениями.

To Trisha:
А я вам об чем пишу?


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Проверки в ALV после обновления (refresh)
СообщениеДобавлено: Чт, апр 09 2009, 16:15 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Пн, дек 20 2004, 16:05
Сообщения: 1080
Откуда: 4.0B
Пол: Мужской
Пономарев Артем написал:
To Lars:
Почему же не поможет?
Можно выполнить все нужные проверки и добавить, по необходимости, сообщения в лог.
Не вижу никаких причин сомневаться в применимости такого решения.

Придется, конечно, учитывать что mt_good_cells и т.д. уже не содержат все необходимые ячейки для проверок.


Не согласен, Артем, уж простите буду сомневаться :)
CHECK_CHANGED_DATA - сам ни чего не сделает. Смысла его вызывать нет.
Мне кажется, где то у Вас противоречия: вызвать CHECK_CHANGED_DATA и "Можно выполнить все нужные проверки и добавить, по необходимости, сообщения в лог".
Руками-то придется поработать, причем достаточно серьезно.

_________________
Я слышу и забываю,
Я вижу и помню долго,
Я делаю и — понимаю.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проверки в ALV после обновления (refresh)
СообщениеДобавлено: Чт, апр 09 2009, 16:19 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Вт, сен 07 2004, 17:47
Сообщения: 2988
Пономарев Артем написал:
To Trisha:
А я вам об чем пишу?

Да к тому что data_changed выполнит "ручные" проверки, а вот некорректность в отношении внешнего ключа\ссылочной таблицы и т.п. автоматические проверки не сработают.

_________________
"После" - не значит "вследствие"


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проверки в ALV после обновления (refresh)
СообщениеДобавлено: Чт, апр 09 2009, 16:24 
Модератор
Модератор
Аватара пользователя

Зарегистрирован:
Пт, июн 16 2006, 00:43
Сообщения: 1686
Откуда: Москва <-> Красноярск
Пол: Мужской
To all:
Кхм, а я где-то говорил что отработают автоматические проверки или же что не придется менять код в DATA_CHANGED? ;)
Кстати, при любых других способах, кроме ручного ввода, автомат. проверки не сработают также.

Все, что я хочу сказать - это то, что раз уж есть лог грида, то его и резонно использовать. Т.е. CHECK_CHANGED_DATA - всего-лишь способ попасть в DATA_CHANGED и получить доступ к протоколу грида.
А дальше все то же самое, что и при прочих вариантах реализации проверок без ручного ввода значений.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Проверки в ALV после обновления (refresh)
СообщениеДобавлено: Чт, апр 09 2009, 16:39 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Пн, дек 20 2004, 16:05
Сообщения: 1080
Откуда: 4.0B
Пол: Мужской
Пономарев Артем написал:
To all:
Все, что я хочу сказать - это то, что раз уж есть лог грида, то его и резонно использовать. Т.е. CHECK_CHANGED_DATA - всего-лишь способ попасть в DATA_CHANGED и получить доступ к протоколу грида.
А дальше все то же самое, что и при прочих вариантах реализации проверок без ручного ввода значений.


А, в этом смысле.
Только попадете Вы, как мне кажется, в data_changed_finished а там ссылки на протокол нет.

_________________
Я слышу и забываю,
Я вижу и помню долго,
Я делаю и — понимаю.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проверки в ALV после обновления (refresh)
СообщениеДобавлено: Чт, апр 09 2009, 16:44 
Модератор
Модератор
Аватара пользователя

Зарегистрирован:
Пт, июн 16 2006, 00:43
Сообщения: 1686
Откуда: Москва <-> Красноярск
Пол: Мужской
Попадет.
Я, просто, сам неоднократно использовал такую реализацию :)


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Проверки в ALV после обновления (refresh)
СообщениеДобавлено: Чт, апр 09 2009, 16:49 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Пн, дек 20 2004, 16:05
Сообщения: 1080
Откуда: 4.0B
Пол: Мужской
Попробовал только что.
У меня не попал, для описанной ситуации. Только в finished.
Возможно, что-то делал не так.

В принципе, ни что не мешает создать свой протокол, если уж сильно хочется.
У него в constructor передать ссылку на нужный грид. Заполнить.
И будет тоже самое. Указатель на поле, номер строки у него есть.

_________________
Я слышу и забываю,
Я вижу и помню долго,
Я делаю и — понимаю.


Последний раз редактировалось Lars Чт, апр 09 2009, 16:57, всего редактировалось 1 раз.

Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проверки в ALV после обновления (refresh)
СообщениеДобавлено: Чт, апр 09 2009, 16:54 
Менеджер
Менеджер

Зарегистрирован:
Чт, фев 24 2005, 18:37
Сообщения: 530
А никак нельзя для измененных ячеек сэмитировать программно ручное изменение данных в строках ALV? ;)


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Проверки в ALV после обновления (refresh)
СообщениеДобавлено: Чт, апр 09 2009, 17:03 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, окт 06 2005, 16:44
Сообщения: 3080
Откуда: Москва
Проще переделать процедуру добавления записей - все проверки выполнять перед внесением записи в таблицу (предложение sy-uname). Зачем выполнять проверки ПОСЛЕ отражения неверной записи в ALV-Grid, а не ПЕРЕД добавлением записи в таблицу? :?
Или перейти на стандартную функциональность добавления записей в ALV-Grid ;)

_________________
С уважением,
Удав.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проверки в ALV после обновления (refresh)
СообщениеДобавлено: Чт, апр 09 2009, 17:07 
Модератор
Модератор
Аватара пользователя

Зарегистрирован:
Пт, июн 16 2006, 00:43
Сообщения: 1686
Откуда: Москва <-> Красноярск
Пол: Мужской
Удав, а думать за пользователя не надо. Возможность корректировки то пропадет, если до вставки проверять.

А вот с
Удав написал(а):
перейти на стандартную функциональность добавления записей

абсолютно согласен.


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

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


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

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


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

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