Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2003.11.03;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.01 c
3-8295
Александр Иванов
2003-10-12 10:41
2003.11.03
Глюк MSSQL или моя ошибка?


1-8509
Term
2003-10-24 17:44
2003.11.03
В чём ошибка???


1-8355
Endi
2003-10-22 22:22
2003.11.03
Запись и чтение в файл.


4-8716
OlegV
2003-08-29 14:41
2003.11.03
Как удалить файлы в корзину?


1-8532
Dream
2003-10-23 15:03
2003.11.03
как вызвать процедуру или функцию которая находиться в другом





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский