Как при редактировании записи в датасете одновременно произвести редактирование других записей из этого датасета
Как при редактировании записи в датасете одновременно произвести редактирование других записей из этого датасета?
У меня стоит такая задача:
при изменении значения поля записи, которая является по определенному признаку основной, пересчитать значения полей у других записей из этой же таблицы. При этом я не хочу потерять фокус с текущей записи и продолжать ее редактирование. Этот функционал я помещаю в функцию OnDataSetDataChangе.
Нравится
На событие DataChange Dataset'а изменяемой записи повесить вызов функции OnDataSetDataChangе.
это я понял. Суть в другом: как можно при редактировании одной записи в таблице паралельно изменть другие записи в этой же таблице.
Создайте сервис запроса (Update), который будет вносить изменения в необходимые записи. Или проблема с отбором записей?
Можно еще создать новый сервис датасета и редактировать в нем.
Андрей, я бы сделал триггер. Но если с этим трудности, то самый легкий способ предложил Сергей, где под словом новый надо понимать - создать новый экземпляр датасета(GetNewItemByUSI) и отфильтровать его перед редактированием.
Попробую создать новый сервис SelectQuery и Dataset для работы с той же таблицей
"Кошкаров Андрей Викторович" написал:
...новый сервис SelectQuery и Dataset для работы с той же таблицей...
Андрей это лишнее. У Вас уже есть он. Зачем их множить? Вы потом сами запутаетесь зачем Вам для редактирования одной и той же таблицы 5-6 почти одинаковых сервисов.
Вы наверное меня неправильно поняли. Не нужен новый сервис, нужен новый экземпляр того же сервиса, например:
var Dataset = Services.GetNewItemByUSI('ds_Task');
Dataset.Open();
while (!Dataset.IsEOF) {
Dataset.Edit();
Dataset('Name') = 'update';
Dataset.Post();
Dataset.GotoNext();
}
ну и еще фильтры и отключение событий
"Глова Сергей" написал:Вы наверное меня неправильно поняли.
Действительно, так и было :) Спасибо за помощь