Цитата:
Сообщение от
S.Kuskov
Функция пересчёта сумм, меняет значения только текущей строки? Для чего происходит принудительное обновление датасурса? Изменение значения ComboBox должно вызвать моментально сохранение данных в БД?
Метод modified предназначен для обработки изменения полей без сохранения строки в БД. За сохранение строки в БД отвечает метод write. Если изменение поля должно тутже инициировать пересохранение строки в БД, то после super в modified явно вызовите метод write().
На форме используется 2 датасорса:
первая таблица отображает полную информацию по какому-либо процессу, содержит несколько строк на один процесс.
вторая - суммирующая таблица содержит по одной записи на каждый процесс, сюда записывается сумма из первой. А также во второй таблице есть строка, где содержится итоговая сумма по всем процессам.
При изменении ComboBox'а пересчитывается сумма строки в первой таблице, во второй при этом должна пересчитаться одна строчка по данному процессу и итоговая строка.
На первой таблице переопределены методы insert, update, delete они обеспечивают синхронизацию данных между таблицами.
Я новичок и может не все понимаю, но без обновления первой таблицы, вторая не будет отображать достоверные данные.