Программы "Простой софт" www.prostoysoft.ru

ВНИМАНИЕ! РЕКЛАМНЫЕ СООБЩЕНИЯ И ГИПЕРССЫЛКИ В ФОРУМЕ ЗАПРЕЩЕНЫ (посты удаляются автоматически)
Текущее время: 23.11.2024 02:36

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 15 ] 
Автор Сообщение
 Заголовок сообщения: Помогите построить формулу
СообщениеДобавлено: 08.01.2012 20:40 
Не в сети

Зарегистрирован: 27.06.2011 19:05
Сообщения: 34
Здравствуйте!!!
Очень нужна ваша помощь в следующем, добавил в Б/Д таблицу "Услуги"
Нужно чтобы запрос qdfServices выполнялся следующим образом:

Если [ServicesType] = 'Монтаж' то [Price] = [OrderAmountCalc] / 100 *[Pct]
Если [ServicesType] = 'Доставка' то [Pct] = Null а поле [Price] заполнять с клавиатуры
Если [ServicesType] = 'Подъем на этаж' то [Price] = [FloorCalc] - 1 *50 + 150

Составили следующее выражение:

IIf([ServicesType]="Монтаж";[Price]=[OrderAmountCalc]/100*[Pct];IIf([ServicesType]="Доставка";[Pct]="" And [price]="";IIf([ServicesType]="'Подъем на этаж";[Price]=[FloorCalc]-1*50+150)))

...Но оно не работает, может подскажете что не так


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите построить формулу
СообщениеДобавлено: 08.01.2012 21:00 
Не в сети

Зарегистрирован: 27.06.2011 19:05
Сообщения: 34
еще такую составили...

IIf([ServicesType]="Монтаж";[OrderAmountCalc]/100*[Pct];
IIf([ServicesType]="Доставка";InputBox("введите цену");
IIf([ServicesType]="Подъем на этаж";[FloorCalc]-1*50+150))) As Price

Тоже не работает


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите построить формулу
СообщениеДобавлено: 08.01.2012 21:12 
Не в сети
Администратор

Зарегистрирован: 15.02.2006 20:16
Сообщения: 3690
Откуда: Санкт-Петербург
Речь идет о формуле значения по умолчанию для поля "Цена"?
Очевидно, уже не в таблице "Услуги" (qdfServices), а в какой-то зависимой таблице (типа "Проданные услуги" или "Оказанные услуги"), не так ли?
Вам надо использовать условную конструкцию SWITCH. См. скриншот.
В типовом вопросе №40 есть ссылка на описание функцию SWITCH с примерами.
В случае, если нужен ручной ввод с клавиатуры, то ничего не должно считаться и предлагаться по умолчанию в качестве цены.
Для поля Pct нужно задать значение по умолчанию отдельно. Кстати, как это по-русски? Сокращений в именах полей мы не рекомендуем использовать.


Вложения:
Pic1.gif
Pic1.gif [ 40.39 КБ | Просмотров: 73157 ]

_________________
2B OR NOT 2B = TRUE
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите построить формулу
СообщениеДобавлено: 08.01.2012 21:29 
Не в сети

