Текущее время: Чт, май 15 2025, 02:29

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 14 ] 
Автор Сообщение
 Заголовок сообщения: Как по человечески узнать, изменился ли ALV_GRID?
СообщениеДобавлено: Чт, июн 30 2005, 15:34 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, авг 19 2004, 17:37
Сообщения: 1962
Откуда: Москва
Пол: Мужской
Как по человечески узнать, была отредактирована таблица класса CL_GUI_ALV_GRID?

У класса CL_GUI_TEXTEDIT, например, есть метод GET_TEXTMODIFIED_STATUS для проверки. У грида тоже вроде есть GET_GRID_MODIFIED (хотя и protected), но почему-то возвращает всегда 0 (ноль). Можно ли как то без изврата (типа через обработку события) это сделать?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, июн 30 2005, 15:44 
Почетный гуру
Почетный гуру

Зарегистрирован:
Вт, авг 17 2004, 10:45
Сообщения: 550
Откуда: SAP_BASIS 640
Боюсь, по-другому не получится. А почему способ с обработкой события Вы считаете извратным?


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, июн 30 2005, 15:55 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Ср, май 04 2005, 16:29
Сообщения: 687
Откуда: Нижневартовск->Москва
Пол: Мужской
Можно сохранить таблицу до обработки и потом сравнить с обработанной, предварительно отсортировав их обе.. Понятно, что это не всегда годится..


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, июн 30 2005, 16:16 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, авг 19 2004, 17:37
Сообщения: 1962
Откуда: Москва
Пол: Мужской
EGF написал(а):
Боюсь, по-другому не получится. А почему способ с обработкой события Вы считаете извратным?

Есть разница между просто вызовом метода и написанием кучи кода? Хотя вся SAPа есть изврат... ;)
Видимо придется сравнивать таблицы, как самое простое. Надеюсь такое сравнение сработает:
If it_OUT[] <> it_OLD[].


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, июн 30 2005, 16:42 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Ср, май 04 2005, 16:29
Сообщения: 687
Откуда: Нижневартовск->Москва
Пол: Мужской
О таком сравнении и речь
Только отсортировать их обе не забудь..


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: А зачем?
СообщениеДобавлено: Чт, июн 30 2005, 17:02 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, авг 19 2004, 17:37
Сообщения: 1962
Откуда: Москва
Пол: Мужской
T написал:
О таком сравнении и речь
Только отсортировать их обе не забудь..

Зачем сортировать? Меня устроит любое изменение.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, июн 30 2005, 17:25 
Почетный гуру
Почетный гуру

Зарегистрирован:
Вт, авг 17 2004, 10:45
Сообщения: 550
Откуда: SAP_BASIS 640
Parazit написал:
Есть разница между просто вызовом метода и написанием кучи кода?

А есть разница между ленью и извратом? Кстати, способ со сравнением таблиц - гораздо больший изврат. И помяните моё слово - в конечнои итоге он выльется Вам в большее количество кода.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, июн 30 2005, 17:57 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Ср, май 04 2005, 16:29
Сообщения: 687
Откуда: Нижневартовск->Москва
Пол: Мужской
Для сравнения таблиц много кода не надо. Он уже приведён. Другое дело, если таблица огромная или проверка ввода нужна дополнительная..
В любом случае всё от задачи зависит. В общем-то в событии data_changed флаг выставлять не сложно. Но если требуется считать изменение 1 на 2 и затем опять на 1 отсутствием изменения..


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, июн 30 2005, 18:40 
Почетный гуру
Почетный гуру

Зарегистрирован:
Вт, авг 17 2004, 10:45
Сообщения: 550
Откуда: SAP_BASIS 640
Дело даже не в объёме кода, а в его прозрачности. Когда Вы регистрируете изменение в событии, то Вы на сто процентов уверены, что таблица могла быть изменена только пользователем через интерфейс грида (за исключением, пожалуй, checkboxes - на их изменение событие, кажется, не отрабатывает). В случае со сравнением таблиц такой уверенности нет и быть не может. И с возрастанием сложности программы проблемы будут возрастать в геометрической прогрессии.
Короткий код - не всегда самый хороший. Всё это сугубо моё личное мнение, многое зависит от конкретной задачи. Но, согласитесь, назвать довольно изящный механизм обработки событий в ABAP Objects извратом - несколько резковато.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, июл 01 2005, 08:07 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, авг 19 2004, 17:37
Сообщения: 1962
Откуда: Москва
Пол: Мужской
EGF написал(а):
А есть разница между ленью и извратом?

Есть, лень - двигатель прогресса! ;)
EGF написал(а):
Кстати, способ со сравнением таблиц - гораздо больший изврат.

Чушь. Разве проверка изменений переменных не так же делается? Таблица - такая же переменная, как и все.
EGF написал(а):
И помяните моё слово - в конечнои итоге он выльется Вам в большее количество кода.

Три строки, объявление доп. таблицы, присвоение ей значения и сравнение с измененной таблицей.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, июл 01 2005, 08:11 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, авг 19 2004, 17:37
Сообщения: 1962
Откуда: Москва
Пол: Мужской
T написал:
...Другое дело, если таблица огромная или проверка ввода нужна дополнительная... В любом случае всё от задачи зависит.
Да не большая, всего несколько строк.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, июл 01 2005, 08:22 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, авг 19 2004, 17:37
Сообщения: 1962
Откуда: Москва
Пол: Мужской
EGF написал(а):
Дело даже не в объёме кода, а в его прозрачности. Когда Вы регистрируете изменение в событии, то Вы на сто процентов уверены, что таблица могла быть изменена только пользователем через интерфейс грида
А какая разница, как она была изменена? Главное, что изменена и эти изменения нужно проверить и сохранить.[/quote]
EGF написал(а):
(за исключением, пожалуй, checkboxes - на их изменение событие, кажется, не отрабатывает).
Вот-вот, ну и где ваши 100%?
EGF написал(а):
В случае со сравнением таблиц такой уверенности нет и быть не может.
Наоборот, в этом случае есть 100% уверенность, что таблица изменялась. Неважно что, неважно как, но изменялась.
EGF написал(а):
Но, согласитесь, назвать довольно изящный механизм обработки событий в ABAP Objects извратом - несколько резковато.
Честно говоря язык не поворачивается хоть что-нибудь в R/3 назвать изящным. Она вся есть большое извращение, куда не ткни. Именно поэтому она, и ее сопровождение, столько и стОит.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, июл 01 2005, 09:10 
Почетный гуру
Почетный гуру

Зарегистрирован:
Вт, авг 17 2004, 10:45
Сообщения: 550
Откуда: SAP_BASIS 640
Насчёт всего остального, как говорится, дело вкуса. А вот насчёт механизма обработки событий я всё-таки настаиваю, что он, если и не изящный (опять-таки дело вкуса), то очень удобный и функциональный:

- Вы можете назначить несколько обработчиков для одного события, при этом управляя очерёдностью их запуска;
- Вы можете во время выполнения программы регистрировать обработчиков и отменять регистрацию;
- Вы можете в качестве обработчиков указывать методы интерфейсов, и в этом случае во время выполнения программы можно назначать в качестве обработчика метод любого класса, поддерживающего этот интерфейс, т.е. делать практически вообще что угодно;
- Вы можете указать в качестве обработчика статический метод класса и обрабатывать событие, даже не создавая его экземляр.

Не знаю как Вам, а мне всё это очень нравится и экономит кучу времени и сил.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, июл 01 2005, 12:03 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Ср, май 04 2005, 16:29
Сообщения: 687
Откуда: Нижневартовск->Москва
Пол: Мужской
EGF написал(а):
Но, согласитесь, назвать довольно изящный механизм обработки событий в ABAP Objects извратом - несколько резковато.

Вообще говоря, я считаю механизм обработки событий (не только в ABAP Objects) чем-то гениальным. Еще тех пор, когда столкнулся с аппаратными и программными прерываниями и их обработчиками :)
Так что извратом его не считаю :)

PS Чекбоксы событием тоже обрабатываются


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

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


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

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


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

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