Все операторы и функции формул Quire Permalink
Это руководство содержит полный справочник по всем операторам и функциям, поддерживаемым в формулах Quire, с понятными объяснениями и практическими примерами для построения мощных вычислений, условий и логики задач.
Числовые операторы
Числовые операторы позволяют вычислять значения, хранящиеся в числовых полях.
| Операторы | Что делает | Пример |
|---|---|---|
| + | Складывает значения | timeSpent + 100 |
| - | Вычитает значения | Cost - 100 |
| * | Умножает значения | Cost * 100 |
| / | Делит значения | Cost / 100 |
| % | Вычисляет остаток | Cost % 3 |
| ^ | Возводит в степень | Cost ^ 3 |
Примечание: Перед использованием в формулах необходимо создать числовое пользовательское поле (например, Cost).
Текстовые операторы
Текстовые операторы позволяют объединять или конкатенировать текстовые строки в один результат.
| Операторы | Что делает | Пример |
|---|---|---|
| + | Конкатенирует текст | 'This is' + 'a task' |
Операторы сравнения
Операторы сравнения возвращают true или false в зависимости от соотношения двух значений.
| Операторы | Значение | Пример |
|---|---|---|
| < | Меньше чем | 3 < 1 -> False |
| > | Больше чем | 4 > 3 -> True |
| <= | Меньше или равно | 4 <= 2 -> False |
| >= | Больше или равно | 5 >= 1 -> True |
| = | Равно | 2 = 2 -> True |
| != | Не равно | 3 != 2 -> True |
Логические операторы
not
Инвертирует результат true/false.
Пример:
Not (Cost > 50)
Если Cost больше 50, результат — false. В противном случае возвращается true.
Примечание: Перед использованием в формулах необходимо создать числовое пользовательское поле (например, Cost).
in
Используйте in, чтобы проверить, полностью ли значения из первого списка содержатся во втором.
Пример:
assignees in subtasks.assignees
Возвращает true, если все исполнители задачи также назначены на её подзадачи.
&
Находит и возвращает общие значения из двух списков.
Пример:
assignees & subtasks.assignees
Возвращает исполнителей, общих для задачи и её подзадач.
and
Проверяет все условия и возвращает true только если каждое из них выполнено.
Пример:
(Cost > 50) and (due > <today>)
Примечание: Перед использованием в формулах необходимо создать числовое пользовательское поле (например, Cost).
or
Проверяет каждое условие и возвращает true, если хотя бы одно из них имеет значение.
Пример:
Cost or Budget
Примечание: Перед использованием в формулах необходимо создать числовое пользовательское поле (например, Cost).
Операторы списков
[field, field]
Используйте квадратные скобки для объединения нескольких значений в список.
Пример:
[me, #23.assignees, subtasks.assignees]
Возвращает список, включающий меня, исполнителей, назначенных на задачу с ID#23, и всех исполнителей подзадач.
Подробнее об array-формулах Quire, которые позволяют составлять списки и выполнять вычисления над коллекциями данных.
field[index]
Доступ к элементам списка по индексу (начиная с 0).
Пример:
subtasks[3]
Возвращает 4-ю подзадачу.
order by
Сортирует задачи по указанному полю.
Пример:
subtasks order by any.Cost
Возвращает список подзадач, упорядоченных по значениям поля Cost.
Примечание: Перед использованием в формулах необходимо создать числовое пользовательское поле (например, Cost).
Совет: Направление сортировки можно задать, добавив asc или desc в конец выражения. Например: subtasks order by any.Cost asc.
map
Применяет вычисление к каждому элементу списка.
Пример:
subtasks map any.Cost * 2
Возвращает список значений поля Cost подзадач, умноженных на 2.
Примечание: Перед использованием в формулах необходимо создать числовое пользовательское поле (например, Cost).
Совет: С оператором map можно использовать идентификатор any, чтобы указать поле для вычислений.
Условные операторы
??
Проверяет, соответствует ли задача выражению перед ??, и возвращает значение true/false. Если задача не соответствует выражению, возвращается значение выражения после ??.
Пример:
(Cost > 10) ?? 'Reconsider'
Если значение в поле Cost больше 10, возвращается true. Если меньше 10 — возвращается false. Если в поле Cost не введено значение, отображается «Reconsider».
Примечание: Перед использованием в формулах необходимо создать числовое пользовательское поле (например, Cost).
?:
Проверяет, соответствует ли задача выражению перед ?, и возвращает выражение после ?. Если задача не соответствует выражению перед ?, возвращается выражение после :.
Пример:
(Cost > 10) ? 'Too expensive': 'Reconsider'
Если значение в поле Cost больше 10, отображается «Too expensive». Если оно меньше 10 или значение не введено вовсе, отображается «Reconsider».
Примечание: Перед использованием в формулах необходимо создать числовое пользовательское поле (например, Cost).
Фильтрация и ограничение результатов
where
Фильтрует задачи, соответствующие заданным критериям.
Пример:
subtasks where any.Cost > 10
В список войдут подзадачи со значением стоимости больше 10.
Примечание: Перед использованием в формулах необходимо создать числовое пользовательское поле (например, Cost).
Совет: С оператором where можно использовать идентификатор any, чтобы указать поле для фильтрации.
limit
Ограничивает количество возвращаемых задач после сортировки.
Пример:
subtasks order by desc any.timeSpent - any.estimated limit 3
Выводит топ-3 подзадачи, у которых фактически затраченное время превышает расчётное время.
Приоритет операторов
В некоторых случаях порядок вычислений влияет на результат формулы, поэтому важно понимать порядок операций в Quire. При комбинировании нескольких операторов в одной формуле Quire выполняет операции в порядке, указанном в таблице ниже. Если формула содержит операторы с одинаковым приоритетом, Quire вычисляет их слева направо.
| Оператор | Описание |
|---|---|
( ).[ ]( ) |
Скобки Точечный оператор Список (массив) Вызов функции |
+ - not |
Унарные операторы |
^ |
Возведение в степень |
* / % |
Умножение и деление |
+ - |
Сложение и вычитание |
< > <= >= in & |
Операторы сравнения |
= != |
Операторы равенства |
not |
Логический оператор not |
and |
Логический оператор and |
or |
Логический оператор or |
?? |
Условный оператор |
where |
Оператор фильтрации |
?: |
Условный оператор |
Все встроенные функции
| Функция | Описание | Пример | Ожидаемый результат |
|---|---|---|---|
| SUM() | Возвращает сумму значений. | SUM(subtasks.estimated) |
Складывает все значения из полей Оценка подзадач данной задачи. |
| MAX() | Возвращает наибольшее значение в наборе. | MAX(subtasks.estimated) |
Показывает наибольшее значение из полей Оценка подзадач данной задачи. |
| MIN() | Возвращает наименьшее значение в наборе. | MIN(subtasks.estimated) |
Показывает наименьшее значение из полей Оценка подзадач данной задачи. |
| AVG() | Возвращает среднее значение чисел. | AVG(subtasks.estimated) |
Вычисляет среднее значение полей Оценка подзадач данной задачи. |
| COUNT() | Возвращает количество элементов. | COUNT(subtasks) |
Показывает общее количество подзадач. |
| SORT() | Возвращает аргументы в отсортированном порядке. | SORT(subtasks.estimated) |
Показывает все значения из полей Оценка подзадач данной задачи в отсортированном порядке. |
| DISTINCT() | Удаляет дублирующиеся значения и возвращает только уникальные. | DISTINCT(subtasks.estimated) |
Показывает все уникальные значения из полей Оценка подзадач данной задачи, удаляя дубликаты. |
| ISEMPTY() | Проверяет, пусты ли входные аргументы, и возвращает true/false. | ISEMPTY(estimated) |
Если поле Оценка задачи пустое, отображается отмеченный флажок. |
| ISNOTEMPTY() | Проверяет, пусты ли входные аргументы, и возвращает true/false. | ISNOTEMPTY(estimated) |
Если поле Оценка задачи не пустое, отображается отмеченный флажок. |
Часто задаваемые вопросы
Какие арифметические операторы можно использовать в формулах Quire?
Quire поддерживает +, -, *, /, % (остаток) и ^ (степень). Перед использованием в формуле необходимо создать числовое пользовательское поле.
Какие встроенные функции доступны в формулах Quire?
Quire включает SUM(), MAX(), MIN(), AVG(), COUNT(), SORT(), DISTINCT(), ISEMPTY() и ISNOTEMPTY(). Полный справочник — в разделе Все встроенные функции.
Как работает приоритет операторов в формулах Quire?
Quire вычисляет операторы в следующем порядке: сначала скобки и точечные/списочные операторы, затем возведение в степень, умножение/деление, сложение/вычитание, сравнение, логические и, наконец, условные операторы. Используйте скобки для изменения порядка по умолчанию.
Как написать формулу IF/условную формулу в Quire?
Используйте ?: для условия с двумя результатами — (Cost > 10) ? 'Too expensive' : 'Reconsider'. Используйте ?? как запасное значение только когда поле пустое.
Как фильтровать подзадачи по значению поля в формуле Quire?
Используйте оператор where — subtasks where any.Cost > 10 возвращает подзадачи, у которых Cost превышает 10. Комбинируйте с limit для ограничения количества результатов.
Как сортировать или изменить порядок списка в формуле Quire?
Используйте order by — subtasks order by any.Cost сортирует по полю Cost. Добавьте asc или desc для управления направлением.
Как применить вычисление к каждому элементу списка в Quire?
Используйте оператор map — subtasks map any.Cost * 2 умножает значение поля Cost каждой подзадачи на 2.