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

Вниз

Сохранение значения полей.   Найти похожие ветки 

 
yozhik   (2002-05-28 20:11) [0]

Уважаемые, подскажите можно ли использоваить CalclField для хрения значений остальных полей запроса, если да то каким образом.


 
TSV ©   (2002-05-28 20:19) [1]

Для чего использовать???


 
yozhik   (2002-05-28 20:23) [2]

сорри, для хранения :)


 
TSV ©   (2002-05-28 20:29) [3]

А что значит - остальных полей запроса???
Или тебя интересует механизм использования CalclFields???


 
yozhik   (2002-05-28 20:32) [4]

Перефразирую вопрос.
Можно ли использовать CalcField для хранения значения любого другого поля, т.е. чтоб в CalcField сохранялось значени поля до его изменения.



 
TSV ©   (2002-05-28 20:45) [5]

По идее - да.
Создаешь его в design-time. Делаешь обработчик OnCalcFields. Пересчитывать само будет при изменении поля и не только.

Удачи.


 
yozhik   (2002-05-28 20:48) [6]

так не работает, при измеенение значения поля CalcField тоже меняет свое значение, может обработчик неравльно написан?


if Query1CalcFld.IsNull then
Query1CalcFld.Value := Query1SrcFld.Value


 
-=Sergeante=- ©   (2002-05-29 09:05) [7]

После открытия таблицы (и обсчета значений вычисл-го поля)попробуй сделать OnCalcFields:=nil


 
Сергей Иванов ©   (2002-05-29 09:51) [8]

А как насчет
CurValue, NewValue, OldValue: Variant;
имеющих место быть у TField. Не подходят?


 
yozhik   (2002-05-29 10:21) [9]

OnCalcFields:=nil - не подходит, почему я так и не понял, но когда устанавливаю, зачения CalcField сбрасываются :(
CurValue, NewValue, OldValue: Variant; - использовал, но почему-то, CurValue=NewValue=OldValue=Null при любых раскладах :(


 
-=Sergeante=- ©   (2002-05-29 11:59) [10]

А если не использовать CalcFields? Вмасто этого определить глобальную переменную, в которую в событии OnAfterScroll будет заноситься результат обработки. Т.о. у тебя в этой переменной постоянно находиться нужное значение при любом перемещении по НД.


 
-=Sergeante=- ©   (2002-05-29 12:02) [11]

Типа такого:

var s:string;
...
procedure Tform1.Table1AfterScroll(sender:TObject);
begin
s:=Table1.fieldbyname("field1").asstring+" "+Table1.fieldbyname("field2").asstring;
end;


 
yozhik   (2002-05-29 12:42) [12]

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

я нашел другой способ, использование массива...


 
-=Sergeante=- ©   (2002-05-29 17:08) [13]

Данные в массиве будут определены при открытии запроса. Каждой определённой записи будет соответствовать свой индекс массива. НО! Нет гарантии, что при переоткрытии запроса записи сохранят такую же последовательность (нумерацию) в соответствии с индексами массива.


 
yozhik   (2002-05-29 20:38) [14]

после переоткрытия массив перезаписывается, так как данные сохраняются в базе и возвратов не требуется



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

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

Наверх




Память: 0.49 MB
Время: 0.022 c
7-77640
Beer
2002-03-27 10:17
2002.06.24
Определение значения тона.


14-77615
s
2002-05-23 12:18
2002.06.24
Помогите с Delphi


14-77595
Blackweber
2002-05-21 21:40
2002.06.24
Срочно!!!! arcsin,arccos


3-77299
Kombat
2002-05-30 13:39
2002.06.24
Большие базы в InterBase/FireBird


1-77369
Yuri Btr
2002-06-13 13:03
2002.06.24
CreateProcessWithLogonW