Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 6 340

/ вопрос открыт /

Здравствуйте, эксперты! Имеется две таблицы ClientDataSet T1 и FIOT в Т1 записывается ключ таблицы FIOT но у меня он только просчитывает
только текущее положение таблицы FIOT как сделать чтоб просчиталось
по всему полю FIOT. Заранее благодарен.

Приложение:
  1. procedure TForm1.Button7Click(Sender: TObject);
  2. Var summ: integer;
  3. i : integer;
  4. begin
  5. t1.Filter:= 'FIOID='+ fiot.FieldByName('ID').AsString;
  6. t1.Filtered:=true;
  7. summ:=0;
  8. while not t1.Eof do
  9. begin
  10. summ:=summ+ t1.FieldByName('sob').asinteger;
  11. ListBox1.Items.Add(fiot.FieldByName('Fio').AsString+ ': '+ IntToStr(summ));
  12. t1.Next;
  13. end;
  14. end;
  15. end.


ZMihail Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: ZMihail (статус: Посетитель)
Вопрос отправлен: 22 декабря 2012, 09:06
Состояние вопроса: открыт, ответов: 0.


Мини-форум вопроса

Всего сообщений: 8; последнее сообщение — 22 декабря 2012, 13:13; участников в обсуждении: 3.
min@y™

min@y™ (статус: Доктор наук), 22 декабря 2012, 09:24 [#1]:

Может, перепишешь вопрос с использованием знаков препинания? А то я нихрена не понял.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
ZMihail

ZMihail (статус: Посетитель), 22 декабря 2012, 10:00 [#2]:

Имеется две таблицы: ClientDataSet ( T1 и FIOT), в таблицу (Т1) записывается ключ таблицы (FIOT). Таблица (T1) содержит по ключу(FIOID) множество записей таблицы (FIOT) по ключу ('ID'). Мне нужно, чтобы записи таблицы (FIOT) суммировались
согласно ключам таблицы (Т1). На схеме суммируется только первая запись таблицы (FIOT). как мне сделать, чтобы
этот процесс дошёл до конца таблицы (FIO). И записал всё ListBox.
min@y™

min@y™ (статус: Доктор наук), 22 декабря 2012, 10:13 [#3]:

Цитата (ZMihail):

как мне сделать, чтобы этот процесс дошёл до конца таблицы (FIO)

Вероятно, внутри цикла while not t1.Eof do нужен вложенный цикл типа while not fiot.Eof do?
Или я чего-то не догоняю ранним утром после отмечания конца света?
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
ZMihail

ZMihail (статус: Посетитель), 22 декабря 2012, 10:32 [#4]:

Таким образом
procedure TForm1.Button7Click(Sender: TObject);
Var summ: integer;
i : 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;
Мережников Андрей

Мережников Андрей (статус: Абитуриент), 22 декабря 2012, 11:25 [#5]:

вложенный цикл по fiot зачем, если суммировать надо по t1?
Какая СУБД? Может проще все написать одним SQL-запросом?
ZMihail

ZMihail (статус: Посетитель), 22 декабря 2012, 11:32 [#6]:

эти таблицы ClientDataSet с SQL не работают
Мережников Андрей

Мережников Андрей (статус: Абитуриент), 22 декабря 2012, 11:39 [#7]:

База, к которой присоединены ClentDataSet на чем?
ZMihail

ZMihail (статус: Посетитель), 22 декабря 2012, 13:13 [#8]:

Они работают с библиотекой MIDAS.dll. Соединяются с
собой (главная-подчинённая). Я так думаю, что каждая таблица представляется как БД. А общей БД у них нет.

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 12:02
Выполнено за 0.03 сек.