Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Подсчёт суммы по полю, без SQL 
:(
    Опции темы
ZMihail
Дата 26.12.2012, 13:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 26.12.2012

Репутация: нет
Всего: нет



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

procedure TForm1.Button7Click(Sender: TObject);
Var summ: integer;
i : integer;
begin
SumT.Filter:= 'FIOID='+ fiot.FieldByName('ID').AsString;
SumT.Filtered:=true;
summ:=0;

while not SUMT.Eof do
begin
SUMT.Next;
while not fiot.Eof do
Begin
summ:=summ+ SUMT.FieldByName('sob').asinteger;
ListBox1.Items.Add(fiot.FieldByName('Fio').AsStrin g+ ': '+ IntToStr(summ));
fiot.Next;
end;
end;
end;
PM MAIL   Вверх
Vas
Дата 26.12.2012, 15:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 830
Регистрация: 29.6.2005
Где: Stavropol region

Репутация: 23
Всего: 28



Как-то так, писал без дельфей и проверки, ошибки могут быть, но главное принцип 
Код

procedure SumList(AlistBox: TListBox);
  var summa, id: integer;
begin
AlistBox.Clear;
FIOT.First; //мало ли где указатель 
while not FIOT.Eof do
begin
    id:=FIOT.FieldByName('ID').AsInteger;
    summa:=0;
    SUMT.First; //аналогично 
    while not SUMT.Eof do
    begin
       if FIOT.FieldByName('FIOID').AsInteger=ID then
         summa:=summa+FIOT.FieldByName('SUM').AsInteger;
         SUMT.Next; //на следующую запись
    end;
    AlistBox.Items.Add(FIOT.FieldByName('FIO').AsStirng+' '+IntToStrDef(summa,0));  //добавляем в листбокс
    FIOT.Next; //на следующую
end;
end;


end;



--------------------
И опыт, сын ошибок трудных, И гений, парадоксов друг, И случай, бог изобретатель. ... (А.С. Пушкин)
PM MAIL   Вверх
ZMihail
Дата 26.12.2012, 16:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 26.12.2012

Репутация: нет
Всего: нет



Спасибо! Сейчас попробую.
PM MAIL   Вверх
ZMihail
  Дата 26.12.2012, 16:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 26.12.2012

Репутация: нет
Всего: нет



Ругается listBox1.Items.Add(FIOT.FieldByName('FIO').AsString + ':'
    + IntToStrdef (здесь) (summa,0));
                           
PM MAIL   Вверх
Vas
Дата 26.12.2012, 17:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 830
Регистрация: 29.6.2005
Где: Stavropol region

Репутация: 23
Всего: 28



Ну замени на просто IntToStr. И весь текст ошибки приводи, а то не понятно на что ругается конкретно


--------------------
И опыт, сын ошибок трудных, И гений, парадоксов друг, И случай, бог изобретатель. ... (А.С. Пушкин)
PM MAIL   Вверх
Akella
Дата 28.12.2012, 10:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 29
Всего: 329



PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема »


 




[ Время генерации скрипта: 0.0659 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.