Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.11.2009, 15:41   #1
Dem6
Пользователь
 
Регистрация: 07.04.2009
Сообщений: 24
По умолчанию Арифметически действия

мне нужно подсчитать общую сумму голосов по все регионам, вот моя логика:
От і:= 1 до кол-во регионов
Сума:=Сума+ рейтинг
Вот что я делаю в Delphi
Код:
 procedure TForm1.ADOTable1CalcFields(DataSet: TDataSet);
var
  i:integer;
begin
for i:=1 to ADOTable2.FieldCount do
  ADOTable1Vote.Value:=ADOTable1Vote.AsInteger+ADOTable3Rating.AsInteger;
end;
ругательства: [Fatal Error] Could not create output file 'F:\Kurs\Project1.exe'

Последний раз редактировалось Stilet; 09.11.2009 в 16:00.
Dem6 вне форума Ответить с цитированием
Старый 09.11.2009, 16:01   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

А вообще Делфи твоя может проекты компилить? Не запортилась случайно вся?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 09.11.2009, 16:10   #3
russian-stalker
Участник клубаДжуниор
 
Аватар для russian-stalker
 
Регистрация: 23.08.2008
Сообщений: 1,616
По умолчанию

Может вы не закрыли старый exe? или он у вас из памяти не выгрузился(возможно просто форма не видима)? Какие привилегии у Delphi(надо с возможностью записи на диск запускать)? Не антивирус ли это не даёт создавать?
pushl $0x18E3DF6B
call ICQ
russian-stalker вне форума Ответить с цитированием
Старый 09.11.2009, 17:02   #4
Dem6
Пользователь
 
Регистрация: 07.04.2009
Сообщений: 24
По умолчанию

Компилируется уже нормально,только не считает((
По идеи оно должно подсчитать суму всех ячеек и записать результат в другую ячейку
Dem6 вне форума Ответить с цитированием
Старый 09.11.2009, 18:10   #5
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

То Dem6
Вы что творите?
Кто же это на CalcFields ставит цикл по всем записям???
Срочно выкиньте строку
for i:=1 to ADOTable2.FieldCount do

Дальше. Что за сумму вы хотите подсчитать?
Какие поля есть в таблице? Какие поля вы хотите суммировать?
Если ваша формула
ADOTable1Vote.Value:=ADOTable1Vote. AsInteger+ADOTable3Rating.AsInteger ;
верна, то выполнять это действие нужно не в CalcFields, а по, например, нажатию кнопки "Подсчитать сумму":
Код:
procedure TForm1.ButtonSumClick(Sender: TObject);
var
  i,sum:integer;
begin
sum:=0;
for i:=1 to ADOTable2.FieldCount do
  sum:=sum+ADOTable3Rating.AsInteger;
end;

Последний раз редактировалось mihali4; 09.11.2009 в 18:16.
mihali4 вне форума Ответить с цитированием
Старый 09.11.2009, 19:00   #6
Dem6
Пользователь
 
Регистрация: 07.04.2009
Сообщений: 24
По умолчанию

Список кандидатов - ADOTable1
Список регионов - ADOTable2
Рейтинг по каждому региону -ADOTable3

Цитата:
Кто же это на CalcFields ставит цикл по всем записям???
"... Выделите компонент ADOTable и создает обработчик событий OnCalcFields. Это событие вызывается каждый раз, когда надо пересчитать вычисляемые поля " М. Фленов. Библия Делфи.
так мне советует єта книги. Жаль что нет возможности спросить у препода, я делфи решил учить на перед и взял свое прошло задания по курсовой на С++. Если кому не жалко то подредактируйте.
Dem6 вне форума Ответить с цитированием
Старый 09.11.2009, 19:04   #7
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Событие OnCalcFields вызывается по отдельности для каждой записи.
В вашем случае его применение было бы оправдано, если бы вам нужно было подсчитать сумму значений нескольких полей в каждой записи ("по строке").
А вам, насколько я понимаю, нужно подсчитать сумму "по столбцу"...
mihali4 вне форума Ответить с цитированием
Старый 09.11.2009, 19:32   #8
Dem6
Пользователь
 
Регистрация: 07.04.2009
Сообщений: 24
По умолчанию

Так каким, мне способом делать, через кнопку?
Dem6 вне форума Ответить с цитированием
Старый 09.11.2009, 19:35   #9
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Да, положите лэйбл под DBGrid, под колонку, по которой вы считаете сумму, и сделайте лэйбл невидимым.
А по нажатию на кнопку суммирования подсчитывайте сумму, вводите ее в лэйбл и делайте лэйбл видимым...
mihali4 вне форума Ответить с цитированием
Старый 09.11.2009, 19:52   #10
Dem6
Пользователь
 
Регистрация: 07.04.2009
Сообщений: 24
По умолчанию

Та мне нужно что б напротив каждого кандидата выводилось его количество голосов по все регионом в колонке рейтинг.
Dem6 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
строки и действия DeDoK Общие вопросы Delphi 21 08.08.2009 02:55
Действия с массивами Domik92 Паскаль, Turbo Pascal, PascalABC.NET 2 09.12.2008 13:15
арифметически операции со временм ChiToK БД в Delphi 7 30.04.2008 01:48
Завершение действия SunKnight Общие вопросы Delphi 3 12.02.2008 18:25