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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 03.11.2011, 12:23   #1
Алекссс
Пользователь
 
Аватар для Алекссс
 
Регистрация: 25.06.2011
Сообщений: 55
По умолчанию Перемножить столбец

Здравствуйте! Скажите как можно реализовать такое - у меня на форме есть дбгрид и идит. в едит стоит сумма (с курсом доллара). в гриде список (наименование. еденица измерения, чена за еденицу и цена в долларах) вот вопрос как можно высчитать соимость в долларах всего столбца (цены в долларах) не изменя записи по одному а к примеру только тыком на кнопочку.
ICQ 566505973 e-mail first_al@mail.ru
Алекссс вне форума Ответить с цитированием
Старый 03.11.2011, 13:04   #2
pobedin
Форумчанин
 
Регистрация: 30.07.2009
Сообщений: 105
По умолчанию

что значит поле "цена за единицу" и "единица измерения" ?
если перевести в доллары по типу (валюта* на курс доллара), то примерно так:

Код:
table.first;
while table not eot do
begin
table.edit;
table.FieldByName('cena_dollar').asInteger:=table.FieldByName('cena').asInteger*strToInt(edit1.text);
table.post;
table.next;
end;
название полей и таблицы свои конечно же.
можно через sql. что за субд?
pobedin вне форума Ответить с цитированием
Старый 03.11.2011, 13:19   #3
Алекссс
Пользователь
 
Аватар для Алекссс
 
Регистрация: 25.06.2011
Сообщений: 55
По умолчанию

Цитата:
Сообщение от pobedin Посмотреть сообщение
что значит поле "цена за единицу" и "единица измерения" ?
если перевести в доллары по типу (валюта* на курс доллара), то примерно так:
Код:
table.first;
while table not eot do
begin
table.edit;
table.FieldByName('cena_dollar').asInteger:=table.FieldByName('cena').asInteger*strToInt(edit1.text);
table.post;
table.next;
end;
название полей и таблицы свои конечно же.
можно через sql. что за субд?
СУБД аксесс
в общем у меня получается так что обычная сена за товар это cena и есть цена в долларах cena_dol и edit в котором стоит курс доллара, он часто меняется и в зависимости от его изменения мне надо пересчитать весь столбец cena_dol нажатием лоной кнопочки. значит получается так
Код:
ADOtable1.first;
while ADOtable1 not eot do
begin
ADOtable1.edit;
ADOtable1.FieldByName('cena_dol').asInteger:=ADOtable1.FieldByName('cena').asInteger*strToInt(edit1.text);
ADOtable1.post;
ADOtable1.next;
end;
так?
и что то на ADOtable1 not eot do ругается оО

Зачем вы отвечаете с цитированием всего предыдущего поста ? Чтоб "простыня" подлиннее получилась ?
Вы не видите кнопку справа от кнопки "Цитата" ?
Или вам почему-то не видно пустое окно редактора под последним сообщением ?
За оверквотинг у нас штрафуют, имейте это ввиду.
Дабы не нарушать правила раздела, внимательно их почитайте...
ICQ 566505973 e-mail first_al@mail.ru

Последний раз редактировалось mihali4; 03.11.2011 в 15:43.
Алекссс вне форума Ответить с цитированием
Старый 03.11.2011, 14:05   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

1. while not ADOtable1.Eof do
2. Умножая цену в долларах на курс получаем цену в рублях (если курс допустим 28), но никак не цену в долларах
3. Если есть цена в рублях, то деля ее на курс (тот же 28) и получим цену в баксах
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 03.11.2011, 14:18   #5
Алекссс
Пользователь
 
Аватар для Алекссс
 
Регистрация: 25.06.2011
Сообщений: 55
По умолчанию

да да я это уже понял что делить надо! могу код скинуть другим может кому поможет спасибо
Код:
procedure TForm14.sBitBtn2Click(Sender: TObject);
begin
form14.preskurant.first;
while not form14.preskurant.Eof do begin
form14.preskurant.edit;
form14.preskurant.FieldByName('cena_doll').asInteger:=Round((form14.preskurant.FieldByName('cena').asInteger/strToInt(sDBedit1.text)*100)/100);
form14.preskurant.post;
form14.preskurant.next;
end;
end;
ICQ 566505973 e-mail first_al@mail.ru

Последний раз редактировалось mihali4; 03.11.2011 в 15:44.
Алекссс вне форума Ответить с цитированием
Старый 03.11.2011, 14:21   #6
pobedin
Форумчанин
 
Регистрация: 30.07.2009
Сообщений: 105
По умолчанию

если все правильно понял, то так:
Код:
while not ADOtable1.Eof do
begin
ADOtable1.edit;
ADOtable1.FieldByName('cena_dol').asInteger:=ADOtable1.FieldByName('cena').asInteger/StrToInt(edit1.text);
ADOtable1.post;
ADOtable1.next;
end;
pobedin вне форума Ответить с цитированием
Старый 03.11.2011, 14:25   #7
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Полное недоумение. Цена Integer (что копеек не бывает?). Курс Integer - т.е. курса 28,15 по определению быть не может. Умножение и деление на 100 не понял. И напоследок цена в долларах тоже Integer?
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 03.11.2011, 14:41   #8
Алекссс
Пользователь
 
Аватар для Алекссс
 
Регистрация: 25.06.2011
Сообщений: 55
По умолчанию

да в том то и проблема как или точней что надо добавить что бы у меня выходила цена в долларах в занчении 2 знаков после запятой. а цена рублями)))) я с белорусии у нас нет копеек))) у нас тысячи))
ICQ 566505973 e-mail first_al@mail.ru
Алекссс вне форума Ответить с цитированием
Старый 03.11.2011, 14:41   #9
pobedin
Форумчанин
 
Регистрация: 30.07.2009
Сообщений: 105
По умолчанию

это просто пример
pobedin вне форума Ответить с цитированием
Старый 03.11.2011, 14:43   #10
Алекссс
Пользователь
 
Аватар для Алекссс
 
Регистрация: 25.06.2011
Сообщений: 55
По умолчанию

можешь помоч оптимизировать этот код
ICQ 566505973 e-mail first_al@mail.ru

Последний раз редактировалось mihali4; 03.11.2011 в 15:44.
Алекссс вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как перемножить матрицы? phasha Помощь студентам 4 31.10.2011 15:44
Ошибка. НЕ МОГУ ВСТАВИТЬ столбец В ЗАДАЧУ КОТОРАЯ ВЫВЕДЕТ СТОЛБЕЦ ИЗ ЕДИНИЦ ПОСЛЕ ЧИСЛА к. Диас_ Паскаль, Turbo Pascal, PascalABC.NET 1 14.06.2011 18:49
перемножить определённые данные с массива ahpalush Microsoft Office Excel 2 23.01.2010 18:14
макрос который будет копировать столбец А из закрытой книги Данные, и вставлять в книгу Сток в столбец B Utirka66 Microsoft Office Excel 8 06.07.2009 09:53
Первый столбец vladi Microsoft Office Excel 2 26.05.2009 12:18