Ранее мы описали в статье новый инструмент на сервисе QuintaDB - Функции. Теперь рассмотрим несколько примеров, как можно упростить работу с данными и проводить расчеты применяя данный функционал.
Перед вами таблица с отбором кандидатов на работу:
Задача разделить кандидатов на три группы: подходящий кандидат, резервный кандидат и неподходящий кандидат.
Для этого можно воспользоваться Формой поиска, но критериев довольно много, а может быть еще больше.
На помощь приходит поле с функцией. Создадим новую формулу "Отбор".
Разделим кандидатов на три условные группы.
Если кандидат имеет:
- Возраст до 45 лет;
- Высшее образование;
- Стаж работы больше 5 лет;
- Рекомендацию от предыдущего работодателя, то такой кандидат получает статус "Подходит".
Для "Резерва" кандидату достаточно иметь возраст до 50 лет, высшее или не полное высшее образование и стаж больше 5 лет.
Все другие кандидаты получают статус "Не подходит".
Такая функция в виде кода, выглядит следующим образом:
if возраст<45 && "образование" == "Высшее" && стаж>5 && "рекомендация" == "Есть"
"Подходит"
elsif возраст<50 && "образование" == "Высшее" || "Высшее не полное" && стаж>5
"Резерв"
else
"Не подходит"
end
Обратите внимание: числовые значения (включая html-названия полей) не берутся в кавычки. Кавычки применяются только для строковых значений.
Как видно на следующем скриншоте, каждому кандидату присвоился статус исходя из критериев.
Согласитесь, гораздо легче выполнить поиск по одному полю, вместо нескольких критериев.
Тоже самое касается Форматирования в таблице:
Используем поле "Отбор" для форматирования записей в таблице:
После поиска или группировки по одному полю гораздо удобнее сформировать Отчет:
В котором окажутся все кандидаты по нужным критериям:
Не стоит забывать и про Действия по условию и поле Действие.
Например, создать кнопку с действием "Отправить емейл", которая по условию доступна только в записи напротив "Подходящего" кандидата.
Посмотреть пример, как создать кнопку Действие, вы можете по этой ссылке.
Поле с функцией можно использовать в качестве критерия в Правилах для полей.
Для этого нужно включить поле "Отбор" на форме:
Далее создадим новое поле "Поставить в очередь" (Радио кнопка) с выбором из двух значений:
Создаем правило.
Если значение поля "Отбор" состоит из "Резерв", то показать поле "Добавить в очередь":
Так это выглядит на форме:
Применение функций позволит не только эффективнее управлять данными, но и проводить более сложные расчеты.
Для примера рассмотрим таблицу с расчетом заработной платы.
Оклад данного сотрудника составляет 55 000 рублей. Вместо 24 рабочих дней он отработал 20 в этом месяце. Также ему была начислена премия в размере 6 800 рублей.
В первую очередь нужно рассчитать налог на доход данного работника по ставке 13 %.
Налог на доход считается так: (55000/24)*20*0.13, получается 5958,3 руб.
Далее ЗП: ((55000/24)*20) + 6 800 - 5958,3 округлим результат и получим - 46 675 руб.
Если проводить такой расчет стандартными формулами, то нам бы пришлось делить расчет на несколько промежуточных формул.
С помощью Ruby функций можно провести такой расчет в одном поле:
((оклад/24.0*дни)+премия-(оклад/24.0*дни*0.13)).round
(Метод .round используется для округления результата).
Получаем результат:
Пожалуйста, обратите внимание: для корректного расчета необходимо использовать тип поля "Число с точкой".