Рассмотрим реальный пример применения сложной формулы для расчета стоимости дополнительных услуг в программе расчета заказов печати .


Формула расчета стоимости подрамника и натяжки холста.


Шаги необходимые для добавления формулы показаны в примере простого расчета, в данном примере рассматривается только формула.

Изначально расчет велся в Excel :



После того для как расчета услуги натяжки на подрамник была использована программа SPSM натяжка была оформлена как дополнительная услуга. Формула расчета стоимости услуги в программе выглядит так (расчет был слегка изменен по сравнению с исходным):


(360*%SQUARE_PER_ITEM%)+40+
IF(%ONE_PERM%<=3,
    90*(%ONE_PERM%+%SMALL_SIDEM%)+20+80,
            IF(%ONE_PERM%<=4,
                111*(%ONE_PERM%+%SMALL_SIDEM%)+90+100,
                IF(%ONE_PERM%<=6,
                     126*(%BIG_SIDEM%*3+%SMALL_SIDEM%*3)+90+120,
                     126*(%BIG_SIDEM%*3+%SMALL_SIDEM%*4)+90+130
                    )
            )
)


Формула с расшифровкой переменных:


(360*"Площадь одной копии")+40+
IF("Периметр 1 экз. индив. заказа в метрах"<=3,
    90*("Периметр 1 экз. индив. заказа в метрах"+"Размер меньшей стороны в метрах")+20+80,
            IF("Периметр 1 экз. индив. заказа в метрах"<=4,
                111*("Периметр 1 экз. индив. заказа в метрах"+"Размер меньшей стороны в метрах")+90+100,
                IF("Периметр 1 экз. индив. заказа в метрах"<=6,
                     126*("Размер большей стороны в метрах"*3+"Размер меньшей стороны в метрах"*3)+90+120,
                     126*("Размер большей стороны в метрах"*3+"Размер меньшей стороны в метрах"*4)+90+130
                    )
            )
)


IF(<условие>,<значение1>,<значение2>) – функция-условие ЕСЛИ. Возвращает <значние1> если <условие> верно или <значение2> в противном случае.

К примеру вот эта часть формулы:


IF(%ONE_PERM%<=6,
                     126*(%BIG_SIDEM%*3+%SMALL_SIDEM%*3)+90+120,
                     126*(%BIG_SIDEM%*3+%SMALL_SIDEM%*4)+90+130
                    )


Или


IF("Периметр 1 экз. индив. заказа в метрах"<=6,
                     126*("Размер большей стороны в метрах"*3+"Размер меньшей стороны в метрах"*3)+90+120,
                     126*("Размер большей стороны в метрах"*3+"Размер меньшей стороны в метрах"*4)+90+130
                    )


Означает следующее:


Если «Периметр 1 экз. индив. заказа в метрах» меньше или равен 6, то расcчитывать как 126*(«Размер большей стороны в метрах»*3+»Размер меньшей стороны в метрах»*3)+90+120, иначе расcчитывать как  126*(«Размер большей стороны в метрах»*3+»Размер меньшей стороны в метрах»*4)+90+130


Стоит обратить внимание что в данном случае клиент не посчитал нужным оформить суммы 90, 100 и пр. как переменные (условия расчета), а ввел их как постоянные значения. Это ограничило возможности клиента — в момент расчета заказа нет возможности изменить эти цифры.

Использование изменяемых условий расчета (переменных) дает такую возможность.