Автор Тема: Вывод значения по условию  (Прочитано 3154 раз)

masslay

  • Ученик
  • *
  • Сообщений: 4
  • Благодарностей 0
Вывод значения по условию
« : Март 19, 2017, 06:21:15 pm »
Руну осваиваю всего несколько дней, поэтому прошу сильно не пинать.
Перечитал всю справку вдоль и поперек. Три раза. Очень не хватает примеров в этой справке, если честно.

Я делаю программу для проката инструментов. У меня есть три типа арендной платы, зависящие от срока проката (1 день, от 2-х до 5-ти и от 5-ти дней). Я сделал вот такую вот форму:


А вот так выглядит список инструментов с ценами :


Теперь мне нужно во вкладке "Заказы" сделать так, чтобы при добавлении инструмента в заказ в дочернем списке инструментов автоматически проставлялась цена аренды в зависимости от установленного срока. То есть, если на первой картинке срок будет 1 день, то цена напротив каждого инструмента в заказе будет допустим 100 рублей; если срок 2 дня, то цена меняется на 70 рублей.

Насколько я понял единственная функция, которой можно задавать условия это String. Что-то наподобии ЕСЛИ в Excel. Так вот я попробовал сделать что-то вроде такого в составном поле: String(Заказы.Срок=1?[Инструменты.Арн1]:)
Хотел посмотреть будет ли ставится цена за одни сутки. Не работает. И как я ее только не пробовал писать. И со скобками, и без, и с круглыми и с квадратными. Просто показывает формулу String(Заказы.Срок=1?800:)

Подскажите что я делаю не так.

vladimir.runa

  • Главный модератор
  • Мастер
  • **
  • Сообщений: 341
  • Благодарностей 22
  • skype: vladimir.runa
Re: Вывод значения по условию
« Ответ #1 : Март 19, 2017, 09:41:53 pm »
Всё верно, условия в конструкторе пока можно реализовать только через функцию [String()] с условием. Позже добавится специальное поле условия, а пока есть такое решение:

В объект списка инструментов в заказе должны быть переданы срок аренды из объекта заказа (рассчитывается из начальной и конечной дат) и все цены из объекта инструмента, которые могут быть применены.
Сначала рассчитывается цена при конечных условиях (от 1 до 4 дней). Для этого в составном поле прописываются все условия, которые подставляют какое-то одно значение в зависимости от числа дней. Полученный результат копируется в число для дальнейшей обработки (использовать составное поле в составном - нельзя).
Затем проверяется, есть ли нулевой результат (нет попадания в диапазон конечных условий). Если да, то подставляется цена из неограниченного диапазона (от 5 дней и более), а если нет, то сохраняется уже полученная цена.

Единственный недостаток данного решения в конструкторе: при изменении срока аренды - цены в списке инструмента уже не поменяются. По причине того, что пока не реализована обратная связь данных из дочерних списков с родительской записью. На будущее это запланировано.

В приложении - пример проекта и скриншот.
« Последнее редактирование: Март 19, 2017, 09:43:47 pm от vladimir.runa »

masslay

  • Ученик
  • *
  • Сообщений: 4
  • Благодарностей 0
Re: Вывод значения по условию
« Ответ #2 : Март 19, 2017, 10:05:12 pm »
Большое спасибо за ответ!
Попробую применить на практике.

Кирилл

  • Ученик
  • *
  • Сообщений: 3
  • Благодарностей 0
Re: Вывод значения по условию
« Ответ #3 : Июль 29, 2017, 11:41:31 am »
Когда же планируется реализация функции "Условие"?? Очень ждем

 

Яндекс.Метрика