Задачка такая:
пользователь должен добавлять в таблицу элементы: по принципу
заполняется поле А
заполняется поле Б
автоподсчёт поле С = А*Б;
Здесь первый вопрос. Если полю С выдать AutoCalc, и в onFieldCalc обрабатывать его подсчёт, то почему-то это значение не сохраняется в Таблицу. Что я делаю не так?
Далее с каждым новым элементом общая сумма по колонке С должна отображаться на форме.
Вторая часть реализована следующим образом:
Код:
var
TotalPrice: real;
begin
with fMain.Items do
begin
Post;
TotalPrice := 0;
First;
while not Eof do
begin
TotalPrice := TotalPrice + FieldByName('Price').AsFloat;
Next;
end;
maxPrice.Text := FormatFloat('0.00', TotalPrice);
maxLoan.Text := FormatFloat('0.00', TotalPrice * 0.76);
end;
Получается, что каждый раз программа пересчитывает предыдущие элементы. А если их будет 100, и добавляться 101 ... а если 1000.
Была мысли уйти от ADOTable и воспользоваться ADOQuery и запросом (SUM), но как-то весь проект в таблицах.) Это скорее эстетика. Может стоит отказаться от таблиц?