Показать сообщение отдельно
  #1  
Старый 30.08.2012, 09:45
SFproG SFproG вне форума
Прохожий
 
Регистрация: 24.08.2012
Адрес: Тюмень
Сообщения: 12
Версия Delphi: 7
Репутация: 10
По умолчанию Вычисление поля в одной таблице, запись в другую

Есть две таблицы "Поставщики" и "Счета". Таблицы связаны. "Счета" (подчиненная) подцепляется по key1 к id "Поставщики" через MasterSource.
В итоге, один поставщик может иметь несколько счетов. В таблице "Счета" имеется колонка сумма (денежная).
У меня задача просуммировать колонку "сумма" из таблицы "Счета" и вывести в отдельную колонку в таблицу "Поставщики". Т.е. у каждой записи уникального поставщика, будет отображаться своя общая сумма из таблицы "Счета".

В таблице "Поставщики" создал поле fkCalculated. Написал такой обработчик:
Код:
procedure TForm1.ADOTable1CalcFields(DataSet: TDataSet);
var x,y:Integer;
begin
ADOTable2.First;
y:=0;
While not ADOTable2.Eof do
begin
x:=ADOTable2['Сумма'];
y:=x+y;
ADOTable2.Next;
end;

ADOTable1schet.Value:=y;

end;
Выводит непонятно что. Подскажите как правильно сделать.

Хотя, если выводить результат в Label, то все работает нормально.
Код:
procedure TForm1.DBGrid1CellClick(Column: TColumn);
var x,y:Integer;
begin
ADOTable2.First;
y:=0;
While not ADOTable2.Eof do
begin
x:=ADOTable2['Сумма'];
y:=x+y;
ADOTable2.Next;
end;
Label1.Caption:=IntToStr(y);
end;
(Это если в DBGrid выделить строку с нужным поставщиком, то в Label отображается общая сумма из таблицы "Счета" принадлежащей определенному поставщику) Но мне это не надо. Мне нужно выводить сумму в строке DBGrid
Ответить с цитированием