Формулы позволяют производить вычисления над данными, получаемыми в запросах данных из БД, а также напрямую над числами, которые пользователь вводит в сообщениях боту, с помощью специального поля [ТекстСообщения].
Формулу можно использовать как в поле «Текст сообщения» в настройках экрана, так и в любых запросах данных, позволяя сохранить результат вычисления в базу данных.
Пример: [Формула(1+6)] вернет результат «7»
Доступные математические операторы
Вы можете использовать «+», «-», «*», «/», возведение в степень «^», а также круглые скобки.
Пример: [Формула((2^[ТекстСообщения])-1)] вернет результат «31», если написать боту «5»
Математические функции
Доступные функции:
abs, acos, acosh, arcctg, arcsec, arccsc, asin, atan, atanh, cos, cosec, cosh, ctg, deg2rad, exp, log, log10, pi, pow, rad2deg, sec, sin, sqrt, tan, tanh
Пример: [Формула(sin(deg2rad(30)))] вернет «0.5»
Округление чисел
abs, ceil, floor, round
Пример: [Формула(ceil(1.23))] вернет «2»
Агрегирование данных
avg, max, min, sum, count, sumproduct(«param1», «param2»)
Для передачи нескольких значений для этих функций нужно указывать их через запятую. Все значения должны быть обернуты в одни двойные кавычки, как в примере ниже:
Пример: [Формула(max(«1,5,8»))] вернет «8»
Также можно использовать запрос данных, возвращающий столбец данных с числами:
Пример: [Формула(avg(«[ЦеныТоваров]»))] вернет среднюю цену товаров
Функция sumproduct производит построчное перемножение параметров с последующим суммированием результата. Таким образом можно, например, определить стоимость корзины пользователя, перемножая выбранное количество каждого выбранного товара на его цену:
Пример: [Формула(sumproduct («[КорзинаТоваров(1)]», («[КорзинаТоваров(2)]»))]
Оператор IF
Позволяет проверять условия и возвращать один результат в случае выполнения условия и другой результат в ином случае. Поддерживаются вложенные условия.
Поддерживаемые логические операторы: «==», «!=», «<», «<», «>=», «<=», «&&», «||».
If(условие,если да, если нет)
Пример: [Формула(if([ТекстСообщения] > 0,1,if([ТекстСообщения] == 0,0,-1)))] будет возвращать «1», если введенное число больше нуля, «0» если равно нулю и «-1», если число меньше нуля (функция сигнум)
Преобразование систем счисления
bindec, decbin, dechex, decoct, hexdec, octdec
Пример: [Формула(decbin(5))] вернет «101»