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

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


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

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


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

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