![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
OnCalcFields как выполнить только для текущей записи? [D7, MSSQL]
Manfred8 © (2005-05-16 16:47:00)Опытным путем выяснил что OnCalcFields выполняется для всех записей находящихся в гриде,не в датасете а именно в гриде..
Задача - управлять значением калькулейт поля типа boolen.
Выбираю какое значение ему присвоить вызываю Locate на запись чье поле меняю,далее происходит переход к OnCalcFields который выполняется столько раз сколько записей в гриде*2.. в обработчике выполняются довольно ресурсоемкие операции и потому хотелось бы сократить время затрачиваемое на их выполнение..
Собственноо вопрос как ограничить кол-во вызовов OnCalcFields,как сделать чтобы вызвался только для текущей записи?
msguns (2005-05-17 11:42:00) [1]1. Убрать OnCalcFields
2. Создать доп.колонку, в которую не назначать поле НД
3. Для текущей записи считать и рисовать в доп.колонке подсчитанное значение в событии грида OnDrawColumnCell
Prohodil Mimo (2005-05-17 11:17:00) [2]А AutoCalcFields:=False не поможет?
Ega23 (2005-05-16 18:25:00) [3]To Ega23 Недопонял :) ?
Задача - управлять значением калькулейт поля типа boolen.
На уровне выборки и управляй. Зачем делать Calculate для Calculated поля???
Johnmen (2005-05-16 17:15:00) [4]>Manfred8 (16.05.05 17:10) [6]
Ну да. Идет неявное обращение к записям...
Проверяй в ОнКалкФилде ControlsDisabled
Manfred8 (2005-05-16 17:10:00) [5]Удалено модератором
Примечание: следи за языком.
Manfred8 (2005-05-16 17:06:00) [6]To Ega23 Недопонял :) ?
Johnmen (2005-05-16 17:05:00) [7]OnCalcFields вызывается только тогда, когда есть явное или неявное обращение в вычисляемому полю. Напр.для отрисовки в гриде.
Поэтому DisableControls EnableControls.
Ega23 (2005-05-16 17:04:00) [8]Собственноо вопрос как ограничить кол-во вызовов OnCalcFields,как сделать чтобы вызвался только для текущей записи?
В выборку поле добавить?
Manfred8 (2005-05-16 16:59:00) [9]я в курсе ,но если прикрепить к датасету грид то получаем то о чем было написано
Polevi (2005-05-16 16:52:00) [10]в "гриде" OnGetText выполняется
OnCalcFields - для датасета