Зарегистрирован: 27.06.2011 19:05
Сообщения: 34
Ivan писал(а):
> Речь идет о формуле значения по умолчанию для поля "Цена"?
Очевидно, уже не в таблице "Услуги" (qdfServices), а в какой-то
> зависимой таблице (типа "Проданные услуги" или "Оказанные
> услуги"), не так ли?
> Вам надо использовать условную конструкцию SWITCH. См. скриншот.
> В типовом вопросе №40 есть ссылка на описание функцию SWITCH с примерами.
> В случае, если нужен ручной ввод с клавиатуры, то ничего не должно
> считаться и предлагаться по умолчанию в качестве цены.
> Для поля Pct нужно задать значение по умолчанию отдельно. Кстати, как это
> по-русски? Сокращений в именах полей мы не рекомендуем использовать.

Речь идет о формуле значения по умолчанию для поля "Цена"именно в таблице "Услуги" (qdfServices)
Pct значит процент :D


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите построить формулу
СообщениеДобавлено: 08.01.2012 21:43 
Не в сети
Администратор

Зарегистрирован: 15.02.2006 20:16
Сообщения: 3690
Откуда: Санкт-Петербург
Таблица "Услуги" - это справочник услуг, в котором обычно указываются фиксированные цены. В самом простом случае - там только название услуги и ее цена.
Цены все вводятся с клавиатуры вместе со вводом наменования услуги. Далее эта информация только используется в зависимых таблицах.
И именно в какой-то зависимой таблице (такой как "Оказанные услуги" или "Оплаченные услуги"...), в которую вводится услуга из справочника услуг, только и имеет смысл задавать формулу для построения индивидуальной цены, зависящей от ряда других факторов (клиента, даты сделки (в Рождество, например, может быть скидка), типа сделки, общего объема продаж данному клиенту (накопительная скидка) и Бог знает чего еще...)
А в таблице "Услуги" даже нет всех этих атрибутов. В смысле "не должно быть" :D
А полю "Процент" лучше дать имя Percent или лучше SalePercent или SaleDiscount.

_________________
2B OR NOT 2B = TRUE


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите построить формулу
СообщениеДобавлено: 08.01.2012 21:58 
Не в сети

Зарегистрирован: 27.06.2011 19:05
Сообщения: 34
У меня таблица вернее запрос выглядит так см.скрин
Поле "процент" названо просто сокращением - смотрю всегда гугл переводчик


Вложения:
Услуги2.JPG
Услуги2.JPG [ 89.8 КБ | Просмотров: 73161 ]
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите построить формулу
СообщениеДобавлено: 08.01.2012 22:09 
Не в сети
Администратор

Зарегистрирован: 15.02.2006 20:16
Сообщения: 3690
Откуда: Санкт-Петербург
"Как вы яхту назовете, так она и поплывет" :D
А у вас тут путаница. И ваша "яхта" уже пустила изрядные "корни" (проблемы n-ного порядка).
Если есть tblSales, то должна быть tblSalesProducts (или tblSoldProducts).
Если есть tblOrders, то должна быть tblOrdersProducts (или tblOrderedProducts).
Вы уже решите, либо Sales, либо Orders.
Отсюда идут ваши проблемы.
А сокращения рождают неоднозначность, и, стало быть, тоже проблемы.

_________________
2B OR NOT 2B = TRUE


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите построить формулу
СообщениеДобавлено: 08.01.2012 22:13 
Не в сети

Зарегистрирован: 27.06.2011 19:05
Сообщения: 34
я хочу чтобы значения пересчитывались в зависимости от переменной "тип услуг"


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите построить формулу
СообщениеДобавлено: 08.01.2012 22:15 
Не в сети
Администратор

Зарегистрирован: 15.02.2006 20:16
Сообщения: 3690
Откуда: Санкт-Петербург
Как я уже вам ответил, используйте SWITCH.

_________________
2B OR NOT 2B = TRUE


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите построить формулу
СообщениеДобавлено: 09.01.2012 19:03 
Не в сети

Зарегистрирован: 27.06.2011 19:05
Сообщения: 34
Ivan писал(а):
> Как я уже вам ответил, используйте SWITCH.

Блин, у меня не получается...
Вот формула которую составил:

SWITCH([PriceCalc] = 'Монтаж',[OrderAmountCalc]/100*[Pct] , [PriceCalc] = 'Подъем на этаж', [FloorCalc]-1*50 + 150,)

не сработала


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите построить формулу
СообщениеДобавлено: 09.01.2012 22:07 
Не в сети

Зарегистрирован: 27.06.2011 19:05
Сообщения: 34
... и так не получилось:
SWITCH([PriceCalc] = [OrderAmountCalc]/100*[Pct], 'Монтаж', [PriceCalc] = [FloorCalc]-1*50 + 150, 'Подъем на этаж')


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите построить формулу
СообщениеДобавлено: 10.01.2012 11:08 
Не в сети
Администратор

Зарегистрирован: 15.02.2006 20:16
Сообщения: 3690
Откуда: Санкт-Петербург
Обращайтесь к нам в поддержку через форму по ссылке "Поддержка", приложив копию вашей БД.

_________________
2B OR NOT 2B = TRUE


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите построить формулу
СообщениеДобавлено: 12.01.2012 22:36 
Не в сети

Зарегистрирован: 27.06.2011 19:05
Сообщения: 34
Составили следующую формулу:

iif([ServicesType]="Подъем на этаж", ([FloorCalc]-1)*50+150,
iif([ServicesType]="Монтаж", [OrderAmountCalc]/100*val(NZ([Pct],1)),
iif([ServicesType]="Доставка", [Введите значение поля Price]))) as [Price1]

В Access все работает, а вот в программе ошибка (см.скриншот)


Вложения:
Ошибка Услуги.JPG
Ошибка Услуги.JPG [ 64.42 КБ | Просмотров: 73065 ]
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите построить формулу
СообщениеДобавлено: 13.01.2012 22:18 
Не в сети

Зарегистрирован: 27.06.2011 19:05
Сообщения: 34
Вот блин, теперь со мной и разговаривать никто не хочет... 8)


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 15 ] 

Часовой пояс: UTC + 4 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 7


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB