1. Набираем команду codeby webinar. Набираем команду для организации и проведения вебинаров. Подробнее ...

    Скрыть объявление
  2. Требуются разработчики и тестеры для проекта codebyOS. Требования для участия в проекте: Знание принципов работы ОС на базе Linux; Знание Bash; Крайне желательное знание CPP, Python, Lua; Навыки системного администрирования. Подробнее ...

    Скрыть объявление
  3. Получи 30.000 рублей. Для получения денег необходимо принять участие в конкурсе авторов codeby. С условиями и призами можно ознакомиться на этой странице ...

    Внимание! Регистрация авторов на конкурс закрыта.

    Скрыть объявление

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

Тема в разделе "Delphi - программирование", создана пользователем ZMihail, 26 дек 2012.

  1. ZMihail

    ZMihail New Member

    Репутация:
    0
    Регистрация:
    24 дек 2012
    Сообщения:
    2
    Симпатии:
    0
    Есть две таблицы (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;
     
  2. sinkopa

    sinkopa Well-Known Member

    Репутация:
    0
    Регистрация:
    17 июн 2009
    Сообщения:
    344
    Симпатии:
    9
    Честно говоря... не совсем я понял как у Вас там всё организовано...
    Возможно Вы имели в виду вот это?
    Код:
    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;
     
  3. ZMihail

    ZMihail New Member

    Репутация:
    0
    Регистрация:
    24 дек 2012
    Сообщения:
    2
    Симпатии:
    0
    Спасибо! Всё так как я и хотел.
     
Загрузка...

Поделиться этой страницей