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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 03.06.2012, 14:31   #1
Екатерина20
Пользователь
 
Аватар для Екатерина20
 
Регистрация: 25.09.2011
Сообщений: 72
По умолчанию

Ребят, у меня какие- то проблемы с суммированием. Заметила только сейчас, что он неправильно считает.
У меня БД DBGridEh и в 1 столбце данные, которые надо суммировать и вывести в Эдит. Я заметила , что перестает он считать когда попадаются целые числа (У меня и десятичные и целые), такое впечатление, что подсчитывает количество строк. Что здесь не правильно?
Код:
//Подсчет суммы часов
procedure TForm4.Edit1Click(Sender: TObject);
  var s: real;
      n: integer;
  begin
    s:=0;
    MemTableEh2.First;
    for n:=1 to MemTableEh2.RecordCount
    do begin
    s := s + MemTableEh2.FieldByName('Трудоемкость max количество').AsFloat;
   MemTableEh1.Next;
    Edit1.Text :=FloatToStr(s);
    end;
  end;
Говорят, что это правильный код. Но у меня он не работает, умножает на 3 каждую новодобавленную строку. Дело в том, что у меня это временная таблица с заказами, куда добавляется новый заказ, а потом должен посчитать, и вывести в Edit. И к тому же числа там и десятичные и целые.

Ребят вот я дура столько времени ищу решение, и сейчас только заметила у меня MemTable разные написаны)))

А, у меня еще вопрос вот мне теперь надо перемножить этот результат на 500. С целыми числами этот код работает, а с десятичными нет, как его нужно изменить?
Код:
procedure TForm4.Edit2Click(Sender: TObject);
  var
    a,b:integer;
  begin
    a:=StrToInt(Edit1.Text);
    b:=StrToInt('500');
    Edit2.Text:=IntToStr(a*b);
  end;

Последний раз редактировалось artemavd; 08.06.2012 в 18:23.
Екатерина20 вне форума Ответить с цитированием
Старый 08.06.2012, 11:56   #2
denisbrain
Форумчанин
 
Регистрация: 29.05.2011
Сообщений: 449
По умолчанию

Цитата:
Сообщение от Екатерина20 Посмотреть сообщение
Ребят вот я дура столько времени ищу решение, и сейчас только заметила у меня MemTable разные написаны)))

А, у меня еще вопрос вот мне теперь надо перемножить этот результат на 500. С целыми числами этот код работает, а с десятичными нет, как его нужно изменить?
Код:
procedure TForm4.Edit2Click(Sender: TObject);
  var
    a,b:integer;
  begin
    a:=StrToInt(Edit1.Text);
    b:=StrToInt('500');
    Edit2.Text:=IntToStr(a*b);
  end;


а SQL запросы вида
Код:
select sum((polea+poleb)*poleC from Table where Table.PoleD=<значение>
задания на pascal/delphi ICQ 368254335
Tel +79177425326 mail denis-naymov1985(at)mail.ru login skype denis.new.skype
denisbrain вне форума Ответить с цитированием
Старый 08.06.2012, 11:59   #3
Екатерина20
Пользователь
 
Аватар для Екатерина20
 
Регистрация: 25.09.2011
Сообщений: 72
По умолчанию

К чему этот запрос О-о? У меня не таблицы перемножить, а просто Эдиты)
Екатерина20 вне форума Ответить с цитированием
Старый 08.06.2012, 12:11   #4
Yurk@
Участник клуба
 
Аватар для Yurk@
 
Регистрация: 19.12.2007
Сообщений: 1,100
По умолчанию

Код:
Edit3.Text:=FloatToStr(StrToFloat(Edit1.Text)*StrToFloat(Edit2.Text))
На форуме: Помогаю за спасибо
ICQ\Skype: Это моё личное время ...
Yurk@ вне форума Ответить с цитированием
Старый 08.06.2012, 14:59   #5
ych_del
Форумчанин
 
Аватар для ych_del
 
Регистрация: 06.02.2011
Сообщений: 149
По умолчанию

Цитата:
К чему этот запрос О-о? У меня не таблицы перемножить, а просто Эдиты)
Это тебе для примера написали. И кстати - так гораздо быстрее работать будет - СУБД тебе сразу отдаст сумму, не придется фетчить все записи. В твоем случае будет выглядеть примерно вот так:

Код:
select sum("Трудоемкость max количество")*500 as S from TABLE
А потом вот так:

Код:
Edit2.Text:=FloatToStr(FieldByName('S').AsFloat);
Профессиональный конвертор галлюцинаций заказчика в алгоритмическую структуру.
ych_del вне форума Ответить с цитированием
Старый 08.06.2012, 15:52   #6
Екатерина20
Пользователь
 
Аватар для Екатерина20
 
Регистрация: 25.09.2011
Сообщений: 72
По умолчанию

Всем спасибо, сделала по примеру Yurk@, все работает)
Екатерина20 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
подсчет окрашенных ячеек Excel в Delphi с суммированием по файлам dreaminn Помощь студентам 2 12.05.2012 17:58
Сбор данных из нескольких листов на один с удалением дубликатов, но суммированием значений strannick Microsoft Office Excel 4 10.04.2012 19:18
Запрос даты, с последующим суммированием суммы поля. KatCH Microsoft Office Access 10 07.06.2011 15:51
Сводная таблица с суммированием по конкретным ячейкам de-dimko Microsoft Office Excel 3 11.08.2010 14:17
Проблемы с суммированием...либо еще с чем...сам не пойму( Cerebrum Общие вопросы Delphi 0 16.04.2010 20:41