Найти в Дзене
QuintaDB

Примеры использования функций на сервисе QuintaDB

Ранее мы описали в статье новый инструмент на сервисе QuintaDB - Функции. Теперь рассмотрим несколько примеров, как можно упростить работу с данными и проводить расчеты применяя данный функционал.

Перед вами таблица с отбором кандидатов на работу:

-2

Задача разделить кандидатов на три группы: подходящий кандидат, резервный кандидат и неподходящий кандидат.

Для этого можно воспользоваться Формой поиска, но критериев довольно много, а может быть еще больше.

-3

На помощь приходит поле с функцией. Создадим новую формулу "Отбор".

Разделим кандидатов на три условные группы.

Если кандидат имеет:

- Возраст до 45 лет;

- Высшее образование;

- Стаж работы больше 5 лет;

- Рекомендацию от предыдущего работодателя, то такой кандидат получает статус "Подходит".

Для "Резерва" кандидату достаточно иметь возраст до 50 лет, высшее или не полное высшее образование и стаж больше 5 лет.

Все другие кандидаты получают статус "Не подходит".

Такая функция в виде кода, выглядит следующим образом:

if возраст<45 && "образование" == "Высшее" && стаж>5 && "рекомендация" == "Есть"
   "Подходит"
elsif возраст<50 && "образование" == "Высшее" || "Высшее не полное" && стаж>5
   "Резерв"
else
   "Не подходит"
end

Обратите внимание: числовые значения (включая html-названия полей) не берутся в кавычки. Кавычки применяются только для строковых значений.

-4

Как видно на следующем скриншоте, каждому кандидату присвоился статус исходя из критериев.

-5

Согласитесь, гораздо легче выполнить поиск по одному полю, вместо нескольких критериев.

-6

Тоже самое касается Форматирования в таблице:

-7

Используем поле "Отбор" для форматирования записей в таблице:

-8

После поиска или группировки по одному полю гораздо удобнее сформировать Отчет:

-9

В котором окажутся все кандидаты по нужным критериям:

-10

Не стоит забывать и про Действия по условию и поле Действие.

Например, создать кнопку с действием "Отправить емейл", которая  по условию доступна только в записи напротив "Подходящего" кандидата.

Посмотреть пример, как создать кнопку Действие, вы можете по этой ссылке.

-11

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

Для этого нужно включить поле "Отбор" на форме:

-12

Далее создадим новое поле "Поставить в очередь" (Радио кнопка) с выбором из двух значений:

-13

Создаем правило.

Если значение поля "Отбор" состоит из "Резерв", то показать поле "Добавить в очередь":

-14

Так это выглядит на форме:

-15

Применение функций позволит не только эффективнее управлять данными, но и проводить более сложные расчеты.

Для примера рассмотрим таблицу с расчетом заработной платы.

-16

Оклад данного сотрудника составляет 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 используется для округления результата).

-17

Получаем результат:

-18

Пожалуйста, обратите внимание: для корректного расчета необходимо использовать тип поля "Число с точкой".