Текущее время: Сб, авг 02 2025, 05:31

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


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

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


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

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