Главная страница
    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
6-8571
не3дох
2003-09-06 14:09
2003.11.03
Как програмно сменить шлюз (т.е прописать новый) и DNS сервера


7-8695
Ванька Сусанин
2003-08-21 16:07
2003.11.03
CD-ROM


7-8701
stLAM
2003-08-25 21:42
2003.11.03
Народ, как писать на десктопе


1-8487
Mag
2003-10-24 17:32
2003.11.03
Бегущая строка


4-8715
Yuraz
2003-08-29 15:06
2003.11.03
поделитесь примером формы на чистом API, для D5-D7?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский