Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.11.03;
Скачать: CL | DM;

Вниз

OnCalcFields & edit   Найти похожие ветки 

 
ramdy   (2003-10-13 15:21) [0]

В событии OnCalcFields надо изменить data-поле.
Но, когда мы делаем Query.Edit - срабатывает новый OnCalcFields и изменить мы, увы, уже ничего не можем.

Скажите пожалуйста - как правильно эту проблему решать?


 
stud ©   (2003-10-13 15:25) [1]

не надо делать это поле вычисляемым и к тому же обрабатывать его в oncalcfields. просто подробнее опиши задачу


 
ramdy   (2003-10-13 15:43) [2]

Задача!
Грубо :)

Есть поля id|time_zak|flag

Есть заказы - "критические", у них flag=1. Есть некритические - flag=0;

Время исполнения заказа - time_zak.
Есть 2 гридера - в одном критические заказы "....where flag=1", в другом некритические "....where flag=0".

В событии oncalc смотрю time - now(). Если time_zak-now()<N - переводим заказ из некритического в критические. Т. е. меняем flag с 0 на 1.

Как эту замечательную идею правильно реализовать. Ведь наверняка есть какое-то классическое решение.


 
Step[B.M.] ©   (2003-10-13 20:18) [3]

1. Это можно проделывать процедурой.
2. B OnCalcFields пишем примерно:
Если (запись Query НЕ редактитуется) то Mеняем flag;


 
stud ©   (2003-10-14 10:09) [4]

а зачем здесь вообще вычисляемые поля?? если нужно проверять время - наверное лучше использовать таймер? и с помощью sql например, менять нужное значение например: update table set flag=1 where time_zak-"now"<n and flag<>1 что-то вроде такого


 
Izyum ©   (2003-10-14 10:13) [5]

Если нужно, чтоб вычесляемые поля не пересчитывались во время редактирования, пишешь:

if not ( DataSet.state in [dsInsert, dsEdite]) do ...


 
ramdy   (2003-10-14 11:29) [6]

Всем спасибо. То что надо.


 
Anatoly Podgoretsky ©   (2003-10-14 11:35) [7]

Здесь вообще не видать расчетных полей. Как сказали делай отдельным запросом, например по таймеру.


 
ramdy   (2003-10-14 17:39) [8]

Кстати, если кому интересно...
Методы типа
if not (DataSet.state in [dsInsert, dsEdite]) do
не работают, потому-что в OnCalcFields состояние dataset"а dsCalcFields.



Страницы: 1 вся ветка

Текущий архив: 2003.11.03;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.026 c
8-8550
dozer
2003-06-29 01:05
2003.11.03
ShockwaveFlash в Delphi


9-8246
com2003
2003-04-28 19:20
2003.11.03
Реализация камеры


3-8333
DmitryFOX
2003-10-01 00:56
2003.11.03
TDBListView - где взять?


1-8425
DDS
2003-10-22 09:57
2003.11.03
Как узнать, что чья-то прога визуально перекрывает мое гл. окно?


14-8586
Vovchik_A
2003-10-15 16:10
2003.11.03
Я плакалъ :))