mmsmms написал(а):
Всем привет Уважаемые!
Подскажите мне по следующему вопросу:
Есть Z* таблица (ztbl). Эта таблица в самописной проге засасывается во внутренную таблицу itab и вывадится в ALVGrid на редактирование.
Одновременно эту таблицу могут корректировать несколько пользователей. Думаю, что последовательностьдействий должна быть такая:
1)Отлавливаем событие Data_Changre ALVGrid
2)В событии пытаемся заблокировать редактируемую запись. Если удачно хорошо, иначе вываливаемся обратно в редактирование строки с сообщениемю
А какой смысл в этом? На мой взгляд при редактировании все выбранные записи должны блокироваться в момент их выборки.
Иначе при таком алгоритме после блокирования записи необходимо перечитывать запись из базы, сравнивать не былали она изменена, и если её не успели поменять то только тогда возможен переход к следующим шагам.
Поэтому и мгновнное сохранение редактируемых записей в БД - так-же далеко не идеальный результат, тем более в той реализации, которая предрагается - ведь в этом варианте у пользователя не остаётся никаких шансов отказаться от "не правильных" изменений.
Цитата:
3)Делаем UPDATE таблицы по ключевым полям с установкой новых отредактированных значений
4)Делаем commit
5)Разблокируем запись
6)Обновим ALVGrid
Вот не совсем понимаю, как нужно делать п.2, 4 и 5. Подскажите как это можно проделать?