|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Вычисление поля в одной таблице, запись в другую
Есть две таблицы "Поставщики" и "Счета". Таблицы связаны. "Счета" (подчиненная) подцепляется по 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; |