Форум: "Базы";
Текущий архив: 2002.06.24;
Скачать: [xml.tar.bz2];
ВнизСохранение значения полей. Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.008 c