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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 25.12.2016, 23:56   #21
ИвановБ
Пользователь
 
Регистрация: 19.12.2016
Сообщений: 70
По умолчанию

Цитата:
Сообщение от xxbesoxx Посмотреть сообщение
procedure TForm1.Button2Click(Sender: TObject);
// итоговое сумма со-скидкой 10%
var cen: Currency;
n: integer;
skidk : Currency;
begin
cen:=0;
ADOTable1.First;
for n:=1 to ADOTable1.RecordCount do
begin
skidk := ADOTable1.FieldByName('price').AsCu rrency /100*10;
cen := cen + ADOTable1.FieldByName('price').AsCu rrency-skidk;
ADOTable1.Next;
Label2.Caption :=CurrToStr(cen);
end;

end;
Как я понял это уже будут все цены средняя цена меньше 100?
ИвановБ вне форума Ответить с цитированием
Старый 26.12.2016, 00:01   #22
xxbesoxx
Участник клуба
 
Регистрация: 10.08.2010
Сообщений: 1,389
По умолчанию

Цитата:
Сообщение от ИвановБ Посмотреть сообщение
Как я понял это уже будут все цены средняя цена меньше 100?
итоговое сумма со-скидкой 10% проверяйте ... или время нету ?

Последний раз редактировалось xxbesoxx; 26.12.2016 в 00:05.
xxbesoxx вне форума Ответить с цитированием
Старый 26.12.2016, 00:05   #23
ИвановБ
Пользователь
 
Регистрация: 19.12.2016
Сообщений: 70
По умолчанию

А все понял это считывается сумма всех строк со скидкой.
ИвановБ вне форума Ответить с цитированием
Старый 26.12.2016, 00:13   #24
ИвановБ
Пользователь
 
Регистрация: 19.12.2016
Сообщений: 70
По умолчанию

Блин теперь опять запутался, а итог этого кода можно запихнуть в мой цикл?
ИвановБ вне форума Ответить с цитированием
Старый 26.12.2016, 00:21   #25
xxbesoxx
Участник клуба
 
Регистрация: 10.08.2010
Сообщений: 1,389
По умолчанию

Цитата:
Сообщение от ИвановБ Посмотреть сообщение
Блин теперь опять запутался
Вот это чтоли ?
Изображения
Тип файла: jpg DSC_6627.jpg (120.7 Кб, 146 просмотров)
xxbesoxx вне форума Ответить с цитированием
Старый 26.12.2016, 00:34   #26
ИвановБ
Пользователь
 
Регистрация: 19.12.2016
Сообщений: 70
По умолчанию

Ага они самые
Вот посмотрите я уже замучился я в верном направлении иду?
Код:
var cen, itog: Currency;
    n, cent,i: integer;
begin
  cent:=DM.ADOTableBD.FieldByName('ЦенаТовара').AsInteger;
  i:=DM.ADOTableBD.RecordCount;
  cen:=0;
  DM.ADOTableBD.First;
  for n:=1 to DM.ADOTableBD.RecordCount do
    begin
      cen := cen + DM.ADOTableBD.FieldByName('ЦенаТовара').AsCurrency;
    end;
      repeat
      cen:=cent*0.9;
      itog:=cen/i;
      until itog<100;
end;
хотя кажется я здесь столько нагромоздил неправильного программа даже виснет после выполнения этой процедуры
ИвановБ вне форума Ответить с цитированием
Старый 26.12.2016, 01:37   #27
xxbesoxx
Участник клуба
 
Регистрация: 10.08.2010
Сообщений: 1,389
По умолчанию

Цитата:
Сообщение от ИвановБ Посмотреть сообщение
Ага они самые
Вот посмотрите я уже замучился я в верном направлении иду?
Код:
var cen, itog: Currency;
    n, cent,i: integer;
begin
  cent:=DM.ADOTableBD.FieldByName('ЦенаТовара').AsInteger;
  i:=DM.ADOTableBD.RecordCount;
  cen:=0;
  DM.ADOTableBD.First;
  for n:=1 to DM.ADOTableBD.RecordCount do
    begin
      cen := cen + DM.ADOTableBD.FieldByName('ЦенаТовара').AsCurrency;
    end;
      repeat
      cen:=cent*0.9;
      itog:=cen/i;
      until itog<100;
end;
хотя кажется я здесь столько нагромоздил неправильного программа даже виснет после выполнения этой процедуры
Если переменное cen объявлен типов Currency; и потом присваиваем ей значение DM.ADOTableBD.FieldByName('ЦенаТова ра').AsInteger; что это ? Currency и Integer это не разные тип данных и "цена" Integer как вы думаете ?! ...

Последний раз редактировалось xxbesoxx; 26.12.2016 в 01:40.
xxbesoxx вне форума Ответить с цитированием
Старый 26.12.2016, 10:43   #28
ИвановБ
Пользователь
 
Регистрация: 19.12.2016
Сообщений: 70
По умолчанию

Ммм.... Да сейчас буду исправлять ночью уже башка плохо соображала
ИвановБ вне форума Ответить с цитированием
Старый 26.12.2016, 10:56   #29
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Примерно так
Код:
  if DM.ADOTableBD.RecordCount>0 then begin
    {считаем среднюю цену}
    cen:=0;
    DM.ADOTableBD.First;
    while not DM.ADOTableBD.Eof do begin
      cen:=cen+DM.ADOTableBD.FieldByName('ЦенаТовара').AsCurrency;
      DM.ADOTableBD.Next;
    end;
    cen:=cen/DM.ADOTableBD.RecordCount;
    {определяем коэффициент пересчета цен}
    k:=0;
    while cen>=100 do begin cen:=cen*0.9; Inc(k); end;
    Koef:=Power(0.9,k);
    {пересчет цен}
    if k>0 then begin
      DM.ADOTableBD.First;
      while not DM.ADOTableBD.Eof do begin
        DM.ADOTableBD.Edit;
        DM.ADOTableBD.FieldByName('ЦенаТовара').AsCurrency:=DM.ADOTableBD.FieldByName('ЦенаТовара').AsCurrency*Koef;
        DM.ADOTableBD.Post;
        DM.ADOTableBD.Next;
      end;
    end;
  end;
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 26.12.2016, 11:48   #30
ИвановБ
Пользователь
 
Регистрация: 19.12.2016
Сообщений: 70
По умолчанию

Аватар, спасибо. А вот скажите вот Koef это что у вас переменная?
ИвановБ вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Дан текст. Найти множество всех слов, которые встречаются во всех предло-жениях текста. Anton94.by Помощь студентам 1 31.03.2014 15:30
Уменьшать размер букв Label6 в зависимости от width Алексей_2012 Общие вопросы Delphi 6 24.03.2013 20:27
цикл for i:=0 to count -1 do. Уменьшать счётчик i внутри цикла... Человек_Борща Общие вопросы Delphi 10 01.07.2011 21:11
Имена всех секций всех ini-файлов (DELPHI) Dj_SheLL Помощь студентам 7 10.10.2010 17:44