Подсчёт Суммы По Полю Без Sql

  • Автор темы ZMihail
  • Дата начала
Z

ZMihail

#1
Есть две таблицы (ClientDataSet). Первая, назовём её (FIOT) с первичным ключом (ID) и тектовым
полем (Fio)- где записываются фамилии. Вторая, назавём её (SUMT) c ключевым полем (FIOID), куда записываются
числовые данные из поля (ID) таблицы (FIO), второе числовое поле (SUM), где находятся суммы по кождой фамилии
из первой таблицы. Каждая фамилия имеет много строк из таблицы (SUMT). Нужно посчитать суммы по каждой
фамилии и вывести этот результат в ListBox. Запросы в этих таблицах не работают.

Добавлено: procedure TForm1.Button7Click(Sender: TObject);
Var summ: integer;
begin
t1.Filter:= 'FIOID='+ fiot.FieldByName('ID').AsString;
t1.Filtered:=true;
summ:=0;

while not t1.Eof do
begin
t1.Next;
while not fiot.Eof do
Begin
summ:=summ+ t1.FieldByName('sob').asinteger;
ListBox1.Items.Add(fiot.FieldByName('Fio').AsString+ ': '+ IntToStr(summ));
fiot.Next;
end;
end;
end;
 

sinkopa

Well-known member
17.06.2009
344
4
#2
Есть две таблицы (ClientDataSet). Первая, назовём её (FIOT) с первичным ключом (ID) и тектовым
полем (Fio)- где записываются фамилии. Вторая, назавём её (SUMT) c ключевым полем (FIOID), куда записываются
числовые данные из поля (ID) таблицы (FIO), второе числовое поле (SUM), где находятся суммы по кождой фамилии
из первой таблицы. Каждая фамилия имеет много строк из таблицы (SUMT). Нужно посчитать суммы по каждой
фамилии и вывести этот результат в ListBox. Запросы в этих таблицах не работают.
Честно говоря... не совсем я понял как у Вас там всё организовано...
Возможно Вы имели в виду вот это?
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
summ: integer;
begin
fiot.First;
while not fiot.Eof do
begin
t1.Filtered := False;
t1.Filter:= 'FIOID='+ fiot.FieldByName('ID').AsString;
t1.Filtered := true;
t1.First;

summ:= 0;
while not t1.Eof do
begin
summ:=summ + t1.FieldByName('sob').asinteger;
t1.Next;
end;

ListBox1.Items.Add(fiot.FieldByName('Fio').AsString+ ': '+ IntToStr(summ));
fiot.Next;
end;
end;