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

Вниз

Вопром по DBF таблицам...   Найти похожие ветки 

 
Nimnul ©   (2001-12-26 08:49) [0]

Есть таблица Table2 и связаный DBGrid.
Всего 6 колонок. 4 колонки пользователь
может изменять,а в 6 должна писаться сумма
всех четырех.Вопрос:
Надо считать это все динамически.
Пыталься использовать DataSource2.OnDataChange,
Table2.AfterPost
Но когда я пишу в 6 колонку(итоговую) вызываются эти события,
цикл однако.
Как можно выйти из ситуации?
(Ничего не могу придумать)


 
panov ©   (2001-12-26 09:13) [1]

Создай вычисляемое поле.


 
Nimnul ©   (2001-12-26 14:46) [2]

2panov
Спасибо, создал.
Но мне нужно сохранять в базу, я нашел
свойство fkinternalCalc, но генерит ошибку.
При fkcalculated все нормально, сделал
Table2.Edit все равно ошибка. :-(


 
Delirium ©   (2001-12-26 15:02) [3]


var Ok:boolean;

procedure TForm1.Table1BeforeEdit(DataSet: TDataSet);
begin
Ok:=True;
end;

procedure TForm1.Table1BeforeInsert(DataSet: TDataSet);
begin
Ok:=True;
end;

procedure TForm1.Table1BeforePost(DataSet: TDataSet);
begin
if Ok then
begin
Table1.FieldByName("S").AsInteger:=Table1.FieldByName("N1").AsInteger+
Table1.FieldByName("N2").AsInteger;
Ok:=False;
end;
end;

И никаких "циклов".


 
Delirium ©   (2001-12-26 15:18) [4]

Хотя, я тут попробывал, можно и просто:

procedure TForm1.Table1BeforePost(DataSet: TDataSet);
begin
Table1.FieldByName("S").AsInteger:=Table1.FieldByName("N1").AsInteger+
Table1.FieldByName("N2").AsInteger;
end;

всё равно ничего не циклится.


 
Jony ©   (2001-12-26 15:43) [5]

Попробуй суммирование поставить в обработчики события OnChange всех четырех полей в наборе данных, связанным с гридом. Если не ошибаюсь, то реагировать будет чуть ли не на каждый разряд, вводимый в поле.


 
Nimnul ©   (2001-12-26 15:49) [6]

Теперь разобрался, но теперь когда ставлю
fkcalculated то все считается, а когда
fkinternalCalc то никаких изменеий ничего не считается и в
базу не пишется...

2Delirium
Спасибо, попробую.



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

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

Наверх




Память: 0.48 MB
Время: 0.009 c
4-100114
AlexandrH
2001-12-04 13:50
2002.01.31
Как сделать так что-бы программа один раз запустилась,,,,


1-99955
Enforcer
2002-01-13 22:54
2002.01.31
ListBox


3-99891
Наташа
2001-12-27 09:00
2002.01.31
Как возвратить значение сгенерированного ID на клиента


7-100074
Win
2001-10-19 16:19
2002.01.31
Как прогу скопировать7


7-100073
Serega_2
2001-10-15 11:37
2002.01.31
Помогите плз програмно прибить досувскую программу.