Форум: "Базы";
Текущий архив: 2002.12.30;
Скачать: [xml.tar.bz2];
ВнизКак определить, что пользователь изменил данные в dbGrid? Найти похожие ветки
← →
Ильдар (2002-12-09 08:02) [0]Требуется "на лету" проводить вычисления по строке после изменения пользователем данных в любом из полей dbGrid. Как определить, что значение поля изменено и какое поле изменено?
← →
Виталий Панасенко (2002-12-09 09:35) [1]По-моему, проще все пересчитывать по новому, чем вычислять, какое поле изменилось. Ведь для вычисления используются заведомо известные поля и смысла в "Как определить, что значение поля изменено и какое поле изменено?", кажись, нет. Это можно делать как в вычисляемых полях, так и обработчике BeforePost.
← →
passm (2002-12-09 11:21) [2]Ильдар (09.12.02 08:02)> TField.OnChange(Sender: TField);
← →
Ильдар (2002-12-09 11:50) [3]В том то и дело, что алгоритм вычислений зависит от того, какое поле изменилось!
← →
passm (2002-12-09 11:58) [4]Ильдар (09.12.02 11:50)> Что мешает ориентироваться на Sender?
← →
Ильдар (2002-12-09 13:55) [5]C TField.OnChange(Sender: TField) есть проблема. При вычислениях будут изменяться поля, для которых начнёт срабатывать событие OnChange, которое в свою очередь породит новое вычисление и т.д. В общем получится нечто вроде бесконечной рекурсии.
← →
MMF (2002-12-09 14:02) [6]> Ильдар (09.12.02 13:55)
Все так и делают. Никакой рекурсии не будет, если правильно написать.
← →
roottim (2002-12-09 14:38) [7]вообще для этого предназначены Calculate поля, и в OnCalcField пишут вычисления. см. HELP
← →
MMF (2002-12-09 14:43) [8]>roottim (09.12.02 14:38)
А как насчет подстановки значения поля по-умолчанию, например цены при выборе поля Товар.
← →
Виталий Панасенко (2002-12-09 18:20) [9]>MMF (09.12.02 14:43)
Для этого существует событие OnNewRecord
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2002.12.30;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.008 c