Доступен в секциях: Код; Код действия; Код селекта; Форматирование ячейки, строки, таблицы.
=: select(table: ''; cycle: ; hash: ; field: ''; where: '' = ; order: '' asc)
Возвращает одно значение из поля field:
таблицы table:
.
Обязательные параметры
table — name-параметр таблица, из которой берутся значения.
field — name-параметр поле в таблице table:
.
Необязательные параметры
cycle — определяет цикл, если таблица table:
является расчетной в цикле.
table:
находится в дереве.hash — строка, hash таблицы для обращения к временной таблице.
where — name-параметр условие выбора строки в строчной части. where: 'field' = value
— левая часть определяет поле сравнения в таблице table:
, а правая — значение сравнения.
where:
, то выборка осуществляется на пересечении их условий.order:
.order:
.Поля типов Селект (множественный), Селект-дерево (множественный) и Данные могут выбираться с оператором сравнения ==
. В этом случае ищется полное совпадение, а не пересечение значения поля с заданным в where:
значением.
Поиск по содержимому поле Данные в простых таблицах может по-разному себя вести в зависимости от того, сохранено число-значение как строка или как число.
Если в
were:
передать значение*ALL*
, то этотwhere:
будет выключен! Это можно сделать через отдельную строку, например:
=: select(table: 'table_name'; field: 'field_name'; where: 'search_field' = $if)
if: if(condition: #connected_field = ""; then: "*ALL*"; else: #connected_field)
Список из одного значения ["*ALL*"]
будет обработан так же как и "*ALL*"
.
order — name-параметр поле в таблице table:
, по которому будет осуществляться сортировка.
order:
, то сортировка будет осуществлена последовательно.sfield — name-параметр поле типа Селект или Селект-дерево, для которого нужно выбрать и вернуть отображаемое значение, а не основание. sfield
используется вместо параметра field
!
tfield — множественный, name-параметр поле, использующееся для расчета значений селектов в запрошенных в sfield:
полях.
offset — число пропуск указанного количества элементов в порядке определенном в order:
.
Пример:
orders (cycle_id: 1)
id | order_number |
---|---|
1 | 98 |
2 | 99 |
3 | 100 |
example: select(table: 'orders'; cycle: 1; field: 'id'; where: 'order_number' = 100)
// Результат: 3
Доступен в секциях: Код; Код действия; Код селекта; Форматирование ячейки, строки, таблицы.
=: selectList(table: ''; cycle: ; hash: ; field: ''; where: '' = ; order: '' asc)
Возвращает список значений из строк поля field:
таблицы table:
в соответствии с сортировкой заданной в order:
.
Обязательные параметры
table — name-параметр таблица, из которой берутся значения.
field — name-параметр поле в таблице table:
.
Необязательные параметры
cycle — определяет цикл, если таблица table:
является расчетной в цикле.
table:
находится в деревеhash — строка, hash таблицы для получения данных из временных таблиц.
where — name-параметр условие выбора строки в строчной части. Левая часть определяет поле сравнения в таблице table:
, а правая — значение сравнения.
where:
, то выборка осуществляется на пересечении их условий.Если в
were:
передать значение*ALL*
, то этотwhere:
будет выключен! Это можно сделать через отдельную строку, например:
=: selectList(table: 'table_name'; field: 'field_name'; where: 'search_field' = $if)
if: if(condition: #connected_field = ""; then: "*ALL*"; else: #connected_field)
Список из одного значения ["*ALL*"]
будет обработан так же как и "*ALL*"
.
order — name-параметр поле в таблице table:
, по которому будет осуществляться сортировка.
order:
, то сортировка будет осуществлена последовательно.sfield — name-параметр поле типа Селект или Селект-дерево, для которого нужно выбрать и вернуть отображаемое значение, а не основание. sfield
используется вместо параметра field
!
tfield — множественный, name-параметр поле, использующееся для расчета значений селектов в запрошенных в sfield:
полях.
limit — число, ограничивает список указанным количеством элементов.
0
или ""
, то он будет отключен!offset — число пропуск указанного количества элементов в соответствии с сортировкой order:
.
Пример:
orders
id | order_number |
---|---|
1 | 98 |
2 | 99 |
3 | 100 |
example: selectlist(table: 'orders'; field: 'id'; where: 'order_number' >= 99)
// Результат: [2,3]
Доступен в секциях: Код селекта.
=: selectRowListForSelect(table: ''; cycle: ; bfield: 'id'; field: ''; order: '' asc; where: '' = ; section: ''; preview: '')
Возвращает специальный список ассоциативных массивов для формирования отображения Селектов.
Обязательные параметры
table — name-параметр таблица из которой берутся значения.
field — name-параметр поле в таблице table:
из которого берется отображение.
Необязательные параметры
cycle — число, определяет цикл, если таблица table:
является расчетной в цикле.
table:
находится в дереве.hash — строка, hash таблицы для получения данных из временных таблиц.
where — name-параметр условие выбора строки в строчной части. Левая часть определяет поле сравнения в таблице table:
, а правая — значение сравнения.
where:
, то выборка осуществляется на пересечении их условий, применяемых слева направо.Если в
were:
передать значение*ALL*
, то этотwhere:
будет выключен! Это можно сделать через отдельную строку, например:
=: selectRowListForSelect(table: 'table_name'; field: 'field_name'; where: 'search_field' = $if)
if: if(condition: #connected_field = ""; then: "*ALL*"; else: #connected_field)
Список из одного значения ["*ALL*"]
будет обработан так же как и "*ALL*"
.
order — name-параметр поле в таблице table:
, по которому будет осуществляться сортировка.
order:
, то сортировка будет осуществлена последовательно.section — name-параметр, поле в таблице table:
, по которому будут сгруппированы значения.
section:
должно содержать одинарные значения.section:
является селектом, то автоматически будут использованы его отображения, а не основания.preview — множественный, name-параметр множественный параметр, поля данные которых выводятся в панель по клику правой кнопки мыши или при выборе значения.
bfield — name-параметр поля, выводящегося в параметр "value"
итогового rowList.
bfield:
в качестве ключа используется id
.previewscode — код для формирования дополнительных превью, получает параметр $#val
, содержащий bfield
селекта. Должен возвращать rowlist формата [{title: "", value: "", name: ""}].
значения нестрочных полей
и id
строки, плюс $#ntn
и $#nti
.Пример 1:
clients
id | client |
---|---|
1 | Alexey |
2 | Pavel |
3 | Boris |
example1: selectRowListForSelect(table: 'clients'; field: 'client'; order: 'client' asc)
//Результат:
//[
//{"value": 1, "is_del": false, "title":"Alexey"},
//{"value": 3, "is_del": false, "title":"Boris"}
//{"value": 2, "is_del": false, "title":"Pavel"}
//]
Пример 2:
tax_payments_types
id | key | value |
---|---|---|
1 | 0 | Общая система налогообложения |
2 | 1 | Упрощенная система налогообложения (Доход) |
3 | 2 | Упрощенная система налогообложения (Доход минус Расход) |
4 | 3 | Единый налог на вмененный доход |
5 | 4 | Единый сельскохозяйственный налог |
6 | 5 | Патентная система налогообложения |
example2: selectRowListForSelect(table: 'tax_payments_types'; field: 'value'; bfield: 'key'; where: 'key' < 3; order: 'key' asc)
// Результат:
// [
// {"value": 0, "is_del": false, "title":"Общая система налогообложения"},
// {"value": 1, "is_del": false, "title":"Упрощенная система налогообложения (Доход)"}
// {"value": 2, "is_del": false, "title":"Упрощенная система налогообложения (Доход минус Расход)"}
// ]
Доступен в секциях: Код селекта.
=: selectRowListForTree(table: ''; cycle: ; field: ''; order: '' asc; where: '' = ; parent: ''; disabled: ; roots: )
Возвращает список ассоциативных массивов формата:
{
"value": 35,
"is_del": false,
"title": "Производство",
"parent": 1
}
Используется для подготовки данных поля Селект-дерево.
Обязательные параметры
table — name-параметр таблица, из которой берутся значения.
field — name-параметр поле в таблице table:
.
parent — name-параметр, поле содержащее значение bfield
родительского элемента или null, если это элемент верхнего уровня.
Необязательные параметры
cycle — число, одно или список, определяет цикл, если таблица table:
является расчетной в цикле.
hash — строка, для временных таблиц hash
таблицы.
where — name-параметр, множественный, ограничение на выборку вида 'field_name' = value
аналогично selectList.
order — name-параметр, множественный, поле, по которому будет осуществляться сортировка, и порядок в виде 'field_name' asc
для сортировки по возрастанию и 'field_name' desc
для сортировки по убыванию.
disabled — числовой список, запрещенные к выбору, но отображаемые в дереве элементы.
bfield — name-параметр поле в таблице table:
которое будет взято в качество основания. По умолчанию id
.
roots - — числовой список, элементы, которые необходимо поставить первым уровнем дерева. В случае, использования, дерево строится от них, указывая в качестве их родителя null
.
example: selectRowListForTree(table: 'tree'; field: 'title'; parent: 'parent_id')
// Результат: [{"value":35,"is_del":false,"title":"Производство","parent":null},{"value":45,"is_del":true,"title":"Закупка материалов и склад","parent":"35"} ]
Доступен в секциях: Код; Код действия; Код селекта; Форматирование ячейки, строки, таблицы.
=: selectTreeChildren(table: ''; cycle: ; hash: ; id: ; parent: '')
Возвращает список из id, дочерних по отношению к указанному в параметре id:
, а также дочерних к дочерним. Уровень вложенности не ограничен.
Обязательные параметры
table — name-параметр таблица, из которой берутся значения.
id — число, строка в которой содержится элемент, у которого ищутся дочерние строки.
parent — name-параметр, поле содержащее id родительских элементов.
Необязательные параметры
cycle — число, id цикла, если таблица table:
является расчетной в цикле.
hash — строка, hash таблицы для получения данных из временных таблиц.
bfield — name-параметр поле в таблице table:
. По умолчанию 'id'
Пример:
tree
id | title | parent_id |
---|---|---|
1 | Системные таблицы | null |
2 | Основные | 1 |
3 | Доступы | 1 |
32 | Документация | null |
33 | Настройки | 32 |
example: selectTreeChildren(table: 'tree'; id: 1; parent: 'parent_id')
// Результат: [2, 3]
Доступен в секциях: Код; Код действия; Код селекта; Форматирование ячейки, строки, таблицы.
=: selectRow(table: ''; cycle: ; hash: ; fields: ; field: ''; field: ''; where: '' = ; order: '' asc)
Возвращает ассоциативный массив с основаниями в виде name полей указанных в field:
и отображениями в виде их значений. Если поля находятся в строчной части, то из первой строки строчной части в соответствии с условиями выборки where:
и сортировкой order:
. Если поля из нестрочных частей, where:
и order:
не применяются.
Обязательные параметры
Необязательные параметры
field — множественный, name-параметр поле в таблице table:
.
Поддерживается вариант задания ключа для выбираемого поля: fied: 'some_field' as "new_name"
cycle — определяет цикл, если таблица table:
является расчетной в цикле.
table:
находится в дереве.hash — строка, hash таблицы для получения данных из временных таблиц.
where — name-параметр условие выбора строки в строчной части. Левая часть определяет поле сравнения в таблице table:
, а правая — значение сравнения.
where:
, то выборка осуществляется на пересечении их условий, применяемых слева направо.order:
.Если в
were:
передать значение*ALL*
, то этотwhere:
будет выключен! Это можно сделать через отдельную строку, например:
=: selectRow(table: 'table_name'; field: 'field_name'; where: 'search_field' = $if)
if: if(condition: #connected_field = ""; then: "*ALL*"; else: #connected_field)
Список из одного значения ["*ALL*"]
будет обработан так же как и "*ALL*"
.
order — name-параметр поле в таблице table:
, по которому будет осуществляться сортировка.
order:
, то сортировка будет осуществлена последовательно.sfield — множественный, name-параметр поле типа Селект или Селект-дерево, для которого нужно выбрать и вернуть отображаемое значение, а не основание. sfield
используется вместо параметра field
!
Поддерживается вариант задания ключа для выбираемого поля: sfied: 'some_field' as "new_name"
. При таком использовании возможна выборка и значения и отображения поля одновременно: fied: 'some_field' as "f_value"; sfied: 'some_field' as "f_title"
.
tfield — множественный, name-параметр поле, использующееся для расчета значений селектов в запрошенных в sfield:
полях.
fields — список полей field:
.
Можно передать строковое значение из списка в виде fields: "*ALL*"
:
*ALL*
— все поля строчной части.*HEADER*
— все поля хедера.*FOOTER*
— все поля футера.sfields — список полей sfield:
.
offset — число пропуск указанного количества элементов в соответствии с сортировкой order:
.
Пример:
clients
id | client | sum |
---|---|---|
1 | Alexey | 10 |
2 | Pavel | 20 |
3 | Boris | 30 |
example: selectrow(table: 'clients'; field: 'client'; field: 'sum'; order: 'id' desc)
// Результат: {"client": "Boris", "sum": 30}
Доступен в секциях: Код; Код действия; Код селекта; Форматирование ячейки, строки, таблицы.
=: selectRowList(table: ''; cycle: ; hash: ; fields: ; field: ''; field: ''; where: '' = ; order: '' asc)
Возвращает список ассоциативных массивов.
Обязательные параметры
Необязательные параметры
field — множественный, name-параметр поле в таблице table:
.
Поддерживается вариант задания ключа для выбираемого поля: fied: 'some_field' as "new_name"
cycle — число, одно или список, определяет цикл, если таблица table:
является расчетной в цикле.
hash — строка, hash таблицы для получения данных из временных таблиц.
where — name-параметр, множественный, ограничение на выборку вида 'field_name' = "value"
.
order — name-параметр, множественный, поле, по которому будет осуществляться сортировка, и порядок в виде 'field_name' asc
для сортировки по возрастанию и 'field_name' desc
для сортировки по убыванию.
tfield — name-параметр множественный, поле, использующееся для расчета значений селектов в запрошенных в sfield:
полях.
sfield — name-параметр множественный, поле типа Селект или Селект-дерево, для которого нужно выбрать и вернуть отображаемое значение, а не основание. sfield
используется вместо параметра field
!
Поддерживается вариант задания ключа для выбираемого поля: sfied: 'some_field' as "new_name"
. При таком использовании возможна выборка и значения и отображения поля одновременно: fied: 'some_field' as "f_value"; sfied: 'some_field' as "f_title"
.
fields — список полей field:
.
Можно передать строковое значение из списка в виде fields: "*ALL*"
:
*ALL*
— все поля строчной части.*HEADER*
— все поля хедера.*FOOTER*
— все поля футера.sfields — список полей sfield:
.
limit — число, ограничивает список указанным количеством элементов.
0
или ""
то он будет отключен!offset — число пропуск указанного количества элементов.
Пример:
clients
id | client | sum |
---|---|---|
1 | Alexey | 10 |
2 | Pavel | 20 |
3 | Boris | 30 |
example: selectrowlist(table: 'clients'; field: 'client'; field: 'sum'; where: 'id' > 1; order: 'id' desc)
// Результат:
// [
// {"client": "Boris", "sum": 30},
// {"client": "Pavel", "sum": 20},
// ]
Доступен в секциях: Код; Код действия; Код селекта; Форматирование ячейки, строки, таблицы.
=: selectUnreadComments(users: json`[4,5,8]`; table: ''; field: ''; id: )
Возвращает информацию о непрочитанных комментариях из поля комментарии.
Результатом работы будет rowlist
со строкой на каждого пользователя указанного в users
:
Пользователь обозначен в user
;
Количество непрочитанных комментов в num
.
сами комменты (непрочитанные) в comments
.
Обязательные параметры
field — name-параметр поле в таблице table:
.
table — name-параметр name таблицы из которой берутся данные.
users — список id
пользователей, по которым нужно получить данные о комментариях.
Необязательные параметры
cycle — число, определяет цикл, если таблица table:
является расчетной в цикле.
id — id
строки, если запрос идет к строчной части.
Доступен в секциях: Код; Код действия; Код селекта; Форматирование ячейки, строки, таблицы.
=: nowDate(format: "Y-m-d H:i")
Возвращает текущую дату в указанном формате.
Может быть заменен на быстрые переменные — $#nd
, $#ndt
и $#ndts
.
Необязательные параметры
format — определяет формат в котором выводится дата, например Y-m-d H:i
format:
отсутствует, то результатом будет строка формата Y-m-d H:i
.Y-m-d H:i
и Y-m-d
.Может быть указан как одна строка в которой в результате работы функции будут произведены замены:
Символы формата даты
d
— День месяца, 2 цифры с ведущим нулём от 01 до 31D
— Текстовое представление дня недели, 3 символа от Mon до Sun (не рекомендуется использовать тк для этого есть функция dateWeekDay
)j
— День месяца без ведущего нуля от 1 до 31N
— Порядковый номер дня недели от 1 (понедельник) до 7 (воскресенье)z
– Порядковый номер дня в году от 0 до 365W
— Порядковый номер недели года.m
— Порядковый номер месяца с ведущим нулём от 01 до 12M
— Сокращенное наименование месяца, 3 символа от Jan до Dec (не рекомендуется использовать тк для этого есть функция Х)n
— Порядковый номер месяца без ведущего нуля от 1 до 12t
— Количество дней в указанном месяце от 28 до 31L
— Признак високосного года 1, если год високосный, иначе 0.Y
— Порядковый номер года, 4 цифры. Примеры: 1999, 2003y
— Номер года, 2 цифры. Примеры: 99, 03H
— Часы в 24-часовом формате с ведущим нулём от 00 до 23i
— Минуты с ведущим нулём от 00 до 59s
— Секунды с ведущим нулём от 00 до 59example1: nowdate()
// Результат: "2018-01-15 20:48"
example2: nowdate(format: "Y-m-d")
// Результат: "2018-01-15"
example3: nowdate(format: "H:i")
// Результат: "20:48"
example4: nowdate(format: "d.m.Y")
// Результат: "15.01.2018"
example5: nowdate(format: "d.m.Y (H:00)")
// Результат: "15.01.2018 (20:00)"
example6: nowdate(format: "z")
// Результат: "15"
Доступен в секциях: Код; Код действия; Код селекта; Форматирование ячейки, строки, таблицы.
=: dateDiff(date: ; date: ; unit: "day|year|month|hour|minute")
Возвращает число, равное разнице между date
и date
выраженное в единице unit
. Если вторая дата раньше первой — функция вернет отрицательное значение. Разница между датами возвращается в виде дробного значения.
Обязательные параметры
date — обязательно должно быть указано два параметра.
unit — параметр, определяющий, в какой величине отображается разница.
example: dateDiff(date: $date1; date: $date2; unit: "day")
date1: "2017-07-01"
date2: "2017-07-02 10:42"
// Результат: "1.4458333333333"
Доступен в секциях: Код; Код действия; Код селекта; Форматирование ячейки, строки, таблицы.
=: dateAdd(date: ; days: ; hours: ; minutes: ; months: ; years: ; format: "Y-m-d H:i"; lang: )
Прибавляет к дате дни, часы и минуты и возвращает новую дату (позже заданной) в виде одной строки. Указание дней, часов и минут с отрицательным знаком приведет к вычитанию их из стартовой даты. Будет возвращена дата раньше стартовой.
Если при добавлении месяцев получается отсутствующая дата, то избыток дней переносится на следующий месяц.
Обязательные параметры
date — дата, к которой будет прибавляться значение.
Необязательные параметры
format — определяет формат в котором выводится дата, например "Y-m-d H:i"
ВНИМАНИЕ! ПОЛЕ ДАТА ХРАНИТ ЗНАЧЕНИЕ В ФОРМАТЕ
"Y-m-d H:i"
и"Y-m-d"
.ДЛЯ КОРРЕКТНОЙ РАБОТЫ СРАВНЕНИЙ ОБЕ ЧАСТИ НЕРАВЕНСТВА ДОЛЖНЫ БЫТЬ В АНАЛОГИЧНОМ ФОМАТЕ!
format:
отсутствует, то результатом будет строка формата "Y-m-d H:i"
.Может быть указан как одна строка в которой в результате работы функции будут произведены замены:
Символы формата даты
d
— День месяца, 2 цифры с ведущим нулём от 01 до 31.D
— Текстовое представление дня недели, 3 символа от Mon до Sun.j
— День месяца без ведущего нуля от 1 до 31.N
— Порядковый номер дня недели от 1 (понедельник) до 7 (воскресенье).z
– Порядковый номер дня в году от 0 до 365.W
— Порядковый номер недели года.m
— Порядковый номер месяца с ведущим нулём от 01 до 12.M
— Сокращенное наименование месяца, 3 символа от Jan до Dec.n
— Порядковый номер месяца без ведущего нуля от 1 до 12.t
— Количество дней в указанном месяце от 28 до 31.L
— Признак високосного года 1, если год високосный, иначе 0.Y
— Порядковый номер года, 4 цифры. Примеры: 1999, 2003.y
— Номер года, 2 цифры. Примеры: 99, 03.H
— Часы в 24-часовом формате с ведущим нулём от 00 до 23.i
— Минуты с ведущим нулём от 00 до 59.s
— Секунды с ведущим нулём от 00 до 59.F
— Полное наименование месяца.l (lowercase L)
— Полное наименование дня недели.lang — строка, если не указан, то вывод идет в языковом пакете PHP на сервере. Если указан, то на указанном языке. Поддерживаемые языки:
ru
— русский.example: dateAdd(date: "2017-10-01 10:00"; days: 1; hours: 2; minutes: 20)
// Результат: "2017-10-02 12:20"
Доступен в секциях: Код; Код действия; Код селекта; Форматирование ячейки, строки, таблицы.
=: dateFormat(date: ; format: "d.m.Y H:i"; lang: )
Возвращает преобразованную дату как одну строку. Если в date
передан list
или rowList
то на выходе будет аналогичный list
/rowList
с всеми подходящими заменами.
Обязательные параметры
date — преобразуемая дата.
Передаваемое значение должно соответствовать одному из форматов:
Y-m-d
Y-m-d H:i
Если передана без H:i
, а преобразуется в формат с H:i
— присваивается 00:00
.
format — определяет формат в котором выводится дата, например "Y-m-d H:i"
ВНИМАНИЕ! ПОЛЕ ДАТА ХРАНИТ ЗНАЧЕНИЕ В ФОРМАТЕ
Y-m-d H:i
иY-m-d
.ДЛЯ КОРРЕКТНОЙ РАБОТЫ СРАВНЕНИЙ ОБЕ ЧАСТИ НЕРАВЕНСТВА ДОЛЖНЫ БЫТЬ В АНАЛОГИЧНОМ ФОМАТЕ!
format:
отсутствует, то результатом будет строка формата "Y-m-d H:i".Может быть указан как строка в которой в результате работы функции будут произведены замены:
Символы формата даты
d
— День месяца, 2 цифры с ведущим нулём от 01 до 31.D
— Текстовое представление дня недели, 3 символа от Mon до Sun.j
— День месяца без ведущего нуля от 1 до 31.N
— Порядковый номер дня недели от 1 (понедельник) до 7 (воскресенье).z
– Порядковый номер дня в году от 0 до 365.W
— Порядковый номер недели года.m
— Порядковый номер месяца с ведущим нулём от 01 до 12.M
— Сокращенное наименование месяца, 3 символа от Jan до Dec.n
— Порядковый номер месяца без ведущего нуля от 1 до 12.t
— Количество дней в указанном месяце от 28 до 31.L
— Признак високосного года 1, если год високосный, иначе 0.Y
— Порядковый номер года, 4 цифры. Примеры: 1999, 2003.y
— Номер года, 2 цифры. Примеры: 99, 03.H
— Часы в 24-часовом формате с ведущим нулём от 00 до 23.i
— Минуты с ведущим нулём от 00 до 59.s
— Секунды с ведущим нулём от 00 до 59.F
— Полное наименование месяца.l (lowercase L)
— Полное наименование дня недели.U
— Дата в timestamp.Необязательные параметры
lang — строка, если не указан, то вывод идет в языковом пакете PHP на сервере. Если указан, то на указанном языке. Поддерживаемые языки:
ru
— русский.Следующие параметры применяются если в date
используется list
/rowList
:
keys — для rowList
, список ключей, в которых будет произведена замена. Если не указан, то замена производится во всех ключах.
recursive — по умолчанию true
или list
в котором указаны уровни замены 0
— верхний, 1
— следующий вложенный и так далее, для случаев, когда нужно заменить на определенном уровне волженности.
replace — может содержать или одинарный элемент или тройственный:
"single-part"
— на это значение будут заменены null
и ""
.
"three-part" = "value"
— в этом случае он сверяет значение и заменяет только при соответствии. Имеет приоритет перед форматированием даты.
example: dateFormat(date: "01.07.2017"; format: "d.m")
// Результат: "01.07"
example2: dateFormat(date: "01.07.2017"; format: "F"; lang: "ru")
// Результат: "июль"
example3: dateFormat(date: "26.03.2021"; format: "l"; lang: "ru")
// Результат: "Пятница"
= : dateFormat(date: $rowlist; format: "d.Y"; keys: json`["format"]`)
rowlist: rowListCreate(field: "format" = $list; field: "out" = $list)
~list: listCreate(item: "2023-01-01"; item: "2023-01-02"; item: "2023-01-03")
// Результат:
//[
// {
// "out": "2023-01-01",
// "format": "01.2023"
// },
// {
// "out": "2023-01-02",
// "format": "02.2023"
// },
// {
// "out": "2023-01-03",
// "format": "03.2023"
// }
//]
Доступен в секциях: Код; Код действия; Код селекта; Форматирование ячейки, строки, таблицы.
=: dateIntervals(date: $#nd; num: 10; type: "hour|day|week|month"; datetime: false)
Возвращает rowList
содержащий ключи start
и end
Обязательные параметры
num — число интервалов для генерации.
type — указывается тип интервала:
"hour"
— час"day"
— день"week"
— неделя"month"
— месяцdate — дата к которой будет прибавлятся значение.
Необязательные параметры
format — определяет формат в котором выводится дополнительные форматированные даты в ключи startf
и endf
.
Может быть указан как одна строка в которой в результате работы функции будут произведены замены:
Символы формата даты
d
— День месяца, 2 цифры с ведущим нулём от 01 до 31D
— Текстовое представление дня недели, 3 символа от Mon до Sun (не рекомендуется использовать тк для этого есть функция dateWeekDay
)j
— День месяца без ведущего нуля от 1 до 31N
— Порядковый номер дня недели от 1 (понедельник) до 7 (воскресенье)z
– Порядковый номер дня в году от 0 до 365W
— Порядковый номер недели года.m
— Порядковый номер месяца с ведущим нулём от 01 до 12M
— Сокращенное наименование месяца, 3 символа от Jan до Dec (не рекомендуется использовать тк для этого есть функция Х)n
— Порядковый номер месяца без ведущего нуля от 1 до 12t
— Количество дней в указанном месяце от 28 до 31L
— Признак високосного года 1, если год високосный, иначе 0.Y
— Порядковый номер года, 4 цифры. Примеры: 1999, 2003y
— Номер года, 2 цифры. Примеры: 99, 03H
— Часы в 24-часовом формате с ведущим нулём от 00 до 23i
— Минуты с ведущим нулём от 00 до 59s
— Секунды с ведущим нулём от 00 до 59datetime — true
если в ключи start
и end
необходимо вывести Y-m-d H:i
weekdaystart — указать день начала недели для week
интервалов в трехбуквенном eng
формате:
mon
tue
wed
thu
fri
sat
sun
Доступен в секциях: Код; Код действия; Код селекта; Форматирование ячейки, строки, таблицы.
=: round(num: ; type: ; step: ; decimals: )
Округляет число в нужную сторону с заданным шагом до указанного количества знаков после запятой.
Обязательные параметры
Необязательные параметры
type — одна строка, направление округления.
up
— округление вверхdown
— округление внизdecimals — одно целое число, количество знаков после запятой у результата работы функции.
example: round(num: $limit; type: "up"; step: 0.25; decimals: 2)
limit: 3.56
// Результат: 3.75
Доступен в секциях: Код; Код действия; Код селекта; Форматирование ячейки, строки, таблицы.
=: modul(num: )
Возвращает одно число, абсолютное значение (модуль) числа, переданного в num:
.
Обязательные параметры
example: modul(num: -3)
// Результат: 3
Доступен в секциях: Код; Код действия; Код селекта; Форматирование ячейки, строки, таблицы.
=: numRand(min: ; max: )
Возвращает одно число псевдослучайное значение в диапазоне от min:
(или 0) до max:
(или максимально возможного в вашей версии PHP случайного числа).
Необязательные параметры
min — одно число, минимальная граница диапазона для случайного числа.
max — одно число, максимальная граница диапазона для случайного числа.
example: numRand(min: 0; max: 20)
// Результат: 4
Доступен в секциях: Код; Код действия; Код селекта; Форматирование ячейки, строки, таблицы.
=: numTransform(data: )
Внутри totum все данные это строка, но внешние системы иногда хотят конкретно числа. Эта функция преобразует строки в числа.
Если в data
передан list
или rowList
то на выходе будет аналогичный list
/rowList
с всеми подходящими заменами.
Обязательные параметры
Следующие параметры применяются если в data
используется list
/rowList
:
keys — для rowList
, список ключей, в которых будет произведена замена. Если не указан, то замена производится во всех ключах.
recursive — по умолчанию true
или list
в котором указаны уровни замены 0
— верхний, 1
— следующий вложенный и так далее, для случаев, когда нужно заменить на определенном уровне волженности.
ПРИМЕРЫ
example: numTransform(data: $transform)
transform: "5.87"
//Результат:
= : numTransform(data: $rowlist; keys: json`["format"]`)
rowlist: rowListCreate(field: "format" = $list; field: "out" = $list)
~list: listCreate(item: "10500"; item: "10600"; item: "10700")
// Результат:
//[
// {
// "format": 10500,
// "out": "10500"
// },
// {
// "format": 10600,
// "out": "10600"
// },
// {
// "format": 10700,
// "out": "10700"
// }
//]
Доступен в секциях: Код; Код действия; Код селекта; Форматирование ячейки, строки, таблицы.
=: strAdd(str: ; str: )
Возвращает строку, из последовательно соединенных указанных строк. Конкатенация строк.
Обязательные параметры
example: strAdd(str: "Приятного использования "; str: "TOTUM")
// Результат: "Приятного использования TOTUM"
Для этой функции есть сахар str
:
str: str`"#" + $#nfv ++ "—" ++ #field`
// Результат: #34 — закрыт
+
— склеивает без пробела.++
— склеивает, добавляя пробел.Доступен в секциях: Код; Код действия; Код селекта; Форматирование ячейки, строки, таблицы.
=: strReplace(str: ; from: ; to: )
Ищет в str:
все прямые вхождения from:
и заменяет их на to:
. Возвращает одну строку.
Обязательные параметры
str — одна строка или число в которой будут производиться замены.
from — список или одна строка, соответствие, которое будет заменяться.
to — список или одна строка на которую будет произведена замена.
example1: strreplace(str: "Двигатели R3 и R5 в режиме зажигания"; from: "3"; to: "4")
// Результат: "Двигатели R4 и R5 в режиме зажигания"
example2: strreplace(str: "Двигатели R3 и R5 в режиме зажигания"; from: "R"; to: "M")
// Результат: "Двигатели M3 и M5 в режиме зажигания"
example3: strreplace(str: "Двигатели R3 и M5 в режиме зажигания"; from: $from; to: $to)
from: listcreate(item: "R3"; item: "M5")
to: listcreate(item: "S2"; item: "T7")
// Результат: "Двигатели S2 и T7 в режиме зажигания"
Доступен в секциях: Код; Код действия; Код селекта; Форматирование ячейки, строки, таблицы.
=: strRegMatches(str: ; template: ; matches: "matches"; flags: "u")
Возвращает true
или false
— совпадение с шаблоном.
Обязательные параметры
template — одна строка шаблон PCRE (perl-совместимых регулярных выражений). !БЕЗ ОГРАНИЧИТЕЛЕЙ (delimiters) /png/
—› png
Необязательные параметры
matches — одна строка наименование переменной, которой будут присвоены найденные совпадения
flags — PCRE-флаги. По умолчанию, передается u- utf-8
режим.
example: if(condition: $reg = true; then: $#matches; else: "Совпадение не найдено")
reg: strRegMatches(str: "Сашина машина шуршит шинами"; template: "\s+(шина[^\s]*)"; matches: "matches"; flags: "u")
// Результат: [" шинами","шинами"]
Доступен в секциях: Код; Код действия; Код селекта; Форматирование ячейки, строки, таблицы.
=: strRegAllMatches(str: ; template: ; matches: "matches"; flags: "u")
Возвращает true
если в str:
есть одно или больше совпадение с шаблоном, если нет то false
.
Обязательные параметры
template — одна строка шаблон PCRE (perl-совместимых регулярных выражений). !БЕЗ ОГРАНИЧИТЕЛЕЙ (delimiters) /png/
—› png
Необязательные параметры
matches — одна строка наименование переменной, которой будут присвоены найденные совпадения
flags — PCRE-флаги. По умолчанию, передается u- utf-8
режим.
Пример:
Разбить текст на строки и найти первое слово в каждой строке
str Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diem nonummy nibh euismod tincidunt ut lacreet dolore magna aliguam erat volutpat. Ut wisis enim ad minim veniam, quis nostrud exerci tution ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat.
example: if(condition: $reg = true; then: $#matches; else: "Совпадение не найдено")
reg: strRegAllMatches(str: #str; template: '\s*([^\n ]+)[^\n]+(?:\n|$)'; matches: "matches"; flags: "mu")
// Результат: [
// [
// "Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diem \n",
// "nonummy nibh euismod tincidunt ut lacreet dolore magna aliguam erat volutpat. \n",
// "Ut wisis enim ad minim veniam, quis nostrud exerci tution ullamcorper suscipit \n",
// "lobortis nisl ut aliquip ex ea commodo consequat."
// ],
// [
// "Lorem",
// "nonummy",
// "Ut",
// "lobortis"
// ]
// ]
Доступен в секциях: Код; Код действия; Код селекта; Форматирование ячейки, строки, таблицы.
=: numFormat(num: ; decimals: ; decsep: ","; thousandssep: " "; unittype: )
Превращает число в строку оформленную по шаблону. Если в num
передан list
или rowList
то на выходе будет аналогичный list
/rowList
с всеми подходящими заменами.
Если из внешней системы приходит число в экспонентной записи
2,3е+15
то оно переводится в формат тотума функцией numFormat.Максимальный размер числа обрабатываемого
numFormat
до точки — 17 разрядов. При превышении на 64-разрядной машине итоговый результат будет случайным числом.
Обязательные параметры
Необязательные параметры
decimals — число, количество знаков после запятой.
decsep — строка, разделитель десятичных знаков.
thousandssep — строка, разделитель тысяч.
unittype — строка, постфикс.
prefix — строка, префикс.
Следующие параметры применяются если в num
используется list
/rowList
:
keys — для rowList
, список ключей, в которых будет произведена замена. Если не указан, то замена производится во всех ключах.
recursive — по умолчанию true
или list
в котором указаны уровни замены 0
— верхний, 1
— следующий вложенный и так далее, для случаев, когда нужно заменить на определенном уровне волженности.
replace — может содержать или одинарный элемент или тройственный:
"single-part"
— на это значение будут заменены null
и ""
.
"three-part" = "value"
— в этом случае он сверяет значение и заменяет только при соответствии. Имеет приоритет перед форматированием даты.
example: numFormat(num: $num; decimals: 1; decsep: ","; thousandssep: " "; unittype: " r.")
num: 10000.34
// Результат: "10 000,34 r."
= : numFormat(num: $rowlist; thousandssep: ","; unittype: " €"; keys: json`["format"]`)
rowlist: rowListCreate(field: "format" = $list; field: "out" = $list)
~list: listCreate(item: "10500"; item: "10600"; item: "10700")
// Результат:
//[
// {
// "out": "10500",
// "format": "10,500 €"
// },
// {
// "out": "10600",
// "format": "10,600 €"
// },
// {
// "out": "10700",
// "format": "10,700 €"
// }
//]
Доступен в секциях: Код; Код действия; Код селекта; Форматирование ячейки, строки, таблицы.
=: strRandom(length: 5; numbers: "true|false|12345"; letters: "false|true|abcdABCD"; symbols: "false|true|!@#$%^&")
Возвращает строку длинной length
, составленную из перечисленных символов.
Обязательные параметры
Необязательные параметры
numbers — одна строка, описывающая использование чисел.
false
— не использовать числа.true
— использовать все числа.12345
— использовать только числа 12345.letters — одна строка, описывающая использование букв.
false
— не использовать буквы.true
— использовать все буквы английского алфавита.abcdABCD
— использовать только указанные буквы.symbols — одна строка, описывающая использование символов.
false
— не использовать символы.true
— использовать символы !@#$%^&*()_+=-%,.;:!@#$%^&
— использовать только указанные символы.example: strRandom(length: 5; numbers: "true"; letters: "true"; symbols: "true")
// Результат: "z4yF9"
Доступен в секциях: Код; Код действия; Код селекта; Форматирование ячейки, строки, таблицы.
=: strEncrypt(str: )
Возвращает зашифрованную строку.
Для работы необходимо в корне установки создать файл
Crypto.key
(автоматически генерируется при установке со случайным содержимым) в котором набрать ключ, которым будет шифроваться строка. Файл необходимо создавать от того-же пользователя linux от которого работает Totum.Внимание: что бы дешифровать записанные данные потребуется идентичный ключ. Скопируйте его если переносите данные на другой сервер!
Обязательные параметры
Доступен в секциях: Код; Код действия; Код селекта; Форматирование ячейки, строки, таблицы.
=: strDecrypt(str: )
Возвращает расшифрованную строку.
Для работы необходимо в корне установки создать файл
Crypto.key
в котором набрать ключ (создается автоматически при установке), которым будет шифроваться строка. Файл необходимо создавать от того-же пользователя linux от которого работает Totum.Расшифровка возможна только с Ключом, примененным при шифровании.
Обязательные параметры
strEncrypt
строка`Доступен в секциях: Код; Код действия; Код селекта; Форматирование ячейки, строки, таблицы.
=: strUrlEncode(str: )
Возвращает url-кодированную строку.
Обязательные параметры
Доступен в секциях: Код; Код действия; Код селекта; Форматирование ячейки, строки, таблицы.
=: strUrlDecode(str: )
Возвращает декодированную строку.
При получении данных в remotes применять не требуется — при получении url-кодированной строки в
get
в remotes она декодируется автоматически.
Обязательные параметры
Доступен в секциях: Код; Код действия; Код селекта; Форматирование ячейки, строки, таблицы.
=: strBaseEncode(str: )
Возвращает строку кодированную в base64.
Обязательные параметры
example: strBaseEncode(str: "строка для кодирования")
// Результат: 0YHRgtGA0L7QutCwINC00LvRjyDQutC+0LTQuNGA0L7QstCw0L3QuNGP
Доступен в секциях: Код; Код действия; Код селекта; Форматирование ячейки, строки, таблицы.
=: strBaseDecode(str: )
Возвращает раскодированную base64 строку или false
.
Внимание! В результате раскодирования может быть получена строка с не utf-8
символами, которая не сможет быть сохранена как значение поля и при такой попытке будет отдана ошибка базы данных!
Обязательные параметры
example: strBaseDecode(str: "0YHRgtGA0L7QutCwINC00LvRjyDQutC+0LTQuNGA0L7QstCw0L3QuNGP")
// Результат: строка для кодирования
Доступен в секциях: Код; Код действия; Код селекта; Форматирование ячейки, строки, таблицы.
=: strLength(str: )
Возвращает число — длину str
.
Обязательные параметры
example: strLength(str: "Totum")
// Результат: 5
Доступен в секциях: Код; Код действия; Код селекта; Форматирование ячейки, строки, таблицы.
=: strRepeat(str: ; num: )
Возвращает строку из str:
, повторенного num:
раз.
Обязательные параметры
example: strRepeat(str: "-"; num: 5)
// Результат: "-----"
Доступен в секциях: Код; Код действия; Код селекта; Форматирование ячейки, строки, таблицы.
=: strSplit(str: ; separator: )
Возвращает список из строк — str:
разбитое по separator:
.
Обязательные параметры
Необязательные параметры
Пример:
str Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diem nonummy nibh euismod tincidunt ut lacreet dolore magna aliguam erat volutpat. Ut wisis enim ad minim veniam, quis nostrud exerci tution ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat.
example: strSplit(str: #str; separator: $#nl)
// Результат:
// [
// "Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diem ",
// " nonummy nibh euismod tincidunt ut lacreet dolore magna aliguam erat volutpat. ",
// " Ut wisis enim ad minim veniam, quis nostrud exerci tution ullamcorper suscipit ",
// " lobortis nisl ut aliquip ex ea commodo consequat."
// ]
Доступен в секциях: Код; Код действия; Код селекта; Форматирование ячейки, строки, таблицы.
=: strTransform(str: ; to: "upper|lower|capitalize")
Возвращает измененную строку.
Обязательные параметры
str — строку для изменения.
to — строку, одно из трех значений.
upper
— сделать все буквы заглавными.lower
— сделать все буквы строчными.capitalize
— сделать каждую первую букву слова заглавной.example: strTransform(str: "elon musk"; to: "capitalize")
// Результат: Elon Musk
Доступен в секциях: Код; Код действия; Код селекта; Форматирование ячейки, строки, таблицы.
=: textByTemplate(template: ; text: ; data: $data)
Возвращает html
.
Обязательные параметры
Необязательные параметры
template — одна строка, name шаблона в таблице Шаблоны печати.
text — одна строка шаблон (используется если template
отсутствует).
Пример:
id | Name template | type | styles | html |
---|---|---|---|---|
28 | kp | page | .title{font-size: 20px;}.text-main{font-size: 14px}.text-footer{padding-top: 20px; font-size: 14px} | <div class="title"> {title}</div><div class="text-main"> {text}</div><div class="text-footer"> {footer}</div> |
example1: textByTemplate(template: "kp"; data: $data)
data: rowCreate(field: "title" = "Title"; field: "text" = "Text"; field: "footer" = "Footer")
// Результат: "<style>.title{font-size: 20px;}.text-main{font-size: 14px}.text-footer{padding-top: 20px; font-size: 14px}</style><body><div class="title"> Title</div><div class="text-main"> Text</div><div class="text-footer"> Footer</div></body>"
example2: textByTemplate(text: $template; data: $data)
data: rowCreate(field: "title" = "Title"; field: "text" = "Text"; field: "footer" = "Footer")
```template:html
<div>Some text with {title}, {text} and {footer}</div>
```
Доступен в секциях: Код; Код действия; Код селекта; Форматирование ячейки, строки, таблицы.
=: strMd5(str: )
Возвращает строку в виде md5-хеша.
Обязательные параметры
example: strMd5(str: "0")
// Результат: "15e79710ef30825afe1dc5c4d3fb5849"
Доступен в секциях: Код; Код действия; Код селекта; Форматирование ячейки, строки, таблицы.
=: strGz(str: )
Возвращает gz-упакованную строку str:
.
Обязательные параметры
example: set(table: 'testsimp'; field: 'file' = $fileList)
fileList: listCreate(item: $fileRow)
fileRow: rowCreate(field: "filestring" = $gz; field: "name" = "text.txt.gz")
gz: strGz(str: "Test row")
// В ячейке file таблицы testsimp — файл text.txt.gz
Доступен в секциях: Код; Код действия; Код селекта; Форматирование ячейки, строки, таблицы.
=: strUnGz(str: )
Возвращает распакованную gz-строку str:
или false
, если строку декодировать не удалось.
Обязательные параметры
example: strUnGz(str: $fileContent)
fileContent: fileGetContent(file: #gzfile[0]["file"])
// Результат: распакованный текст из файла
Доступен в секциях: Код; Код действия; Код селекта; Форматирование ячейки, строки, таблицы.
=: strPart(str: ; offset: ; length: )
Возвращает часть от переданной в него строки.
Обязательные параметры
Необязательные параметры
length — число, сколько символов взять в результат.
Если задать отрицательное число, то конец строки будет отсчитан с конца слова.
offset — число, смещение выборки (на сколько элементов сдвинуть начало).
Если задать отрицательное число, то старт будет взят от конца строки.
ПРИМЕРЫ
example_1: strPart(str: "7718767895"; length: 4; offset: 4)
//Результат: "7678"
example_2: strPart(str: "-string-"; length: -1; offset: 1)
//Результат: "string"
Доступен в секциях: Код; Код действия; Код селекта; Форматирование ячейки, строки, таблицы.
=: strTrim(str: )
Возвращает строку, отрезая пробельные символы в начале и конце строки.
Обязательные параметры
Доступен в секциях: Код; Код действия; Код селекта; Форматирование ячейки, строки, таблицы.
=: listCreate(item: )
Создает список из элементов.
Необязательный множественный параметр
item — элементы, из которых создается список. Количество параметров определяет количество элементов в списке.
example1: listCreate(item: 1; item: 2; item: 4; item: "")
// Результат: [1,2,4,""]
example2: listCreate(item: "Alex"; item: "Sam"; item: "Mike")
// Результат: ["Alex","Sam","Mike"]
example3: listCreate()
// Результат: []
Доступен в секциях: Код; Код действия; Код селекта; Форматирование ячейки, строки, таблицы.
=: listMax(list: ; default: )
Возвращает максимальное значение списка. Результатом работы является одно значение, за исключением случая, когда возвращается значение, указанное в параметре default
.
Обязательные параметры
list — список чисел, строк, дат, в которых ищется максимальное значение.
Необязательные параметры
default — значение возвращаемое функцией при передаче в list:
пустого списка.
list:
пустого списка функция вернет ОШБК!
example1: listmax(list: $list1)
list1: listCreate(item: 35; item: 78; item: 13)
// Результат: 78
example2: listmax(list: $list2)
list2: listCreate(item: "11"; item: "12"; item: "2")
// Результат: 12
example3: listmax(list: $list3)
list3: listCreate()
// Результат: "ERR!"
example4: listmax(list: $list4; default: 0)
list4: listCreate()
// Результат: 0
Доступен в секциях: Код; Код действия; Код селекта; Форматирование ячейки, строки, таблицы.
=: listMin(list: ; default: )
Возвращает минимальное значение списка. Результатом работы является одно значение, за исключением случая, когда возвращается значение, указанное в параметре default
.
Обязательные параметры
list — список чисел, строк, дат в котором ищется максимальное значение.
Необязательные параметры
default — значение, возвращаемое функцией при передаче в list:
пустого списка.
list:
пустого списка функция вернет ОШБК!
.
example1: listMin(list: $list1)
list1: listCreate(item: 35; item: 78; item: 13)
// Результат: 13
example2: listMin(list: $list2)
list2: listCreate(item: "11"; item: "12"; item: "2")
// Результат: 2
example3: listMin(list: $list3)
list3: listCreate()
// Результат: "ERR!"
example4: listmax(list: $list4; default: 0)
list4: listCreate()
// Результат: 0
Доступен в секциях: Код; Код действия; Код селекта; Форматирование ячейки, строки, таблицы.
=: listSum(list: )
Возвращает одно число, сумму значения списка list:
.
Все элементы списка должны быть числовыми значениями.
Обязательные параметры
example: listsum(list: $list)
list: listCreate(item: 10; item: 5; item: 5)
// Результат: 20
Доступен в секциях: Код; Код действия; Код селекта; Форматирование ячейки, строки, таблицы.
=: listCount(list: )
Возвращает одно число, количество элементов списка list:
.
Обязательные параметры
list — список, элементы которого подсчитываются.
example1: listcount(list: $list1)
list1: listCreate(item: "Alex"; item: "Sam"; item: "Mike")
// Результат: 3
example2: listcount(list: $list2)
list2: listCreate(item: 5; item: 10; item: 5)
// Результат: 3
Доступен в секциях: Код; Код действия; Код селекта; Форматирование ячейки, строки, таблицы.
=: listUniq(list: )
Возвращает список уникальных элементов списка list:
.
Обязательные параметры
example: listuniq(list: $list)
list: listCreate(item: "Alex"; item: "Sam"; item: "Alex")
// Результат: ["Alex","Sam"]
Доступен в секциях: Код; Код действия; Код селекта; Форматирование ячейки, строки, таблицы.
=: listItem(list: ; item: )
Возвращает одно значение из списка list:
под номером item:
. Нумерация элементов списка начинается с 0 (ноля).
Может быть заменено на обращение $list[item_number]
. Подробнее про обращение к элементу списка.
Обязательные параметры
list — список, элемент которого выбирается.
item — одно число, номер элемента списка.
example: listitem(list: $list2; item: 1)
list2: listCreate(item: "Alex"; item: "Sam"; item: "Alex")
// Результат: "Sam"
example2: $list2_2[1]
list2_2: listCreate(item: "Alex"; item: "Sam"; item: "Alex")
// Результат: "Sam"
Доступен в секциях: Код; Код действия; Код селекта; Форматирование ячейки, строки, таблицы.
=: listJoin(list: ; str: )
Возвращает объединенные в строку значения списка или ассоциированного массива. str:
— строка, которая вставляется между элементами (клей).
Обязательные параметры
Необязательные параметры
example: listJoin(list: $list; str: "-")
list: listCreate(item: 1; item: 2; item: 3)
// Результат: "1-2-3"
Доступен в секциях: Код; Код действия; Код селекта; Форматирование ячейки, строки, таблицы.
=: listCross(list: ; list: )
Возвращает список значений, содержащий все значения первого списка, которые содержатся во всех последующих списках. Может быть задано любое количество списков, в которых будет искаться пересечение.
Обязательные параметры
example: listcross(list: $list1; list: $list2; list: $list3)
list1: listCreate(item: 1; item: 1; item: 2; item: 3)
list2: listCreate(item: 1; item: 2; item: 3)
list3: listCreate(item: 1; item: 2)
// Результат: [1, 1, 2]
Доступен в секциях: Код; Код действия; Код селекта; Форматирование ячейки, строки, таблицы.
=: listAdd(list: ; list: ; item: )
Складывает списки в указанном порядке и возвращает список. Может быть задано любое количество списков, которые будут сложены вместе. Значения в списках могут повторяться.
Обязательные множественные параметры
list — совмещаемые списки, множественный параметр.
Необязательные множественные параметры
item — одно значение, которое может быть добавлено в список, множественный параметр.
example: listadd(list: $list1; list: $list2; item: 5)
list1: listCreate(item: 1; item: 2; item: 3)
list2: listCreate(item: 2; item: 3)
// Результат: [1,2,3,2,3,5]
Доступен в секциях: Код; Код действия; Код селекта; Форматирование ячейки, строки, таблицы.
=: listMinus(list: ; list: ; item: )
Возвращает список. Вычитает из первого списка значения, содержащиеся в последующих списках и отдельные значения. Может быть задано любое количество списков и отдельных значений.
Обязательные множественные параметры
Необходимо, чтобы присутствовало минимум два параметра, первый из которых list:
.
Необязательные множественные параметры
item — значение, которое будет исключено из списка, множественный параметр.
example: listminus(list: $list1; list: $list2; item: 2)
list1: listCreate(item: 1; item: 2; item: 2; item: 3; item: 4)
list2: listCreate(item: 3; item: 4; item: 5)
// Результат: [1]
Доступен в секциях: Код; Код действия; Код селекта; Форматирование ячейки, строки, таблицы.
=: listCut(list: ; cut: "first|last"; num: 1)
Возвращает список, уменьшенный на num:
элементов с начала или с конца.
Обязательные параметры
cut — строка, сторона, с которой будут удалены элементы.
first
— с начала.last
— c конца.Необязательные параметры
num — число, количество удаляемых элементов, по умолчанию — 1
.
cut: "first"
передать -1
останется последнее значение списка.example: listCut(list: $list; cut: "first"; num: 1)
list: listCreate(item: 1; item: 2)
// Результат: [2]
//Получить номер последнего ключа в списке
= : listCut(list: $keys; cut: "first"; num: -1)
keys: rowKeys(row: $list)
list: listCreate(item: "10500"; item: "10600"; item: "10700")
// Результат: [2]
Доступен в секциях: Код; Код действия; Код селекта; Форматирование ячейки, строки, таблицы.
=: listSection(list: ; item: )
Возвращает список из значений указанного в item:
ключа на основе ассоциированного массива.
Может быть заменен на обращение вида $rowList[[key]]
. Подробнее смотрите обращение к секции.
Обязательные параметры
list — ассоциированный массив или список из которого будет браться колонка.
item — ключ, значения которого отбираются, для списков ключ числовой.
Пример 1:
tree
id | title |
---|---|
1 | Системные таблицы |
2 | Основные |
3 | Доступы |
32 | Документация |
example1: listSection(list: $rowList; item: "id")
rowList: selectRowList(table: 'tree'; field: 'id'; field: 'title'; order: 'id' asc)
// Результат: [1, 2, 3, 32]
Пример 2:
example2: listSection(list: $listList; item: 1)
listList: json`[[1,2,3],[4,5,6]]`
// Результат: [2,5]
Так как listSection
используется достаточно часто, то в синтаксисе предусмотрено быстрое обращение к секции через $name[[section]]
:
example3: $listList[[1]]
listList2: json`[[1,2,3],[4,5,6]]`
// Результат: [2,5]
Доступен в секциях: Код; Код действия; Код селекта; Форматирование ячейки, строки, таблицы.
=: listFilter(list: $list; key: "key|value|item" ><!= ; item: ""; regexp: ; skip: ; matches: )
Возвращает список или ассоциативный массив из элементов, подходящих по условиям фильтрации.
Если в
list
передан список, результатом работы является новый список, у которого нумерация ключей идет с 0, для ассоциативного массива ключи сохраняются.
Обязательные параметры
list — список или ассоциативный массив, в котором осуществляется фильтрация.
key — выражение из типа сравниваемого элемента, оператора сравнения и значения для сравнения, множественный параметр в синтаксисе key: "item_name" ><!= "VALUE" num
.
key
— фильтрация строк по list-ключам
.value
— фильтрация строк по значению.item
— для списков ассоциативных массивов, фильтрация строк по значению в колонке определенной в item:
.Возможно использование параметра в таком синтаксисе:
=: listFilter(list: $list; key: "item_name" ><!= "VALUE")
// эта запись аналогична
// =: listFilter(list: $list; key: "item" ><!= "VALUE"; item: "item_name")
Также в этом случае может быть использован третий элемент str
или num
для определения типа данных в item_name
:
=: listFilter(list: $list; key: "item_name" >= "40" str)
// в этом случае данные в item_name будет обработано как строки
Также в таком синтаксисе key
является множественным параметром — результат фильтрации по пересечению граничных условий.
Необязательные параметры
item — в случае, когда сравниваемым элементом в key:
выбран item
— сюда нужно передать ключ этого item
.
regexp — true
или набор флагов, в случае, когда правая часть key:
представляет из себя регулярное выражение. По умолчанию флаг выставляется в u
.
skip — true
, если в key:
используется item
и в фильтруемых подмассивах он может отсутствовать, то пропускать элементы, в которых его не существует. В противном случае функция завершится ошибкой.
matches — название переменной, в которую будет записан список из совпадений выбранных строк.
savekeys — по умалчанию отфильтрованный список имеет собственную нумерацию ключей, но если передать true
— будут сохранены оригинальные ключи.
example1: listFilter(list: $list; key: "item" = "tree"; item: "t")
list: listCreate(item: $row_1; item: $row_2)
row_1: rowCreate(field: "t" = "pen"; field: "i" = 1)
row_2: rowCreate(field: "t" = "tree"; field: "i" = 2)
// Результат:
// [
// {
// "i": 2,
// "t": "tree"
// }
// ]
example2: listFilter(list: $list; key: "t" = "tree")
list: listCreate(item: $row_1; item: $row_2)
row_1: rowCreate(field: "t" = "pen"; field: "i" = 1)
row_2: rowCreate(field: "t" = "tree"; field: "i" = 2)
// Результат:
// [
// {
// "i": 2,
// "t": "tree"
// }
// ]
example3: listFilter(list: $list; key: "i" < "2" str)
list: listCreate(item: $row_1; item: $row_2)
row_1: rowCreate(field: "t" = "pen"; field: "i" = 10)
row_2: rowCreate(field: "t" = "tree"; field: "i" = 50)
// Результат:
// [
// {
// "i": 10,
// "t": "pen"
// }
// ]
Доступен в секциях: Код; Код действия; Код селекта; Форматирование ячейки, строки, таблицы.
=: listSearch(list: $list; key: "value|item" ><!= ; item: "")
Возвращает список ключей, отвечающих условиям поиска по значениям или вложенным значениям.
Обязательные параметры
list — список или ассоциированный массив или список ассоциированных массивов.
key — выражение вида "тип элемента" ><!= "значение элемента"
, определяющее диапазон выбора, множественный параметр в синтаксисе key: "item_name" ><!= "VALUE" str
.
value
— поиск осуществляется по всему значению.
=
будет искать пересечения в ассоциированных массивах, а ==
полное соответствие без учета порядка.item
— поиск осуществляется по вложенному значению для списка ассоциированных массивов.
Возможно использование параметра в таком синтаксисе:
=: listSearch(list: $list; key: "item_name" ><!= "VALUE" str)
// эта запись аналогична
// =: listSearch(list: $list; key: "item" ><!= "VALUE"; item: "item_name")
// item_name_2 будут отсортированы по типу string
Также в таком синтаксисе key
является множественным параметром — результат поиска по пересечению граничных условий.
Дополнительно можно указать элемент str или num в key для указания типа сортировки
Необязательные параметры
key:
выбран item
— сюда нужно передать название этого item
.Если лист содержит элемент без ключа item
будет возвращена ошибка!
example1: listSearch(list: $list; key: "item" = "tree"; item: "t")
list: listCreate(item: $row_1; item: $row_2)
row_1: rowCreate(field: "t" = "pen"; field: "i" = 1)
row_2: rowCreate(field: "t" = "tree"; field: "i" = 2)
// Результат: [1]
example2: listSearch(list: $list; key: "t" = "tree")
list: listCreate(item: $row_1; item: $row_2)
row_1: rowCreate(field: "t" = "pen"; field: "i" = 1)
row_2: rowCreate(field: "t" = "tree"; field: "i" = 2)
// Результат: [1]
example3: listSearch(list: $list; key: "i" < "2" str)
list: listCreate(item: $row_1; item: $row_2)
row_1: rowCreate(field: "t" = "pen"; field: "i" = 10)
row_2: rowCreate(field: "t" = "tree"; field: "i" = 5)
// Результат: [0]
Доступен в секциях: Код; Код действия; Код селекта; Форматирование ячейки, строки, таблицы.
=: listSort(list: ; type: "number|string|regular"; direction: "asc|desc"; key: "key|value|item"; item: "")
Возвращает сортированный list
.
Внимание: сортировка спецсимволов в PHP (listSort) и PostgreSQL (параметры
order
вselect-функциях
) РАЗЛИЧНА! Полное сравнение в этом случае будет возвращатьfalse
. Для полной работоспособности в таких случаях не выполняйтеorder
вselect
, а добавляйте еще одинlistSort
.
Обязательные параметры
list — список или ассоциативный массив для сортировки.
Если в
list
передан список, результатом работы является новый список, у которого нумерация ключей идет с 0, для ассоциативного массива ключи сохраняются.
Необязательные параметры
type — строка, тип, к которому приводятся сортируемые элементы при сравнении.
number
— число.string
— строка.regular
— без приведения. Результат непредсказуем при разнородном содержимом.nat
— сортировка по числу после одинакового префикса n15
, n16
, n17
, ...
Эта настройка глобальна — те применяется ко всем key использованным в функции.
Вместо нее можно использовать четвертый элемент str или num в key для указания типа сортировки:
=: listSort(list: $list; key: "item_name_1" asc num; key: "item_name_2" desc str)
// item_name_1 будут отсортированы по типу number
// item_name_2 будут отсортированы по типу string
// asc num и num asc будут работать аналогично
direction — строка, направление сортировки.
asc
— по возрастанию (по умолчанию).desc
— по убыванию.key — выражение из типа сравниваемого элемента, оператора сравнения и значения для сравнения.
key
— сортировка строк по list-ключам
.value
— сортировка строк по значению.item
— для списков ассоциативных массивов, сортировка строк по значению в колонке определенной в item:
.Возможно использование параметра в таком синтаксисе:
=: listSort(list: $list; key: "item_name_1" asc; key: "item_name_2" desc)
// item_name_1 и item_name_2 будут отсортированы по типу regular
// если задать type то он будет применен ко всем key
// если задать direction то он будет применен ко всем key без указанного направления
Также в таком синтаксисе key
является множественным параметром — результат сортировки по последовательному применению слева-направо.
example1: listSort(list: $list; type: "string"; direction: "asc")
list: listCreate(item: 1; item: 2; item: 11; item: 21)
// Результат: [1,11,2,21]
example2: listSort(list: $list; key: "numbers" desc num)
rowlist: rowListCreate(field: "numbers" = $list_numbers; field: "name" = $list_name)
list_numbers: listCreate(item: 1; item: 2; item: 11; item: 21)
list_name: listCreate(item: "Alex"; item: "Mike"; item: "Sam"; item: "Dany")
// Результат: [{"numbers":"21","name":"Dany"},{"numbers":"11","name":"Sam"},{"numbers":"2","name":"Mike"},{"numbers":"1","name":"Alex"}]
Доступен в секциях: Код; Код действия; Код селекта; Форматирование ячейки, строки, таблицы.
=: listMath(list: ; num: ; list: ; operator: )
Возвращает list
, все элементы которого были изменены в соответствии с operator:
и num:
.
Обязательные параметры
list — список или ассоциированный массив, исходник.
num — число для арифметического действия.
или
list — список или ассоциированный массив (в зависимости от формата первого list
), для попарного арифметического действия. Количество элементов в list
должно быть одинаковое (для ассоциированных массивов одинаковый набор ключей).
operator — строка, математический оператор.
+
— прибавить-
— отнять*
— умножить/
— разделитьexample1: listMath(list: $list; num: 3; operator: "*")
list: listCreate(item: 1; item: 2; item: 11; item: 21)
// Результат: [ 3, 6, 33, 63]
example2: listMath(list: $list1; list: $list2; operator: "*")
list1: listCreate(item: 1; item: 2; item: 11; item: 21)
list2: listCreate(item: 1; item: 2; item: 1; item: 1)
// Результат: [ 1, 4, 11, 21]
Доступен в секциях: Код; Код действия; Код селекта; Форматирование ячейки, строки, таблицы.
=: listTrain(list: )
Возвращает список из соединенных последовательно списков вложенных в списки.
Обязательные параметры
example: listTrain(list: $lists)
lists: json`[[1,2],[3,4],[5,6]]`
//Результат: [1,2,3,4,5,6]
Доступен в секциях: Код; Код действия; Код селекта; Форматирование ячейки, строки, таблицы.
=: listRepeat(item: ; num: )
Возвращает лист из повторенного num:
раз элемента item:
.
Обязательные параметры
num — число, количество повторений элемента item:
.
item — значение любого типа.
example: listRepeat(item: $row; num: 2)
row: rowCreate(field: "test" = 1)
// Результат: [
// {
// "test": 1
// },
// {
// "test": 1
// }
// ]
Доступен в секциях: Код; Код действия; Код селекта; Форматирование ячейки, строки, таблицы.
=: listNumberRange(min: ; max: ; step: 1)
Возвращает список из чисел в заданном диапазоне, идущих с шагом step:
Необязательные параметры
min — число от.
max — число до (конечное значение в интервал не входит).
step — число, шаг.
step:
> 0
— в порядке от min:
включительно до max:
исключительно.step:
< 0
— в порядке от max:
включительно до min:
исключительно.step:
= 0
— ERR!
example1: listNumberRange(min: 1; max: 3; step: 0.5)
// Результат: [1,1.5,2,2.5]
example2: listNumberRange(min: 1; max: 3; step: -0.5)
// Результат: [3,2.5,2,1.5]
Доступен в секциях: Код; Код действия; Код селекта; Форматирование ячейки, строки, таблицы.
=: listCheck(list: )
Возвращает true
если в list
передан список или row или rowlist. Возвращает false только в случае если передано одно значение!
Обязательные параметры
Доступен в секциях: Код; Код действия; Код селекта; Форматирование ячейки, строки, таблицы.
=: listReplace(list: ; action: "item" = $val; action: $val; key: "key"; value: "value")
Последовательно перебирает список. Может использоваться для:
создания списка/ассоциативного массивa на основе исходного с заменой значений.
создания списка ассоциативных массивов/ассоциативного массивa/ассоциативных массивов на основе исходного с заменой отдельных элементов вложенных массивов.
выполнения действий на основе исходного списка/ассоциативного массивa.
ВНИМАНИЕ! Функция не использует рекурсию и вы можете воспользоваться ею при получении ошибки переполнения стека.
Обязательные параметры
list — список, список ассоциативных массивов или ассоциативный массив.
action — множественный параметр, выполняемое действие:
action: $act
—
action: "key" = $act
—
Необязательные параметры
value — строка, переменная в которую будет передано значение в случае списка и row в списка ассоциативных массивов.
key — строка, переменная в которую будет передан порядковый номер обрабатываемого элемента — значения или row.
replace: listReplace(list: $rowlist; action: "date" = $weekDay; action: "max_temp" = $max_temp; value: "val")
rowlist: rowListCreate(field: "date" = $list_date)
list_date: listCreate(item: "2020-09-10"; item: "2020-09-11"; item: "2020-09-12")
weekDay: dateFormat(date: $#val[date]; format: "l"; lang: "ru")
max_temp: listMax(list: $day_temp; default: "")
day_temp: selectList(table: 'temp'; field: 'temp'; where: 'date' = $#val[date])
// Перебирает список ассоциированных массивов в колонке date которого хранятся даты.
// Последовательно в каждой строке перезаписывает date на текстовое обозначение дня недели.
// Последовательно в каждой строке добавляет ключ max_temp вычисляя максимальную температуру в этот день на основе данных, взятых на каждой итерации из таблицы temp по значению ключа date в этой строке.
replace_act: listReplace(list: $list_date_act; action: $recalc; value: "val_act")
list_date_act: listCreate(item: "2020-09-10"; item: "2020-09-11"; item: "2020-09-12")
recalc: recalculate(table: $#ntn; where: 'date' = $#val_act)
// Выполняемый в коде действия последовательно пересчитает строки текущей таблицы в которой date равно датам из list_date_act.
Дополнительные пояснения
listReplace проще чем все думают. Он обрабатывает указанный в параметре list
список от начала до конца. Если зашел список 5 значений на выходе будет список из 5 значений.
Каким образом меняются значения. Они меняются в параметрах action
.
Если на входе у нас список [1,5,16,4]
(например это какие-то id
и нам нужно им найти соответсвующие имена), то будет так: action: $value
и в строке value
уже будет поиск этого артикула для каждой строчки.
Пример:
=: listReplace(list: json`[1,5,16,4]`; action: $val; value: "row")
val: select(table: 'test_projects'; field: 'nr_name'; where: 'id' = ?)
Я пока оставил в сравнении where
вопросительный знак, что бы пояснить параметр value
. Дело в том, что когда мы в строке val
выполняем поиск, то нам надо сравнивать со стартовым значением, которое у нас есть в обрабатываемом списке. Это значение передается в переменную, название которой мы задаем в параметре value
. Почему мы ее задаем сами, потому что у нас в одном коде может быть 10 разных listReplace и у них должны быть разные переменные. Переменная вызывается как обычно $#value_name
. В моем примере $#row
.
Я назвал ее row
тк в реальности в эту переменную по очереди приходят значения каждой обрабатываемой строки в том порядке, в котором они в списке источнике в параметре list
.
В моем примере на шаге 2 (нумерация начинается с 0): $#row
= 16
.
А что будет, если у нас на входе не list
а rowlist
. В этом случае там будет вся строка, например: {"name":"Alex","id":10}
Тогда если у нас на входе list
сравнение будет where: 'id' = $#row
, а если обрабатываем rowlist
то where: 'id' = $#row[id]
(надо указать из какой колонки rowlist
взять сравнение).
Пример для list
:
=: listReplace(list: json`[1,5,16,4]`; action: $val; value: "row")
val: select(table: 'test_projects'; field: 'nr_name'; where: 'id' = $#row)
Теперь посмотрим что такое action: "item" = $val
— эта штука для обработки rowlist
. Те когда у нас на входе rowlist
и мы хотим заменить значение только в одной его колонке или добавить новую колонку то вот тогда используется этот вариант.
Пример c rowlist
:
=: listReplace(list: #some_rowlist; action: "second_name" = $val; value: "row")
val: select(table: 'test_projects'; field: 'nr_name'; where: 'id' = $#row[id])
В этом примере он мне в каждой строке моего rowlist
добавит колонку second_name
: {"name":"Alex","id":10; "second_name":"Some found name"}
этот second_name
он ищет для каждой строки по ключу id
.
Получается что action: $val
— это замена всего значения строки на новое, а action: "second_name" = $val
это изменение одной колонки или добавление новой. Второе понятно работает только если на входе rowlist
.
Если же на входе rowlist
то можно несколько action: "item_1" = $val_1; action: "item_2" = $val_2
.
А можно ли для входящего list
несколько action: $val
. Можно, но только в кодах-действия, потому что в кодах действия это будут выполняемые действия. Если просто в код, то это получается абсурд, тк вы последующим action
перезаписываете предыдущий.
Что такое key
. Если в value
передается значение обрабатываемой на шаге строки, то в key
передается ее номер (нумерация списков начинается с 0). Для списка [1,5,16,4]
при обработке строки со значением 16
в переменной в key
будет ... 2
.
Зачем это нужно? Дело в том, что в list
можно скормить не только list
и rowlist
, но и row
.
Например у нас есть такой row
: {"490":"Alex","520":"Mike","530":"John"}
и мы хотим для всех у кого ключи больше 500
добавить *
(например это количество баллов системы лояльности):
=: listReplace(list: json`{"490":"Alex","520":"Mike","530":"John"}`; action: $val; key: "key"; value: "value")
val: if(condition: $#key > 500; then: str`$#value ++ "*"`; else: $#value)
Обратите внимание, что новое значение присваивается на каждом шаге — listReplace ничего не пропускает, но если нам не нужно менять значение на шаге, то мы можем новое присвоить без изменения из $#value
!
Вот и все!
Доступен в секциях: Код; Код действия; Код селекта; Форматирование ячейки, строки, таблицы.
=: rowCreate(field: "" = )
Возвращает ассоциативный массив с основаниями в виде name полей, указанных в field:
и значениями указанными после =
.
Необязательный множественный параметр
field — множественный параметр, элементы, из которых создается массив. Количество параметров field:
определяет количество элементов в массиве.
example: rowCreate(field: 'name' = "Alexey"; field: 'age' = 35)
//Результат: {"name": "Alexey", "age": 35}
Доступен в секциях: Код; Код действия; Код селекта; Форматирование ячейки, строки, таблицы.
=: rowListCreate(field: "" = $list)
Возвращает список ассоциативных массивов с ключами в виде name полей указанных в field:
значениями указанными после =
. Строки создаются в порядке сортировки списков передаваемых в field:
.
Обязательные параметры
field — множественный параметр, элементы, из которых создается список ассоциативных массивов. Количество параметров field:
определяет количество элементов в массиве.
example: rowlistCreate(field: 'name' = $names; field: 'age' = $ages)
names: listCreate(item: "Alexey"; item: "Pavel")
ages: listCreate(item: 32; item: 35)
// Результат:
// [
// {"name": "Alexey", "age": 32},
// {"name": "Pavel", "age": 35}
// ]
Доступен в секциях: Код; Код действия; Код селекта; Форматирование ячейки, строки, таблицы.
=: rowCreateByLists(keys: $keysList; values: $valuesList)
Возвращает ассоциативный массив или false
.
Обязательные параметры
keys — список, содержащий строки или числа, которые станут ключами для массива.
values — список, содержащий любые данные, которые станут значениями.
Размеры листов keys:
и values:
должны совпадать.
example: rowCreateByLists(keys: $keysList; values: $valuesList)
keysList: listCreate(item: "min"; item: "middle"; item: "max")
valuesList: listCreate(item: "cherry"; item: "apple"; item: "watermellon")
// Результат: {"min":"cherry", "middle": "apple", "max": "watermellon"}
Доступен в секциях: Код; Код действия; Код селекта; Форматирование ячейки, строки, таблицы.
=: rowAdd(row: ; row: ; field: "" = )
Возвращает ассоциативный массив, дополненный и исправленный последующими row:
и field:
.
Обязательные параметры
row — ассоциативный массив, который будет дополняться или изменяться.
Необязательные параметры
field — элементы, которые будут добавлены в конец массива в указанном порядке. Первым элементом выражения являются основания field: "base" = $value
.
$value
может задаваться как одинарные значения и списки чисел, строк, дат и булевых значений.path — список с ключами, который показывает в какое место row-структуры нужно вставить данные.
replace — true
. Используется только совместно с path
, для того чтобы заменить значение ключа полностью, а не добавлять значения.
example: rowAdd(row: $row1; field: "test2" = "2"; field: "test3" = "3")
row1: rowCreate(field: "test1" = "1"; field: "test2"="1")
// Результат:
// {
// "test1": "1",
// "test2": "2",
// "test3": "3"
// }
// example_data
// {
// "data": [
// {
// "num": "some num 1",
// "value": "some value 1",
// "product": {}
// },
// {
// "num": "some num 1",
// "value": "some value 1",
// "product": {}
// }
// ]
// }
example2: rowAdd(row: #example_data; field: "test2" = "2"; field: "test3" = "3"; path: $list)
list: listCreate(item: "data"; item: 0; item: "product")
// {
// "data": [
// {
// "num": "some num 1",
// "value": "some value 1",
// "product": {
// "test2": "2",
// "test3": "3"
// }
// },
// {
// "num": "some num 1",
// "value": "some value 1",
// "product": {}
// }
// ]
// }
Доступен в секциях: Код; Код действия; Код селекта; Форматирование ячейки, строки, таблицы.
=: rowListAdd(rowlist: ; rowlist: ; field: "" = ; field: "" = )
Возвращает список ассоциативных массивов, дополненный и исправленный последующими rowList:
и field:
.
Обязательные параметры
rowlist — списки ассоциативных массивов, которые будут сложены, множественный параметр.
Необязательные параметры
field — колонки, которые будут добавлены в массив в указанном порядке. В двойных кавычках указываются основания field: "base" = $value
. Множественный параметр.
example: rowListAdd(rowlist: $rowList1; rowlist: $rowList2; field: "test" = 1; field: "testlist" = $valListl; field: "test2" = 0)
rowList1: jsonExtract(text: '[{"test1":1,"test2":1}, {"test1":2,"test2":2}, {"test1":3,"test2":3}]')
rowList2: jsonExtract(text: '[{"test10":10}, {"test10":20}, {"test10":30}]')
valListl: jsonExtract(text: '[5, 6, 7]')
// Результат: [
// {
// "test": 1,
// "test1": 1,
// "test2": 0,
// "test10": 10,
// "testlist": 5
// },
// {
// "test": 1,
// "test1": 2,
// "test2": 0,
// "test10": 20,
// "testlist": 6
// },
// {
// "test": 1,
// "test1": 3,
// "test2": 0,
// "test10": 30,
// "testlist": 7
// }
// ]
Доступен в секциях: Код; Код действия; Код селекта; Форматирование ячейки, строки, таблицы.
=: rowKeys(row: )
Возвращает список из ключей ассоциативного массива.
Обязательные параметры
example: rowKeys(row: $row)
row: rowCreate(field: "test1" = "1"; field: "test2" = "1")
// Результат: [
// "test1",
// "test2"
// ]
Доступен в секциях: Код; Код действия; Код селекта; Форматирование ячейки, строки, таблицы.
=: rowValues(row: )
Возвращает значения переданного ассоциативного массива.
Обязательные параметры
example: rowValues(row: $row)
row: rowCreate(field: "test1" = "1"; field: "test2" = "1")
// Результат:
// [
// "1",
// "1"
// ]
Доступен в секциях: Код; Код действия; Код селекта; Форматирование ячейки, строки, таблицы.
=: rowKeysReplace(row: ; from: ; to: ; recursive: false)
Возвращает ассоциативный массив c ключами замененными с from:
на to:
.
Обязательные параметры
row — список или ассоциированный массив в котором будут заменяться ключи.
from — одна или список строк которые будут искаться в ключах массива.
to — одна или список строк на которые будут заменены совпадения из from:
в ключах массива.
Если во from:
и to:
передаются списки, то замены будут произведены попарно.
Необязательные параметры
recursive — проверять вложенные ключи для списков ассоциированных массивов.
true
— искать внутри.false
— не искать (по умолчанию)."3"
— искать внутри на указанном уровне. В том числе можно передать как список
. Уровни нумеруются от 0
— верхний, первое вложение — 1
итд.example: rowKeysReplace(row: $rowList; from: "a"; to: "c"; recursive: true)
rowList: jsonExtract(text: '[{"a": 1, "b": 2}, {"a": 4, "d": 4}]')
// Результат: [{"c": 1,"b": 2},{"c": 4,"d": 4}]
Доступен в секциях: Код; Код действия; Код селекта; Форматирование ячейки, строки, таблицы.
=: rowKeysRemove(row: ; key: ; keys: ; recursive: false)
Возвращает ассоциированный массив с удаленными ключами (колонками) key:
или keys:
.
Обязательные параметры
Необязательные параметры
key — строк, name-ключа (колонки) которую нужно удалить, множественный параметр.
keys — список строк name-ключей (колонок), которые нужно удалить.
recursive — проверять вложенные ключи для списков ассоциированных массивов.
true
— искать внутри.false
— не искать (по умолчанию)."3"
— искать внутри на указанном уровне. В том числе можно передать как список
. Уровни нумеруются от 0
— верхний, первое вложение — 1
итд.example: rowKeysRemove(row: $rowList; key: "a"; recursive: true)
rowList: jsonExtract(text: '[{"a": 1, "b": 2}, {"a": 4, "d": 4}]')
// Результат: [{"b": 2},{"d": 4}]
Доступен в секциях: Код; Код действия; Код селекта; Форматирование ячейки, строки, таблицы.
=: if(condition: ; then: ; else: )
Возвращает при верном условии condition:
значение секции then:
, в противном случае — значение секции else:
либо null
, если она не задана.
Обязательные параметры
condition — условие срабатывания вида "значение 1" = "значение 2"
.
condition:
выполнилось в false
, то ни последующие, ни then:
рассчитаны не будут.Необязательные параметры
Для корректной работы функции должен присутствовать хотя бы один из них.
then — значение, либо ссылка на строку или параметр, которые будут рассчитаны в случае, если все condition:
выполнились в true
.
else — значение, либо ссылка на строку или параметр, которые будут рассчитаны в случае, если хотя бы один condition:
выполнился в false
.
example1: if(condition: $test1 = 1; condition: $test11 = 2; then: true; else: false)
test1: 1
test11: 3
// Результат: false
example2: if(condition: $p1_2 < $p2_2; condition: $p2_2 < $p3_2; then: "Start"; else: "Stop")
p1_2: 10
p2_2: 20
p3_2: 30
// Результат: "Start"
example3: if(condition: $p1_3 > $p2_3; then: true)
p1_3: 10
p2_3: 20
// Результат: ""
Доступен в секциях: Код; Код действия; Код селекта; Форматирование ячейки, строки, таблицы.
=: while(preaction: ; condition: ; limit: ; action: ; postaction: ; iterator: )
Выполняет действия action:
, если выполняются условия condition:
с количеством повторений limit:
, изменяя iterator:
на +1 в каждой итерации. Возвращает значение последнего preaction|action|postaction
в зависимости от их наличия в функции.
Необязательные параметры
preaction — значение строки кода, действие, выполняемое в любом случае до обработки секций condition
и обработки итераций.
preaction
помимо действия или вместе с ним (зависит от [функции действия][24]) возвращает значение, если нет последующих action
, postaction
или они не выполнены по условиям condition
.limit — число, максимальное количество итераций, если condition
в каждой итерации проходят в true.
condition — условие срабатывания вида "значение 1" = "значение 2"
.
condition:
выполнилось в false
, то последующие condition
, action
, а также последующие операции не будут выполнены.action — значение строки кода, выполняемое действие внутри итерации. Повторяется в каждой итерации.
action
помимо действия или вместе с ним (зависит от [функции действия][24]) возвращает значение.postaction — значение строки кода, выполняется после всех итераций. При условии, что выполнен хотя бы один action
!
action
помимо действия или вместе с ним (зависит от [функции действия][24]) возвращает значение.iterator — счетчик номера итерации.
while
с итераторами в одной секции кода.example: while(action: $set1; action: $set2)
set1: set(table: 'table1'; field: 'field1' = 1)
set2: set(table: 'table2'; field: 'field2' = 2)
// Результат: Присвоит полям field1 и field2 в таблицах table1 и table2 значения 1 и 2 соответственно.
Доступен в секциях: Код; Код действия; Код селекта; Форматирование ячейки, строки, таблицы.
=: var(name: ""; value: ; default: )
Сохраняет и отдает значение переменной внутри секции кода конкретного поля.
Обязательные параметры
name — одна строка, имя переменной по которому идет обращение к данным.
name:
не повторялись и не пересекались со значениями других переменных внутри кода.Необязательные параметры
value — значение, присваиваемое переменной и возвращаемое функцией.
default — один раз за исполнение секции кода присваивает значение переменной в том случае если при обращении к ней она не определена.
example1: while(action: $set; limit: 30; iterator: "iter1")
set: var(name: "count"; value: $plus)
plus: listAdd(list: $var; item: $i)
var: var(name: "count"; default: $#lc)
i: dateAdd(date: $#nd; days: $days)
days: $#iter1 * -1
example2: while(preaction: $zero2; action: $set2; limit: 30; iterator: "iter2")
zero2: var(name: "count"; value: $#lc)
set2: var(name: "count"; value: $plus2)
plus2: listAdd(list: $#count; item: $i2)
i2: dateAdd(date: $#nd; days: $days2)
days2: $#iter2 * -1
example3: $while{var: "count" = $#lc}
while: while(action: $set3; limit: 30; iterator: "iter3")
set3: var(name: "count"; value: $plus3)
plus3: listAdd(list: $#count; item: $i3)
i3: dateAdd(date: $#nd; days: $days3)
days3: $#iter3 * -1
В логике Тотума вместо циклов существенно более эффективно использовать рекурсии или функцию listReplace, обрабатывающую списки построчно.
Доступен в секциях: Код; Код действия; Код селекта; Форматирование ячейки, строки, таблицы.
=: globVar(name: ""; value: ; default: ; date: ; block: )
Сохраняет и отдает значение переменной глобально независимо от транзакций. Короткое обращение @$name_glob_var
Запись происходит вне транзакционной модели, в тот момент, когда вызывается функция с передачей
name
иvalue
.
Обязательные параметры
Необязательные параметры
value — значение, присваиваемое переменной и возвращаемое функцией.
null
.date
переменнойdefault — работает только при отсутствии параметра value
, присваивает значение переменной в том случае если при обращении к ней она не определена. Вычисляется при старте функции в любом случае.
date
переменной, если ее не было.date — работает при любом наборе необязательных параметров
true
- функция возвращает структуру вида {"date": "2024-07-19 13:19:47","secpart": "303308","value": "some value"}
block — число
в секундах или false
. Используется только если нет value
, только при запросе переменной. Позволяет установить блокировку запроса для другого процесса, который будет ждать пока истечет блокировка.
Предназначено для использования в конкурентных процессах, проверяющих и изменяющих значение переменной. Например если false
то устанавливаем true
и по завершении процесса меняем на false
. Если true
, то ничего не делаем. В момент проверки и записи true
может вклиниться конкурирующий процесс и записать true
, таким образом будут исполняться два процесса, хотя второй должен был быть отклонен.
Чтобы этого избежать, при запросе значения устанавливается блокировка, которая снимается по истечении указанного времени, либо при записи переменной или запросе ее значения с передачей block: false
.
Блокировка на чтение работает только для запросов устанавливающих или снимающих блокировку через параметр block
. При получении переменной @$name_glob_var ее значение будет возвращено сразу.
Запись вне транзакционной модели может привести к залипанию переменной в случаях, когда процесс стартовал и переменная была установлена, а потом процесс прервался.
Рекомендуется использовать вместе с tryCatch — в этом случае в catch
записывается обнуление переменной или установку ее в стартовое значение, которое произойдет если транзакция будет отменена.
Доступен в секциях: Код; Код действия; Код селекта; Форматирование ячейки, строки, таблицы.
=: procVar(name: ""; value: ; default: )
Сохраняет и отдает значение переменной в процессе php. Короткое обращение $@name_proc_var
Обязательные параметры
Необязательные параметры
value — значение, присваиваемое переменной и возвращаемое функцией.
default — работает только при отсутствии параметра value
, присваивает значение переменной в том случае если при обращении к ней она не определена. Вычисляется при старте функции в любом случае.
Доступен в секциях: Код; Код действия; Код селекта; Форматирование ячейки, строки, таблицы.
=: exec(code: ; var: "" = ; var: "" = ; ssh: )
Запускает выполнение кода, переданного в параметре code
. Вызванный код будет выполняться по правилам той секции, из которой был вызван.
Обязательные параметры
code — код для выполнения в синтаксисе Totum.
Может быть передан в таком синтаксисе:
=: exec(code: $code)
```code:totum
=: set(table: 'table'; field: 'field' = $value)
value: "some_value"
```
В этом случае код внутри блока code
обрабатывается как текст и его $
и $#
не пересекаются с кодом текущего поля. :totum
означает подсветить как код тотума.
В code:
возможно передать name
другого поля в текущей таблице, тогда код будет взят из него из соответствующего типа кода. При вызове из кода — код, при вызове из кода-действия — код-действия, итд... В этом случае если кликнуть на "name"
будет показана кнопка, открывающая на редактирование целевой код во всплывающем окне.
Также в code
можно использовать обращение @table.field
или @table.field.key_field[key]
. В этом случае если кликнуть на @...
будет показана кнопка открывающая на редактирование целевой код во всплывающем окне.
Необязательные параметры
var — определение переменной и ее значения для передачи в код определенный в code:
.
var:
не повторялись и не пересекались со значениями других переменных внутри кода.code:
идет через обращение к переменным внутри кода.ssh — true
, если нужно отделить действие в отдельный процесс и вывести из текущей цепочки. Использование должно быть разрешено в Conf.php.
example: exec(code: @table.h_code_text.name[some_code]; var: "varname" = 10)
// h_code_text
// "=: 10 + $#varname"
// Результат: 20
Доступен в секциях: Код; Код действия; Код селекта; Форматирование ячейки, строки, таблицы.
=: errorException(text: )
Прерывает выполнение всей цепочки кодов и экшенов, отменяя все совершенные изменения.
Если цепочка отлавливает исключения через функцию tryCatch, то выполнение продолжится с блока Catch:
этой функции.
Указанное в text:
сообщение попадет в переменную с названием, заданным параметром error:
вызова функции tryCatch.
Обязательные параметры
example: if(condition: $#nfv="Недопустимое значение"; then: $error)
error: errorException(text: "Вы ввели недопустимое значение. Ничего не сохранилось.")
// Результат: Если код выполнялся в рамках веб-сессии, пользователю выведется сообщение об ошибке с текстом: "Вы ввели недопустимое значение. Ничего не сохранилось." и указанием названия таблицы, в которой размещался код.
// Если код выполнялся api-скриптом, ему вернется сообщение об ошибке в формате этого api.
// Крон получит exeption и может отправить письмо об ошибке администратору.
Доступен в секциях: Код; Код действия; Код селекта; Форматирование ячейки, строки, таблицы.
=: tryCatch(try: ; catch: ; error: "exception")
Выполняет try:
. Если при выполнении try:
произошла ошибка, откатывающая транзакцию, выполняет catch:
и передает в переменную error
текст ошибки.
Обязательные параметры
try — значение строки кода, основной код.
catch — значение строки кода, который выполняется в случае возникновения любой ошибки в try:
.
Необязательные параметры
example1: tryCatch(try: $test1; catch: 2; error: "exception")
test1: 1
// Результат: 1
example: tryCatch(try: $test2; catch: $#exception; error: "exception")
test2: errorExeption(text: "test")
// Результат: test
Имеет сахар вида:
=name_row_for_catch:
name_row_for_catch:
Запись такого вида означает, что это tryCatch
где в catch:
указана строка кода name_row_for_catch
и error: "exception"
.
Рекомендуется использовать вместе с глобальными переменными, записывая в catch
откат к исходным значениям в случае ошибки в try
.
=catch: 1
catch: 2
// Результат: 1
=catch: errorExeption(text: "test")
catch: $#exception
// Результат: test
Проброс в
catch
при ошибке одновременного доступа гарантировано останавливает автоматический перезапуск действия!
Доступен в секциях: Код; Код действия; Код селекта; Форматирование ячейки, строки, таблицы.
=: reCalculate(table: ''; cycle: ; hash: ; where: '' = ; field: '')
Пересчитывает указанную таблицу определенную в table:
в соответствии с ее единицей пересчета.
Эта функция может вызываться из любой секции кода, чтобы можно было пересчитать таблицу, из которой берутся данные перед тем, как брать данные! Эта возможность позволяет увести в бесконечный цикл любую таблицу! Инструкцию по реанимации смотреть здесь.
Обязательные параметры
Необязательные параметры
cycle — определяет цикл, если таблица table:
является расчетной в цикле.
table:
находится в дереве.hash — строка, hash таблицы для пересчета временных таблиц .
where — name-параметр условие выбора строки в строчной части. Левая часть определяет поле сравнения в таблице table:
, а правая — значение сравнения.
where:
, то выборка осуществляется на пересечении их условий, применяемых слева направо.where:
могут получаться различные комбинации сравнений: один к одному, один ко многим, многие ко многим.table:
определена таблица с табличной единицей пересчета, то независимо от наличия/отсутствия параметра и результатов его работы будет пересчитана вся таблица.Если в
where:
передать значение*ALL*
, то этотwhere:
будет выключен! Это можно сделать через отдельную строку, например:
=: reCalculate(table: 'table_name'; where: 'search_field' = $if)
if: if(condition: #connected_field = ""; then: "*ALL*"; else: #connected_field)
Список из одного значения ["*ALL*"]
будет обработан так же как и "*ALL*"
.
field — name-параметр, имя поля для выполнения Кода при добавлении. Позволяет повторно выполнить Код поля у которого установлен параметр Только при добавлении.
field:
то коды будут выполнены у нескольких полей.Пример 1:
tablename — таблица со строчной единицей пересчета.
id | fieldname |
---|---|
1 | test1 |
2 | test2 |
3 | test3 |
example1: recalculate(table: 'tablename'; where: 'fieldname' = "test3")
// Результат: пересчет строки id = 3
Пример 2:
tablename — расчетная таблица являющаяся единицей пересчета.
id | fieldname |
---|---|
1 | test1 |
2 | test2 |
3 | test3 |
example2: recalculate(table: 'tablename')
// Результат: пересчет всех полей
Пример 3:
tablename — таблица со строчной единицей пересчета и полями в хедере.
h_fieldname
id | fieldname |
---|---|
1 | test1 |
2 | test2 |
3 | test3 |
example3: recalculate(table: 'tablename'; where: 'id' = 0)
// Результат: пересчет только h_fieldname
Доступен в секциях: Код; Код действия; Код селекта; Форматирование ячейки, строки, таблицы.
=: reCalculateCycle(table: ''; cycle: )
Пересчитывает последовательно таблицы в циклах. Если в результате пересчета цикла таблица была обновлена, то повторно она не пересчитывается. Работает в кодах аналогично recalculate.
Обязательные параметры
table — name-параметр name таблицы циклов, в которой будут пересчитаны циклы.
cycle — определяет цикл, или список циклов для пересчета.
Пример:
cycles_table calcs_table_1 (вызывает пересчет calcs_table_3) calcs_table_2 calcs_table_3
example: reCalculateCycle(table: 'cycles_table'; cycle: 3)
// Результат: Будет пересчитана *calcs_table_1*, пересчет которой вызовет пересчет *calcs_table_3*, затем пересчитается *calcs_table_2*
Доступен в секциях: Код действия.
=: set(table: ''; cycle: ; hash: ; field: '' = ; where: '' = ; log: true)
Изменяет значения в полях field:
в таблице table:
вне строчной части.
Изменяет значения в одной строке в полях field:
в таблице table:
.
Обязательные параметры
table — name-параметр name таблицы, в которой изменяются данные.
field — name-параметр поле в таблице table:
, в котором изменяются данные и значение.
field:
в таблице table:
.'fieldname' + Y
(добавить) или 'fieldname' - Y
(вычесть), 'fieldname' * Y
(умножить) и 'fieldname' / Y
(разделить), а также аналогичные действия с процентами 'fieldname' + 2%
.=
— +
или -
.Если передать строковое значение *NONE*
то параметр будет отключен: field: 'field_name' = "*NONE*"
.
Необязательные параметры
cycle — число, одно или список, определяет цикл, если таблица table:
является расчетной в цикле.
hash — строка
where — name-параметр условие выбора строки в строчной части. Левая часть определяет поле сравнения в таблице table:
, а правая — значение сравнения.
where:
, то выборка осуществляется на пересечении их условий, применяемых слева направо.order:
.Если в
where:
передать значение*ALL*
, то этотwhere:
будет выключен! Это можно сделать через отдельную строку, например:
=: set(table: 'table_name'; field: 'field_name' = "new_value"; where: 'search_field' = $if)
if: if(condition: #connected_field = ""; then: "*ALL*"; else: #connected_field)
Список из одного значения ["*ALL*"]
будет обработан так же как и "*ALL*"
.
true
для добавления операции во внутреннюю таблицу логирования.Если в
log:
передать"строку"
вместоtrue
, то в логе вместоСкрипт
будет записана переданная строка.
Пример 1:
tablename
id | fieldname1 | fieldname2 |
---|---|---|
1 | test11 | test12 |
2 | test21 | test22 |
3 | test31 | test23 |
example1: set(table: 'tablename'; field: 'fieldname1' = "ZZZ"; where: 'fieldname2' = "test22")
tablename
id | fieldname1 | fieldname2 |
---|---|---|
1 | test11 | test12 |
2 | ZZZ | test22 |
3 | test31 | test23 |
Пример 2:
tablename
id | fieldname1 | fieldname2 |
---|---|---|
1 | test11 | 10 |
2 | test21 | 20 |
3 | test31 | 30 |
example2: set(table: 'tablename'; field: 'fieldname2' + 100; where: 'fieldname1' = "test21")
Результат:
tablename
id | fieldname1 | fieldname2 |
---|---|---|
1 | test11 | 10 |
2 | test21 | 120 |
3 | test31 | 30 |
Доступен в секциях: Код действия.
=: setList(table: ''; cycle: ; hash: ; field: '' = ; where: '' = ; log: )
Изменяет значение в нескольких строках в полях field:
в таблице table:
. Ко всем полям, попадающим в диапазон применяется одинаковое изменение. Применимо только для изменения полей расположенных в строчной части.
Обязательные параметры
table — name-параметр name таблицы, в которой изменяются данные.
field — name-параметр поле в таблице table:
, в котором изменяются данные, а также его значение.
field:
в таблице table:
.'fieldname' + Y
(добавить) или 'fieldname' - Y
(вычесть), 'fieldname' * Y
(умножить) и 'fieldname' / Y
(разделить), а также аналогичные действия с процентами 'fieldname' + 2%
.=
— +
или -
.Если передать строковое значение *NONE*
то параметр будет отключен: field: 'field_name' = "*NONE*"
.
Необязательные параметры
cycle — число, одно или список, определяет цикл, если таблица table:
является расчетной в цикле.
hash — строка, hash таблицы для выполнения действия во временной таблице.
where — name-параметр условие выбора строки в строчной части. Левая часть определяет поле сравнения в таблице table:
, а правая — значение сравнения.
where:
, то выборка осуществляется на пересечении их условий, применяемых слева направо.Если в
were:
передать значение*ALL*
, то этотwhere:
будет выключен! Это можно сделать через отдельную строку, например:
=: setList(table: 'table_name'; field: 'field_name' = "new_value"; where: 'search_field' = $if)
if: if(condition: #connected_field = ""; then: "*ALL*"; else: #connected_field)
Список из одного значения ["*ALL*"]
будет обработан так же как и "*ALL*"
.
true
для добавления операции во внутреннюю таблицу логирования.Если в
log:
передать"строку"
вместоtrue
, то в логе вместоСкрипт
будет записана переданная строка.
Пример 1:
tablename
id | fieldname1 | fieldname2 |
---|---|---|
1 | test11 | test12 |
2 | test21 | test22 |
3 | test31 | test23 |
example1: setlist(table: 'tablename'; field: 'fieldname1' = "ZZZ"; where: 'id' >= 2)
Результат:
tablename
id | fieldname1 | fieldname2 |
---|---|---|
1 | test11 | test12 |
2 | ZZZ | test22 |
3 | ZZZ | test23 |
Пример 2:
tablename
id | fieldname1 | fieldname2 |
---|---|---|
1 | test11 | 10 |
2 | test21 | 20 |
3 | test31 | 30 |
example2: set(table: 'tablename'; field: 'fieldname2' - 10%; where: 'id' < 3)
Результат:
tablename
id | fieldname1 | fieldname2 |
---|---|---|
1 | test11 | 9 |
2 | test21 | 18 |
3 | test31 | 30 |
Доступен в секциях: Код действия.
=: setListExtended(table: ''; cycle: ; hash: ; field: '' = ; where: '' = ; log: true)
Изменяет значения в нескольких строках и полях таблицы одновременно. К строкам применяются разные значения в соответствии со списками переданными в правую часть field:
.
Обязательные параметры
table — name-параметр name таблицы, в которой изменяются данные.
field — name-параметр поле в таблице table:
в виде 'field_name'
= + - * /
список или одно значение.
field:
представлен в виде списка, изменение будет применено построчно в соответствии со списком в where:
.field:
представляет собой одно значение, то в каждую изменяемую строку будет установлено это значение.field:
меньше другого и меньше количества изменяемых строк, то в качестве недостающих значений будет выставлен null
.Если передать строковое значение *NONE*
то параметр будет отключен: field: 'field_name' = "*NONE*"
.
Необязательные параметры
cycle — число, одно или список, определяет цикл, если таблица table:
является расчетной в цикле.
hash — строка, для изменения во временных таблицах.
where — name-параметр, условие выбора строки в строчной части. Левая часть определяет поле сравнения в таблице table:
, а правая — значение сравнения. Множественный параметр.
field:
. Таким образом изменения формируются для множества строк сразу.Если передать строковое значение *ALL*
параметр будет отключен: where: 'field_name' = "*ALL*"
.
log — true
для добавления операции во внутреннюю таблицу логирования.
Если в
log:
передать"строку"
вместоtrue
, то в логе вместоСкрипт
будет записана переданная строка.
Пример:
test
id | a | b | c |
---|---|---|---|
1 | q | 10 | z |
2 | w | 20 | x |
3 | e | 30 | c |
4 | e | 30 | c |
5 | e | 30 | c |
example: setListExtended(table: 'test'; field: 'a' = $listA; field: 'b' + $listB; field: 'c' = "z"; where: 'id' = $listId)
listA: listCreate(item: "r"; item: "t"; item: "y")
listB: listCreate(item: 3; item: 2; item: 1)
listId: listCreate(item: 1; item: 2; item: 3)
// Результат: Таблица изменена.
test
id | a | b | c |
---|---|---|---|
1 | r | 13 | z |
2 | t | 22 | z |
3 | y | 31 | z |
4 | e | 30 | c |
5 | e | 30 | c |
Доступен в секциях: Код действия
=: insert(table: ''; cycle: ; hash: ; field: '' = ; inserts: "inserts"; after: ; log: true)
Функция действия — добавляет одну строку в целевую таблицу.
Обязательные параметры
Необязательные параметры
field — в формате 'name' = "значение"
, заполняемые при вставке поля.
field:
будут рассчитаны в соответствии со своей секцией кода или дефолтных значений.Если передать строковое значение *NONE*
то параметр будет отключен: field: 'field_name' = "*NONE*"
.
cycle — определяет цикл, если таблица table:
является расчетной в цикле.
table:
находится в дереве.hash — строка, hash таблицы для выполнения действия во временных таблиц.
inserts — имя переменной, в которую будет добавлен лист с id вставленных строк в результате операции.
after — число, для таблиц сортируемых по n
— id строки, после которой вставить новую.
0
то это означает, что перед всеми имеющимися строками.fields — ассоциативный массив, в качестве ключей которого выступают name
полей.
log — true
для добавления операции во внутреннюю таблицу логирования.
Если в
log:
передать"строку"
вместоtrue
, то в логе вместоСкрипт
будет записана переданная строка.
Пример:
tablename
id | fieldname1 | fieldname2 |
---|---|---|
1 | test11 | test12 |
2 | test21 | test22 |
3 | test31 | test23 |
example: while(action: $insert; action: $showid)
insert: insert(table: 'tablename'; field: 'fieldname1' = "test"; field: 'fieldname2' = "globcalcs"; inserts: "shownewid")
showid: $#shownewid
// Результат: Добавлена строка, код возвращает значение [4]
tablename
id | fieldname1 | fieldname2 |
---|---|---|
1 | test11 | test12 |
2 | test21 | test22 |
3 | test31 | test23 |
4 | xxx | yyy |
Доступен в секциях: Код действия.
=: insertList(table: ''; cycle: ; hash: ; fields: ; field: '' = ; inserts: "inserts"; after: ; log: true)
Добавляет несколько строк в таблицу table:
с указанием значений полей field:
Обязательные параметры
table — name-параметр, name таблицы, в которую добавляются строки.
field — в формате 'name' = "значение"
. Дополняет и заменяет, если повторяется name
указанное в fields:
. Множественный параметр.
Если в значение
передан список, то будет добавлено количество строк по количеству элементов в списке. Каждая добавленная строка будет 1 к 1 содержать значение из переданного списка.
Если в вызове несколько field
и в одном список а в другом значением выступает одно значение
Если передать строковое значение *NONE*
то параметр будет отключен: field: 'field_name' = "*NONE*"
.
Необязательные параметры
cycle — число, одно или список, определяет цикл, если таблица table:
является расчетной в цикле.
hash — строка, hash таблицы для выполнения действия во временных таблиц.
fields — ассоциативный массив, в качестве ключей которого выступают name
полей, значения — списки для построчного заполнения добавляемых строк.
Или список ассоциативных массивов. Любой из вариантов.
inserts — имя переменной, в которую будет добавлен список с id добавленных в результате операции строк.
after — число, для таблиц сортируемых по n
— id строки, после которой вставить новые строки.
0
то это означает, что перед всеми имеющимися строками.log — true
для добавления операции во внутреннюю таблицу логирования.
Если в
log:
передать"строку"
вместоtrue
, то в логе вместоСкрипт
будет записана переданная строка.
Пример:
tablename
id | fieldname1 | fieldname2 |
---|---|---|
1 | test11 | test12 |
2 | test21 | test22 |
3 | test31 | test23 |
example: while(action: $insert; action: $showid)
insert: insertList(table: 'tablename'; fields: $row1; field: 'fieldname2' = $list2; inserts: "shownewid")
row1: rowCreate(field: "fieldname1" = $list1)
list1: listCreate(item: "XX"; item: "XXX")
list2: listCreate(item: "YY"; item: "YYY")
showid: $#shownewid
// Результат: Добавлены строки, код возвращает значение [4,5]
example2: while(action: $insert2; action: $showid2)
insert2: insertList(table: 'tablename'; fields: $selectRowList; inserts: "shownewid2")
selectRowList: selectRowList(table: 'table_xy'; field: 'xxx'; field: 'yyy')
showid2: $#shownewid2
// Результат: Добавлены строки, код возвращает значение [4,5]
tablename
id | fieldname1 | fieldname2 |
---|---|---|
1 | test11 | test12 |
2 | test21 | test22 |
3 | test31 | test23 |
4 | XX | YY |
5 | XXX | YYY |
Доступен в секциях: Код действия.
=: delete(table: ''; cycle: ; hash: ; where: '' = ; log: true)
Удаляет строку в таблице table:
соответствующую условиям where:
.
Обязательные параметры
table — name-параметр name таблицы, из которой берутся данные.
where — name-параметр условие выбора строки в строчной части. Левая часть определяет поле сравнения в таблице table:
, а правая — значение сравнения.
where:
, то выборка осуществляется на пересечении их условий, применяемых слева направо.Если в
were:
передать значение*ALL*
то этотwhere:
будет выключен! Это можно сделать через отдельную строку, например:
=: delete(table: 'table_name'; where: 'search_field' = $if)
if: if(condition: #connected_field = ""; then: "*ALL*"; else: #connected_field)
Список из одного значения ["*ALL*"]
будет обработан так же как и "*ALL*"
.
Необязательные параметры
cycle — число, одно или список, определяет цикл, если таблица table:
является расчетной в цикле.
hash — строка, для выполнения действия в временной таблице.
log — true
для добавления операции во внутреннюю таблицу логирования.
Если в
log:
передать"строку"
вместоtrue
, то в логе вместоСкрипт
будет записана переданная строка.
true
. Позволяет удалить строку, даже в том случае если у таблицы установлен параметр удаления Скрывать.Пример:
tablename
id | fieldname1 | fieldname2 |
---|---|---|
1 | 10 | 20 |
2 | 10 | 20 |
3 | 10 | 20 |
example: delete(table: 'tablename'; where: 'id' = 2)
Результат:
tablename
id | fieldname1 | fieldname2 |
---|---|---|
1 | 10 | 20 |
3 | 10 | 20 |
Доступен в секциях: Код действия.
=: deleteList(table: ''; cycle: ; hash: ; where: '' = ; log: true)
Удаляет несколько строк в таблице table:
соответствующие условиям where:
.
Обязательные параметры
table — name-параметр, name таблицы из которой берутся данные.
where — name-параметр, условие выбора строк в строчной части. Левая часть определяет поле сравнения в таблице table:
, а правая — значение сравнения.
where:
, то выборка осуществляется на пересечении их условий, применяемых слева направо.were:
передать значение *ALL*
то этот where:
будет выключен!Если передать строковое значение *ALL*
параметр будет отключен: where: 'field_name' = "*ALL*"
.
Необязательные параметры
cycle — число, одно или список, определяет цикл, если таблица table:
является расчетной в цикле.
hash — строка, для выполнения удаления строк в временной таблице.
log — true
для добавления операции во внутреннюю таблицу логирования.
Если в
log:
передать"строку"
вместоtrue
, то в логе вместоСкрипт
будет записана переданная строка.
true
. Позволяет удалить строку, даже в том случае если у таблицы установлен параметр удаления Скрывать.Пример:
tablename
id | fieldname1 | fieldname2 |
---|---|---|
1 | 10 | 20 |
2 | 10 | 20 |
3 | 10 | 20 |
example: deleteList(table: 'tablename'; where: 'id' >= 2)
Результат:
tablename
id | fieldname1 | fieldname2 |
---|---|---|
1 | 10 | 20 |
Доступен в секциях: Код действия.
=: duplicate(table: ''; cycle: ; hash: ; field: '' = ; where: '' = ; after: ; log: true)
Дублирует одну строку в таблице table:
. Применим только в строчной части.
Обязательные параметры
table — name-параметр name таблицы, в которой производится дублирование.
field — name-параметр поле в таблице table:
в котором изменяются данные при дублировании, а также его значение по формату field: 'fieldname' = "value"
.
field:
в таблице table:
.Необязательные параметры
cycle — число, одно или список, определяет цикл, если таблица table:
является расчетной в цикле.
hash — строка, hash таблицы для выполнения действия во временных таблиц.
where — name-параметр условие выбора строки в строчной части. Левая часть определяет поле сравнения в таблице table:
, а правая — значение сравнения.
where:
, то выборка осуществляется на пересечении их условий, применяемых слева направо.order:
.were:
передать значение *ALL*
то этот where:
будет выключен!inserts — имя переменной, в которую будет добавлен лист с id вставленных строк в результате операции.
while
с итераторами в одной секции кода.after — число, для таблиц сортируемых по n
— id строки, после которой вставить дублированную.
0
то это означает, что перед всеми имеющимися строками.log — true
для добавления операции во внутреннюю таблицу логирования.
Если в
log:
передать"строку"
вместоtrue
, то в логе вместоСкрипт
будет записана переданная строка.
Пример:
tablename
id | fieldname1 | fieldname2 |
---|---|---|
1 | test11 | test12 |
2 | test21 | test22 |
3 | test31 | test23 |
example: duplicate(table: 'tablename'; field: 'fieldname1' = "ZZZ"; where: 'id' = 3)
Результат:
tablename
id | fieldname1 | fieldname2 |
---|---|---|
1 | test11 | test12 |
2 | test21 | test22 |
3 | test31 | test23 |
4 | ZZZ | test23 |
Доступен в секциях: Код действия.
=: duplicateList(table: ''; cycle: ; hash: ; field: '' = ; where: '' = ; after: ; log: true)
Дублирует несколько строк в таблице table:
. Применим только в строчной части.
Обязательные параметры
table — name-параметр name таблицы, в которой производится дублирование.
field — name-параметр поле в таблице table:
в котором изменяются данные при дублировании, а также его значение по формату field: 'fieldname' = "value"
.
field:
в таблице table:
.Необязательные параметры
cycle — число, одно или список, определяет цикл, если таблица table:
является расчетной в цикле.
hash — строка, hash таблицы для выполнения действия во временной таблице.
where — name-параметр условие выбора строки в строчной части. Левая часть определяет поле сравнения в таблице table:
, а правая — значение сравнения.
where:
, то выборка осуществляется на пересечении их условий, применяемых слева направо.order:
.were:
передать значение *ALL*
то этот where:
будет выключен!inserts — имя переменной, в которую будет добавлен лист с id новых строк.
after — число, для таблиц сортируемых по n
— id строки, после которой вставить новые.
0
то это означает, что перед всеми имеющимися строками.log — true
для добавления операции во внутреннюю таблицу логирования.
Если в
log:
передать"строку"
вместоtrue
, то в логе вместоСкрипт
будет записана переданная строка.
Пример:
tablename
id | fieldname1 | fieldname2 |
---|---|---|
1 | test11 | test12 |
2 | test21 | test22 |
3 | test31 | test23 |
example: duplicateList(table: 'tablename'; field: 'fieldname1' = "ZZZ"; where: 'id' >= 2)
Результат:
tablename
id | fieldname1 | fieldname2 |
---|---|---|
1 | test11 | test12 |
2 | test21 | test22 |
3 | test31 | test23 |
4 | ZZZ | test22 |
5 | ZZZ | test23 |
Доступен в секциях: Код действия.
=: pin(table: ''; cycle: ; hash: ; field: ''; where: '' = ; log: true)
Устанавливает фиксацию значения для одного поля с активной секцией кода.
Обязательные параметры
table — name-параметр name таблицы, в которой производится действие.
field — name-параметр поле в таблице table:
.
Необязательные параметры
cycle — число, одно или список, определяет цикл, если таблица table:
является расчетной в цикле.
hash — строка, hash таблицы для выполнения действия во временных таблиц .
where — name-параметр условие выбора строки в строчной части. Левая часть определяет поле сравнения в таблице table:
, а правая — значение сравнения.
where:
, то выборка осуществляется на пересечении их условий, применяемых слева направо.were:
передать значение *ALL*
то этот where:
будет выключен!Если передать строковое значение *ALL*
параметр будет отключен: where: 'field_name' = "*ALL*"
.
log — true
для добавления операции во внутреннюю таблицу логирования.
Если в
log:
передать"строку"
вместоtrue
, то в логе вместоСкрипт
будет записана переданная строка.
Пример:
tablename
id | fieldname1 | fieldname2 |
---|---|---|
1 | 10 | 20 |
2 | 10 | 20 |
3 | 10 | 20 |
example: pin(table: 'tablename'; field: 'fieldname1'; where: 'id' = 2)
Результат:
tablename
id | fieldname1 | fieldname2 |
---|---|---|
1 | 10 | 20 |
2 | 10 [HAND] | 20 |
3 | 10 | 20 |
Доступен в секциях: Код действия.
=: pinList(table: ''; cycle: ; hash: ; field: ''; where: '' = ; log: true)
Устанавливает фиксацию значения для поля с активной секцией кода в нескольких строках. Вне строчной части не применяется.
Обязательные параметры
table — name-параметр name таблицы, в которой производится действие.
field — name-параметр поле в таблице table:
.
Необязательные параметры
cycle — число, одно или список, определяет цикл, если таблица table:
является расчетной в цикле.
hash — строка, hash таблицы для выполнения действия во временных таблиц.
where — name-параметр условие выбора строки в строчной части. Левая часть определяет поле сравнения в таблице table:
, а правая — значение сравнения.
where:
, то выборка осуществляется на пересечении их условий, применяемых слева направо.were:
передать значение *ALL*
то этот where:
будет выключен!Если передать строковое значение *ALL*
параметр будет отключен: where: 'field_name' = "*ALL*"
.
log — true
для добавления операции во внутреннюю таблицу логирования.
Если в
log:
передать"строку"
вместоtrue
, то в логе вместоСкрипт
будет записана переданная строка.
Пример:
tablename
id | fieldname1 | fieldname2 |
---|---|---|
1 | 10 | 20 |
2 | 10 | 20 |
3 | 10 | 20 |
example: pinList(table: 'tablename'; field: 'fieldname1'; where: 'id' >= 2)
Результат:
tablename
id | fieldname1 | fieldname2 |
---|---|---|
1 | 10 | 20 |
2 | 10 [HAND] | 20 |
3 | 10 [HAND] | 20 |
Доступен в секциях: Код действия.
=: clear(table: ''; cycle: ; hash: ; field: ''; where: '' = ; log: true)
Сбрасывает фиксацию значение для полей с активной секцией кода к расчетным значениям.
Обязательные параметры
table — name-параметр name таблицы, в которой производится действие.
field — name-параметр поле в таблице table:
.
Необязательные параметры
cycle — число, одно или список, определяет цикл, если таблица table:
является расчетной в цикле.
hash — строка, hash таблицы для выполнения действия во временной таблице.
where — name-параметр условие выбора строки в строчной части. Левая часть определяет поле сравнения в таблице table:
, а правая — значение сравнения.
where:
, то выборка осуществляется на пересечении их условий, применяемых слева направо.were:
передать значение *ALL*
то этот where:
будет выключен!Если передать строковое значение *ALL*
параметр будет отключен: where: 'field_name' = "*ALL*"
.
log — true
для добавления операции во внутреннюю таблицу логирования.
Если в
log:
передать"строку"
вместоtrue
, то в логе вместоСкрипт
будет записана переданная строка.
Пример:
tablename
id | fieldname1 | fieldname2 |
---|---|---|
1 | 10 | 20 |
2 | 12 [HAND] | 20 |
3 | 10 | 20 |
example: clear(table: 'tablename'; field: 'fieldname1'; where: 'id' = 2)
Результат:
tablename
id | fieldname1 | fieldname2 |
---|---|---|
1 | 10 | 20 |
2 | 10 | 20 |
3 | 10 | 20 |
Доступен в секциях: Код действия.
=: clearList(table: ''; cycle: ; hash: ; field: ''; where: '' = ; log: true)
Сбрасывает фиксацию значение для полей с активной секцией кода к расчетным значениям в нескольких строках.
Обязательные параметры
table — name-параметр name таблицы, в которой производится действие.
field — name-параметр поле в таблице table:
.
Необязательные параметры
cycle — число, одно или список, определяет цикл, если таблица table:
является расчетной в цикле.
hash — строка, для временных таблиц hash таблицы.
where — name-параметр условие выбора строки в строчной части. Левая часть определяет поле сравнения в таблице table:
, а правая — значение сравнения.
where:
, то выборка осуществляется на пересечении их условий, применяемых слева направо.were:
передать значение *ALL*
то этот where:
будет выключен!Если передать строковое значение *ALL*
параметр будет отключен: where: 'field_name' = "*ALL*"
.
log — true
для добавления операции во внутреннюю таблицу логирования.
Если в
log:
передать"строку"
вместоtrue
то в логе вместоСкрипт
будет записана переданная строка.
Пример:
tablename
id | fieldname1 | fieldname2 |
---|---|---|
1 | 10 | 20 |
2 | 12 [HAND] | 20 |
3 | 12 [HAND] | 20 |
example: clearList(table: 'tablename'; field: 'fieldname1'; where: 'id' >= 2)
Результат:
tablename
id | fieldname1 | fieldname2 |
---|---|---|
1 | 10 | 20 |
2 | 10 | 20 |
3 | 10 | 20 |
Доступен в секциях: Код действия.
=: restore(table: ''; cycle: ; hash: ; where: '' = ; log: true)
Восстанавливает строку в таблице table:
соответствующую условиям where:
осуществляя поиск среди скрытых.
Обязательные параметры
table — name-параметр name таблицы, из которой берутся данные.
where — name-параметр условие выбора строки в строчной части. Левая часть определяет поле сравнения в таблице table:
, а правая — значение сравнения.
where:
, то выборка осуществляется на пересечении их условий, применяемых слева направо.were:
передать значение *ALL*
то этот where:
будет выключен!Необязательные параметры
cycle — число, одно или список, определяет цикл, если таблица table:
является расчетной в цикле.
hash — строка, для выполнения действия в временной таблице.
log — true
для добавления операции во внутреннюю таблицу логирования.
Если в
log:
передать"строку"
вместоtrue
, то в логе вместоСкрипт
будет записана переданная строка.
Доступен в секциях: Код действия.
=: restoreList(table: ''; cycle: ; hash: ; where: '' = ; log: true)
Восстанавливает несколько строк в таблице table:
соответствующие условиям where:
среди скрытых строк.
Обязательные параметры
table — name-параметр, name таблицы из которой берутся данные.
where — name-параметр, условие выбора строк в строчной части. Левая часть определяет поле сравнения в таблице table:
, а правая — значение сравнения.
where:
, то выборка осуществляется на пересечении их условий, применяемых слева направо.were:
передать значение *ALL*
то этот where:
будет выключен!Необязательные параметры
cycle — число, одно или список, определяет цикл, если таблица table:
является расчетной в цикле.
hash — строка, для выполнения восстановления строк в временной таблице.
log — true
для добавления операции во внутреннюю таблицу логирования.
Если в
log:
передать"строку"
вместоtrue
, то в логе вместоСкрипт
будет записана переданная строка.
Пример:
tablename
id | fieldname1 | fieldname2 |
---|---|---|
1 | 10 | 20 |
example: restoreList(table: 'tablename'; where: 'id' >= 2)
Результат:
tablename
id | fieldname1 | fieldname2 |
---|---|---|
1 | 10 | 20 |
2 | 10 | 20 |
3 | 10 | 20 |
Доступен в секциях: Код действия.
=: execButton(table: ''; cycle: ; hash: ; field: ''; where: '' = ; order: '' asc)
Запускает выполнение кода-действия одной кнопки. Код выполняется из окружения кнопки, которая его содержит.
Обязательные параметры
field — name-параметр поле в таблице table:
.
table — name-параметр name таблицы, из которой берутся данные.
Необязательные параметры
cycle — число, одно или список, определяет цикл, если таблица table:
является расчетной в цикле.
hash — строка, для выполнения действия во временной таблице.
where — name-параметр условие выбора строки в строчной части. Левая часть определяет поле сравнения в таблице table:
, а правая — значение сравнения.
where:
, то выборка осуществляется на пересечении их условий, применяемых слева направо.order
.were:
передать значение *ALL*
то этот where:
будет выключен!order — name-параметр поле в таблице table:
, по которому будет осуществляется сортировка.
order:
, то сортировка будет осуществлена последовательно.var — "var" = "value"
создание переменой при вызове кода кнопки.
Доступен в секциях: Код действия.
=: execButtonList(table: ''; cycle: ; hash: ; field: ''; where: '' = ; order: '' asc; limit: )
Последовательно вызывает выполнение кодов кнопок подходящих по условиям. Коды выполняются из окружения кнопок.
Обязательные параметры
table — name-параметр name таблицы, из которой берутся данные.
field — name-параметр поле c кнопками в таблице table:
.
Необязательные параметры
cycle — число, одно или список, определяет цикл, если таблица table:
является расчетной в цикле.
hash — строка, для выполнения действия во временных таблицах.
where — name-параметр условие выбора строки в строчной части. Левая часть определяет поле сравнения в таблице table:
, а правая — значение сравнения.
where:
, то выборка осуществляется на пересечении их условий, применяемых слева направо.order:
.were:
передать значение *ALL*
то этот where:
будет выключен!order — name-параметр поле в таблице table:
, по которому будет осуществляется сортировка.
order:
, то сортировка будет осуществлена последовательно.limit — число, задает лимит выборки.
0
или ""
, то он будет отключен!var — "var" = "value"
создание переменой при вызове кода кнопки.
Доступен в секциях: Код действия.
=: reorder(table: ; ids: ; after: )
Изменяет порядок для n-сортируемых таблиц.
Обязательные параметры
table — name-параметр name таблицы, в которой производится изменение порядка.
ids — список из id перемещаемых строк в том порядке, в котором они должны располагаться.
Необязательные параметры
after — число, для таблиц сортируемых по n
— id строки, после которой вставить изменяемые id.
0
, то это означает, что перед всеми имеющимися строками.Доступен в секциях: Код действия.
=: linkToTable(table: ''; cycle: ; hash: ; title: ; filter: '' = ; field: '' = ; target: "iframe|blank|self|parent"; width: 800; refresh: false; header: true; footer: true)
Открывает указанную таблицу способом определенным в target
.
Обязательные параметры
Необязательные параметры
title — строка, заголовок, отображаемый в открытом окне для iframe
.
filter — name-параметр значение поля префильтра. Левая часть определяет поле, а правое его значение.
field — name-параметр значение поля строчной части. Левая часть определяет поле, а правое его значение. При наличии хотя бы одного параметра будет открыта строка добавления с введенными значениями переданных полей.
pointing — name-параметр поле в которое будет поставлен указатель при открытии таблицы.
refresh — определяет будет ли обновляться таблица-родитель при закрытии окна для варианта iframe
параметра target:
.
true
при необходимости обновить данные."recalculate"
— позволяет пересчитать таблицу источник даже если в ней не было изменений."reload"
— при возврате таблица источник будет перезагружена, как буд-то пользователь нажал обновить в браузере.false
.cycle — число, одно или список, определяет цикл, если таблица table:
является расчетной в цикле.
hash — строка, для открытия созданной ранее временной таблицы.
target — каким образом будет открыта таблица.
iframe
— в iframe поверх остальных окон.blank
— в новом окне (для корректной работы требуется разрешить открытие всплывающих окон в браузере)parent
— в базовом нижнем окне, все открытые вложенные окна будут закрыты.self
— в текущем окне.self
width — определяет ширину окна в пикселях для варианта iframe
параметра target:
.
header — определяет будет ли показан хедер в открытом окне при показе в iframe
.
false
при необходимости скрыть.true
.footer — определяет будет ли показан футер в открытом окне при показе в iframe
.
false
при необходимости скрыть.true
.topbuttons — false
, при открытии окна в iframe: кнопка печати, управления видимостью полей и csv будут скрыты.
bottombuttons — false
, при открытии окна в iframe: кнопки управления внизу окна будут скрыты.
hidedots — false
, если необходимо отменить скрытие кнопки с точками в нижнем правом углу. Принимается равным true
по умолчанию, при открытии таблицы в iframe.
example: linkToTable(table: 'tablename'; title: "Открываемая таблица"; filter: 'fl_id' = 10; field: 'fieldname' = "Данные передаваемые в поле"; target: "iframe"; width: "80vw"; refresh: true)
Доступен в секциях: Код действия.
=: linkToScript(uri: "http://"; post: "" = ; title: ; target: "iframe|blank|self|parent"; width: 800; refresh: false)
Открывает окно и вызывает сторонний скрипт с передачей ему значений через POST
НЕ ИСПОЛЬЗОВАТЬ В CRON!
Обязательные параметры
Необязательные параметры
post — строка, параметры, передаваемые скрипту в формате POST. Множественный параметр.
title — строка, заголовок, отображаемый в открытом окне для iframe
.
target — каким образом будет открыта таблица.
iframe
— в iframe поверх остальных окон.blank
— в новом окне (для корректной работы требуется разрешить открытие всплывающих окон в браузере)parent
— в базовом нижнем окне, все открытые вложенные окна будут закрыты.self
— в текущем окне.self
width — определяет ширину окна в пикселях для варианта iframe
параметра target:
.
refresh — определяет, будет ли обновляться таблица-родитель при закрытии окна для варианта iframe
параметра target:
.
true
при необходимости обновить данные."recalculate"
— позволяет пересчитать таблицу источник даже если в ней не было изменений."reload"
— при возврате таблица источник будет перезагружена, как буд-то пользователь нажал обновить в браузере.false
.example: linkToScript(uri: "https://host.com"; title: "host.com"; target: "iframe"; width: 800; refresh: false)
Доступен в секциях: Код действия.
=: linkToDataTable(table: ''; title: ; width: 800; height: "80vh"; data: $rowList; params: $row; refresh: false; header: true; footer: true; hide: false)
Вызывает в веб-интерфейсе пользователя окно с временной таблицей и при необходимости передает в нее подготовленные данные.
Функция может быть вызвана из кода с параметром hide: true
для расчета через временную таблицу.
Обязательные параметры
Необязательные параметры
title — строка, заголовок окна.
width — определяет ширину окна в пикселях.
data — список ассоциированных массивов для заполнения строчной части таблицы. В качестве ключей должны быть name
полей строчной части.
params — ассоциированный массив для заполнения нестрочных частей открываемой таблицы. В качестве ключей должны быть name
полей нестрочной части таблицы.
pointing — name-параметр поле в которое будет поставлен указатель при открытии таблицы.
height — определяет высоту окна в пикселях для варианта iframe
параметра target:
.
"80vh"
если требуется указать размер относительно окна браузера в процентах.refresh — определяет, будет ли обновляться таблица-родитель при закрытии окна для варианта iframe
параметра target:
.
true
при необходимости обновить данные."recalculate"
— позволяет пересчитать таблицу источник даже если в ней не было изменений."reload"
— при возврате таблица источник будет перезагружена, как буд-то пользователь нажал обновить в браузере.false
.header — определяет будет ли показан хедер в открытом окне при показе в iframe
.
false
при необходимости скрыть.true
.footer — определяет будет ли показан футер в открытом окне при показе в iframe
.
false
при необходимости скрыть.true
.target — каким образом будет открыта таблица.
iframe
— в iframe поверх остальных окон.blank
— в новом окне (для корректной работы требуется разрешить открытие всплывающих окон в браузере)parent
— в базовом нижнем окне, все открытые вложенные окна будут закрыты.self
— в текущем окне.iframe
topbuttons — false
, при открытии окна в iframe: кнопка печати, управления видимостью полей и csv будут скрыты.
bottombuttons — false
, при открытии окна в iframe: кнопки управления внизу окна будут скрыты.
hide — true
скрывает показ временной таблицы для пользователя. Используется для вычисления через временную таблицу.
hide: true; генерирует нагрузку на базу данных, тк временные таблицы записываются в БД после расчета и удаляются через час.
false
, если необходимо отменить скрытие кнопки с точками в нижнем правом углу. Принимается равным false
по умолчанию, при открытии таблицы в iframe.example: linkToDataTable(table: 'tmp_test'; title: "Окно временного расчета"; width: 800; height: "80vh"; data: $rowList; params: $row; refresh: false; header: true; footer: true)
rowList: jsonExtract(text: '[{"field1":1, "field2":2},{"field1":3, "field2":4}]')
row: jsonExtract(text: '{"f_summ_1":4, "f_summ_2":6}')
// Результат:
Окно временного расчета
id | field1 | field2 |
---|---|---|
1 | 1 | 2 |
2 | 3 | 4 |
f | 4 | 6 |
sel: selectRowList(table: 'tmp_table'; hash: $hash; field: 'data'; field: 'summ'; order: 'id' asc)
~hash: linkToDataTable(table: 'tmp_table'; params: $row_hide; hide: true)
row_hide: "здесь параметры передаваемые в tmp_table"
Доступен в секциях: Код действия.
=: linkToDataText(title: ; text: )
Вызывает в веб-интерфейсе окно сообщения с текстовым содержимым.
Обязательные параметры
Необязательные параметры
close — true
закрывает родительсткое окно, после закрытия всплывающего окна.
width — ширина всплывающего окна в пикселях или относительная.
height — высота всплывающего окна в пикселях или относительная.
example: linkToDataText(title: "Внимание"; text: "Ваше изменение принято")
Доступен в секциях: Код действия.
=: linkToDataHtml(title: ; html: )
Вызывает в веб-интерфейсе окно с html содержимым.
Обязательные параметры
Необязательные параметры
close — true
закрывает родительское окно после закрытия всплывающего окна.
width — ширина окна в пикселях.
height — высота всплывающего окна в пикселях или относительная.
scripts — (только в PRO!) list
url js-скриптов, подключаемых с автоматической поверкой до загрузки указанного html
на страницу.
Доступен в секциях: Код действия.
=: linkToPanel(table: ''; id: ; field: '' = ; refresh: false)
Открывает строку таблицы в виде панели.
Обязательные параметры
Необязательные параметры
id — число, id открываемой строки.
field — name-параметр поле в таблице table:
. При передаче значения в правую часть выражения подставляет это значение в поле при открытии панели. Множественный параметр.
refresh — определяет будет ли обновляться таблица-родитель при закрытии окна.
true
при необходимости обновить данные."recalculate"
— позволяет пересчитать таблицу источник даже если в ней не было изменений."reload"
— при возврате таблица источник будет перезагружена, как буд-то пользователь нажал обновить в браузере.false
.bfield — используется вместо id
в синтаксисе bfield: 'field_name' = VALUE
.
hash — хэш, если открывается строка из временной таблицы.
fields — список из name
полей для ограничения загрузки полей в панель при ее открытии.
titles — возможность задать кастомные заголовки полей при открытии панели:
row
:{
"name_field_1": "Custom name for field 1",
"name_field_2": "Custom name for field 2",
"name_field_3": "Custom name for field 3"
}
rowlist
:= : linkToPanel(table: 'simple'; titles: $rowList; id: #id; refresh: false; columns: 1)
rowList: rowListCreate(field: "name" = $listOfNames; field: "title" = $listOfTitles)
listOfNames: listCreate(item: "select_1"; item: "select_2")
listOfTitles: listCreate(item: "Name 1"; item: "Name 2")
columns — 1
или 2
(по умолчанию). Изменяет отображение количества колонок при открытии панели.
example: linkToPanel(table: 'tablename'; id: $num; refresh: true)
num: 10
// Результат: открывает строку id=10 таблицы tablename в панели.
Доступен в секциях: Код действия.
=: linkToEdit(title: ""; table: ''; cycle: ; field: ''; id: ; refresh: false)
Открывает всплывающее окно редактирования содержимого поля.
Обязательные параметры
table — name-параметр name таблицы, из которой берутся данные.
field — name-параметр поле в таблице table:
.
title — заголовок окна.
Необязательные параметры
id — id строки, если открывается поле, находящееся в строчной части таблицы.
cycle — число, определяет цикл, если таблица table:
является расчетной в цикле.
hash — строка, для временных таблиц hash таблицы.
refresh — определяет будет ли обновляться таблица-родитель при закрытии окна.
true
при необходимости обновить данные.false
."reload"
— при возврате таблица источник будет перезагружена, как буд-то пользователь нажал обновить в браузере."recalculate"
— пересчитать таблицу источник, даже если в ней небыло изменений.Доступен в секциях: Код действия.
=: linkToPrint(template: ; data: $data; text: )
Вызывает печать по шаблону. Полный механизм действия описан в разделе Печать.
Вместо template
можно передать text
, тогда замены будут произведены в нем. Таким образом можно формировать шаблон печати кодом.
Доступен в секциях: Код действия.
=: linkToButtons(title: ; html: ; buttons: ; refresh: false; close: false)
Вызывает панель с кнопками. При нажатии на кнопку выполняется соответствующий ей код-действия.
Обязательные параметры
title — заголовок окна.
buttons — список ассоциативных массивов, каждая строка которого является кнопкой.
Структура row
:
text
— строка надпись на кнопке. Обязательный параметр.
code
— строка код, который будет выполнен при нажатии кнопки. Может быть передан name
поля в текущей таблице, из которого будет взят код-действия для выполнения. Обязательный параметр.
code обязательно должен быть передан именно строкой
code: "....."
, вариант, когда вы ссылаетесь на последующий код не работает.
icon
— строка название иконки fontawersome 4
без fa-
background
— строка название цвета web_color
или HEX #ddd
.
vars
— ассоциативный массив с ключами и значениями переменных, которые будут переданы в выполняемый код.
refresh
— позволяет указать refresh конкретной кнопке в стеке.
Необязательные параметры
html — html, который будет показан в панели с кнопками.
refresh — true
позволяет обновить таблицу после выполнения кнопки. "recalculate"
— позволяет пересчитать таблицу источник даже если в ней не было изменений. "reload"
— при возврате таблица источник будет перезагружена, как буд-то пользователь нажал обновить в браузере.
close — true
позволяет закрыть таблицу источник если она открыта в iframe после выполнения кнопки. Необходим так как закрыть окно после выполнения в настройках кнопки вызывающей linkToButtons
или linkToInput приводит к их неработоспособности!
=: linkToButtons(title: "Красная или синяя"; buttons: $buttons; width: 400; html: "ТЫ — НЕО")
buttons: listCreate(item: $btn1; item: $btn2)
btn1: rowCreate(field: "text" = "Красная"; field: "code" = $code1; field: "icon" = "link"; field: "background" = "seashell"; field: "color"="red"; field: "vars" = $vars1; field: "refresh" = false)
vars1: rowCreate(field: "var1" = "Вы выбрали красную таблетку")
code1: strAdd(str: '=: linkToDataText(title: "ИИИ"; text: $#var1)')
btn2: rowCreate(field: "text" = "Синяя"; field: "code" = "name_field_in_table"; field: "icon" = "link"; field: "background" = "eliceblue"; field: "vars" = $vars2; field: "refresh" = true)
vars2: rowCreate(field: "var1" = "Вы выбрали синюю таблетку")
// text и code — обязательные параметры в row, остальные нет.
// Результат: Активная панель с двумя кнопками, нажатие на каждой из которых открывает панель с текстом.
Доступен в секциях: Код действия.
=: linkToInput(title: ; html: ; code: ; type: ; var: ; value: ; refresh: true; button: "Сохранить"; close: false)
Вызывает панель с полем ввода. При нажатии на кнопку подтверждения выполняет код переданный в code как код-действия.
Введенное в поле ввода значение будет передано в переменную input
.
Обязательные параметры
title — строка, заголовок окна.
code — строка, код, который будет выполнен после ввода данных.
Или строка — name
поля в этой же таблице из которого будет взят код-дейcтвия.
code обязательно должен быть передан именно строкой
code: "....."
, вариант, когда вы ссылаетесь на последующий код не работает.
Может быть передан в таком синтаксисе:
=: exec(code: $code)
```code:totum
=: set(table: 'table'; field: 'field' = $value)
value: "some_value"
```
В этом случае код внутри блока code
обрабатывается как текст и его $
и $#
не пересекаются с кодом текущего поля. :totum
означает подсветить как код тотума.
В code:
возможно передать name
другого поля в текущей таблице.
Также в code
можно использовать обращение @table.field
или @table.field.key_field[key]
. В этом случае если кликнуть на @...
будет показана кнопка, открывающая на редактирование целевой код во всплывающем окне.
Необязательные параметры
type — строка, тип html input
обрабатываемый браузером:
tel
— номер телефона (при вводе на мобильных устройствах включается цифровая клавиатура).password
— пароль (прячет вводимые символы под звездочкой - '*').number
— число (добавляет элементы управления - стрелочки).datetime-local
— локальные дата и время (добавляет элементы управления: календарь и часы).month
— месяц и год (добавляет элементы управления и календарь).week
— номер недели (добавляет элементы управления и календарь).time
— время, часы и минуты (добавляет элементы управления).button — строка, надпись на кнопке с подтверждением ввода.
var — множественный параметр, передается как "var_name" = var_value
. Параметры, которые могут быть использованы в code.
value — строка, значение по умолчанию, которое будет передано в открытый инпут.
refresh — true
позволяет обновить таблицу после выполнения кнопки. "recalculate"
— позволяет пересчитать таблицу источник даже если в ней не было изменений. "reload"
— при возврате таблица источник будет перезагружена, как буд-то пользователь нажал обновить в браузере.
close — true
позволяет закрыть таблицу источник если она открыта в iframe после выполнения кнопки. Необходим, так как закрыть окно после выполнения в настройках кнопки вызывающей linkToButtons или linkToInput
приводит к их неработоспособности!
html — html, который будет показан в панели с полем ввода. Если html имеет textarea
(может быть скрытой) с id="ttmInput"
, то стандартное поле ввода будет отключено, а в переменную $#input
передано значение из textarea
. Таким образом вы можете использовать собственную js-форму.
<textarea id="ttmInput">{"name":111, "name2":2223}</textarea>
example: linkToInput(html: "Введите номер заказа"; title: "Открыть заказ по номеру"; code: $stradd; refresh: false; button: "Открыть")
stradd: strAdd(str: '=: linkToTable(table: "sostav_zakaza"; cycle: $number; target: "top")'; str: $#nl; str: 'number: select(table: "novye_zakazy"; field: "id"; where: "nomer" = $#input)')
// Результат: Окошко с пустым полем для ввода, надписью Введите номер заказа и кнопками «Отмена» и «Открыть».
Доступен в секциях: Код действия.
=: linkToInputSelect(title: ; code: ; codeselect: ; var: ; width: ; value: ; refresh: ; button: ; close: ; multiple: )
Вызывает панель с полем ввода. При нажатии на кнопку подтверждения выполняет код переданный в code как код-действия.
Введенное в поле ввода значение будет передано в переменную input
.
Обязательные параметры
title — строка, заголовок окна.
code — строка, код, который будет выполнен после ввода данных.
Или строка — name
поля в этой же таблице из которого будет взят код-дейcтвия.
code обязательно должен быть передан именно строкой
code: "....."
, вариант, когда вы ссылаетесь на последующий код не работает.
Может быть передан в таком синтаксисе:
=: exec(code: $code)
```code:totum
=: set(table: 'table'; field: 'field' = $value)
value: "some_value"
```
В этом случае код внутри блока code
обрабатывается как текст и его $
и $#
не пересекаются с кодом текущего поля. :totum
означает подсветить как код тотума.
В code:
возможно передать name
другого поля в текущей таблице.
Также в code
можно использовать обращение @table.field
или @table.field.key_field[key]
. В этом случае если кликнуть на @...
будет показана кнопка, открывающая на редактирование целевой код во всплывающем окне.
codeselect — строка, код-селекта. Требования аналогичны к code.
Необязательные параметры
button — строка, надпись на кнопке с подтверждением ввода.
var — множественный параметр, передается как "var_name" = var_value
. Параметры, которые могут быть использованы в code.
value — строка, значение по умолчанию, которое будет передано в открытый инпут.
refresh — true
позволяет обновить таблицу после выполнения кнопки. "recalculate"
— позволяет пересчитать таблицу источник даже если в ней не было изменений. "reload"
— при возврате таблица источник будет перезагружена, как буд-то пользователь нажал обновить в браузере.
close — true
позволяет закрыть таблицу источник если она открыта в iframe после выполнения кнопки. Необходим, так как закрыть окно после выполнения в настройках кнопки вызывающей linkToButtons или linkToInput
приводит к их неработоспособности!
multiple — true
, если селект является множественным.
"force"
— в этом случае для одинарного селекта при выборе значения сразу будет выполнен code
.Доступен в секциях: Код действия.
=: linkToDataJson(title: ; data: )
Открывает окно json-editor
с передачей в него содержимого из data:
.
Обязательные параметры
data — данные для открытия в json-editor
.
title — заголовок окна.
Необязательные параметры
width — определяет ширину окна в пикселях.
code — код, выполняемый по нажатию кнопки; значение json передается в код переменной $#value
.
Может быть передан в таком синтаксисе:
=: exec(code: $code)
```code:totum
=: set(table: 'table'; field: 'field' = $value)
value: "some_value"
```
В этом случае код внутри блока code
обрабатывается как текст и его $
и $#
не пересекаются с кодом текущего поля. :totum
означает подсветить как код тотума.
В code:
возможно передать name
другого поля в текущей таблице.
Также в code
можно использовать обращение @table.field
или @table.field.key_field[key]
. В этом случае если кликнуть на @...
будет показана кнопка, открывающая на редактирование целевой код во всплывающем окне.
buttontext — текст на кнопке.
var — 'name'=value; параметры для передачи в код. Обратиться можно по $#name
.
refresh — true
обновить таблицу по закрытию окна. Также возможно "recalculate"
и "reload".
Доступен в секциях: Код действия.
=: linkToFileUpload(title: ; code: ; limit: ; type: "*"; var: ; refresh: false)
Открывает системное окно выбора файлов.
Обязательные параметры
code — строка код, который будет выполнен при загрузке.
В переменную $#input
передается структура аналогичная полю типа Файл.
Может быть передан name
поля в текущей таблице, из которого будет взят код-действия для выполнения. Обязательный параметр.
Обязательно должен быть передан именно строкой code: "....."
, вариант, когда вы ссылаетесь на последующий код не работает.
Может быть передан в таком синтаксисе:
=: exec(code: $code)
```code:totum
=: set(table: 'table'; field: 'field' = $value)
value: "some_value"
```
В этом случае код внутри блока code
обрабатывается как текст и его $
и $#
не пересекаются с кодом текущего поля. :totum
означает подсветить как код тотума.
В code:
возможно передать name
другого поля в текущей таблице, тогда код будет взят из него из соответствующего типа кода. При вызове из кода — код, при вызове из кода-действия — код-действия, итд... В этом случае если кликнуть на "name"
будет показана кнопка, открывающая на редактирование целевой код во всплывающем окне.
Также в code
можно использовать обращение @table.field
или @table.field.key_field[key]
. В этом случае если кликнуть на @...
будет показана кнопка, открывающая на редактирование целевой код во всплывающем окне.
Необязательные параметры
title — заголовок окна.
limit — максимальное количество файлов. Если будет выбрано больше, то вместо code
будет выведено сообщение об ошибке.
type — mime-type если требуется.
var — вида var: "var_name" = VAR_VALUE
. Множественный параметр — дна или несколько переменных для передачи в code
.
refresh — определяет будет ли обновляться таблица-родитель при закрытии окна.
true
при необходимости обновить данные.false
."reload"
— при возврате таблица источник будет перезагружена, как буд-то пользователь нажал обновить в браузере."recalculate"
— таблица источник будет пересчитана, даже если в ней небыло изменений.Пример:
= : linkToFileUpload(title: "Закачка файлов"; code: "=: set(table: $#ntn; field: 'h_files' = $#input)"; limit: 2; type: "image/*"; refresh: true)
//Результат: в поле h_files будут добавлены 2 выбранных файла, таблица будет обновлена.
Доступен в секциях: Код действия.
=: linkToFileDownload(file: ; files: )
Скачивает на компьютер клиента через web-интерфейс файлы.
Необязательные параметры
file — Множественный параметр, ассоциативный массив формата {"name":"Имя файла для сохранения на компьютере клиента", "type":"mime-тип файла", "filestring": "Строковое содержимое файла"}
files — список ассоциативных массивов аналогичного file:
формата.
zip — "name_of_file"
, упакует переданные файлы в один zip-архив.
ПРИМЕРЫ
example: linkToFileDownload(file: $file)
file: rowCreate(field: "name" = "file.jpg"; field: "type" = "image/jpeg"; field: "filestring" = $img)
img: fileGetContent(file: #h_files[0]["file"])
//Результат: Инициация скачивания на компьютер клиента jpeg-картинки и сохранение ее с именем "file.jpg"
example2: linkToFileDownload(file: $file1; file: $file2)
file1: rowCreate(field: "name" = "file.txt"; field: "type" = "text/plain"; field: "filestring" = "Содержимое файла")
file2: rowCreate(field: "name" = "file2.txt"; field: "type" = "text/plain"; field: "filestring" = "Содержимое файла2")
//Результат: Инициация скачивания на компьютер клиента двух текстовых файлов и сохранение их с указанными именами
Доступен в секциях: Код действия.
=: getFromScript(uri: "http://"; post: "" = ; posts: ; gets: ; bfl: ; timeout: ; header: ; headers: ; ssh: ; method: )
Вызывает скрипт по указанному пути и передает ему POST или GET запрос.
Если не заданы заголовки в параметре headers
то POST исполняется как application/x-www-form-urlencoded
.
Обязательные параметры
Необязательные параметры
post — множественный параметр, POST-параметр в формате "param" = value
.
posts — ассоциативный массив, список POST-параметров или строка тела POST-запроса.
gets — ассоциативный массив, список GET-параметров.
bfl — true|false
определяет, писать ли данные в bfl-лог. При отсутствии берет настройку из Настройки и крон.
timeout — ограничение времени запроса в секундах.
header — true | false
определяет, возвращать ли header+body
или только body
ответа.
Если true
и вам нужно привести в более читаемый вид то можно использовать strSplit:
= : linkToDataHtml(title: "test"; html: $join)
join: listJoin(list: $split; str: "<br>")
split: strSplit(str: $get; separator: str`$#nl`)
get: getFromScript(uri: "..."; header: true)
headers — cписок из передаваемых заголовков.
ssh — если передан true
, то вызов будет отделен в отдельный процесс и будет выполняться параллельно последующему коду. Используется для вызова сторонних сервисов, ответ от которых неважен для последующего кода. Например, вызов сервера отправки смс при изменении статуса заказа. Таким образом сторонний сервер не будет останавливать обработку внутри тотум при своей недоступности или долгом ответе.
method — "POST | GET | PUT | DELETE | ..."
используется для жесткого задания http-метода. Автоматически при пустом POST
отправляется GET
— этот параметр позволяет переопределить это поведение.
example: getFromScript(uri: "https://host.com/"; post: "method" = "setBids"; post: "bids" = $bids; post: "token" = @some_table.token["access_token"]; post: "feed_id" = @some_table.feed_id; post: "shop_id" = @some_table.store_number)
bids: jsonCreate(data: $bidsGet)
bidsGet: selectRowList(table: 'some_table_with_data'; field: 'price'; field: 'item_name'; where: 'add_to_feed' = true)
//Входящиие переменные: $#x_request_id, $#data_for_send
example2: getFromScript(uri: @some_table.url; posts: $json; headers: $headers)
headers: listCreate(item: $auth; item: "Content-type: application/json"; item: $xxx)
xxx: strAdd(str: "X-Request-ID: "; str: $#x_request_id)
auth: strAdd(str: "Authorization: Basic "; str: @some_table.autorisation)
json: jsonCreate(data: $#data_for_send)
Если вы в параметр функции
post
илиgets
передаетеtrue
илиfalse
, то они должны быть переданы как строка —"true"
или"false"
. Иначе при передаче они будут преобразованы в1
и""
.
Доступен в секциях: Код действия.
=: emailSend(to: ; title: ; body: ; from: ; files: ; bfl: )
Отправляет письмо. По умолчанию через emailsend
сервера.
Также письмо может быть отправлено функцией notificationSend
Обязательные параметры
title — строка, заголовок письма.
to — строка, email получателя. Или список строк с email
получателей. Тогда письмо будет отправлено нескольким адресатам открытой! копией.
body — строка, тело письма. Обрабатывается как html
.
Необязательные параметры
from — строка, email отправителя. Если не указан, то подставляется системный email вида noreply@HOST
. Формирование технического email можно переопределить в Conf.php
в корневой папке Totum или в таблице Настройки. Приоритет имеет Conf.php
.
files — список или ассоциативный массив для того, чтобы письмо содержало вложенные файлы.
rowList
с ключами, аналогичными полю файл — name
и file
ассоциативный массив вида имя отображаемое в письме: техническое имя на сервере
.
file
.Если тело письма в body
содержит изображения с src = "путь к файлу в текущей схеме totum"
— эти файлы будут вложены в письмо автоматически.
replyto — строка с адресом на который будет отправлен ответ, когда получатель нажмет кнопку ответить в email-клиенте.
hiddencopy — строка или список с адресом/адресами на который будет отправлена скрытая копия.
bfl — если true
, то данные об отправке писем складываются в таблицу базы данных _bfl
в том числе, если транзакция была отменена.
example: emailSend(to: "test@example.ru"; title: "Отправка письма"; body: "Тестовое письмо"; files: $files)
files: rowCreate(field: "Вложенная картинка.png" = "444_h_pole_heder_1_1.png")
// Чтобы взять имя файла из поля файл #file_field[0][file]
// Обязательно должно быть указано расширение в имени отправляемого файла
// например отправляем два файла, лежащих в поле file_field:
example2: emailSend(to: "test@example.ru"; title: "Отправка письма"; body: "Тестовое письмо"; files: $files2)
files2: rowCreate(field: "Вложенная картинка.png" = #file_field[0][file]; field: "Вложенная картинка 2.png" = #file_field[1][file])
// или с использованием полных данных поля файл:
example3: emailSend(to: "test@example.ru"; title: "Отправка письма"; body: "Тестовое письмо"; files: #file_field)
// с использованием filestring
example4: emailSend(to: "test@example.ru"; title: "Отправка письма"; body: "Тестовое письмо"; files: json`[$filerow]`)
fileRow: rowCreate(field: "name" = "Текст файл.txt"; field: "filestring" = $text)
text: "Какой-то текст"
По умолчанию V5 не устанавливает MTA агент для обработки sendmail!
Что бы обеспечить доходимость писем мы рекомендуем подключать сторонний SMTP-сервер с настроенными DNS. Или вы можете настроить свой SMTP по этой инструкции
Подключение SMTP индивидуально для схемы:
Заполните в таблице Настройки
поле custom_smtp_setings_for_schema
.
Заполняется как массив:
{
"host": "ssl://smtp.gmail.com",
"port": 465,
"login": "totum@totum.online",
"password": "password_here"
}
Обязательно смотрите инструкцию к своему SMTP!
По умолчанию письма отправляются от адреса no-reply@HOST
, но если вам нужно переопределить это, то это делается в таблице Настройки
.
Чтобы подключить SMTP-сервер для всех схем на сервере необходимо:
Открываем на редактирование Conf.php
в корне установки:
Комментируем //
:
// use WithPhpMailerTrait;
Разкомментируем:
use WithPhpMailerSmtpTrait;
Разкомментируем и заполняем параметры SMTP-подключения (вам необходимо указать свои данные):
protected $SmtpData = [
'host' => 'YOUR_HOST_HERE',
'port' => 'YOUR_PORT_HERE',
'login' => 'YOUR_LOGIN_HERE',
'pass' => 'YOUR_PASS_HERE',
];
В этом случае настройки в
custom_smtp_setings_for_schema
не действуют.
Доступен в секциях: Код действия.
=: notificationSend(users: ; title: ; ntf: ; eml: ; custom: )
Отправляет внутреннюю нотификацию (используя код admin_text
), email (используя шаблон eml_email
) и выполняет кастомный код name которого указан в custom
.
Для отправки
Обязательные параметры
users — одно число или список id пользователей.
title — заголовок нотификации.
Необязательные параметры (хотя бы один должен быть указан)
ntf — строка, текст внутренней нотификации.
eml — строка, текст email нотификации.
custom — "name" = "text or html"
. Множественный параметр.
ttm__custom_user_notific_codes
.$#user
, $#title
и "text or html"
в переменную $#html
.users
в режиме ssh = true
(в отдельных процессах).ПРИМЕРЫ
= : notificationSend(users: $list_users; title: "some title"; ntf: "some notif text"; eml: "some email text")
list_users: listCreate(item: 19; item: 32)
Доступен в секциях: Форматирование ячейки.
=: setFormat(condition: ; block: ; color: ; bold: ; background: ; decoration: ; italic: ; progress: ; progresscolor: ; icon: ; text: ; hide: ; showhand: ; placeholder: )
Изменяет внешний вид ячейки по условиям condition:
.
Результаты работы функции применяются к ячейке последовательно, в соответствии с индексами f1=:
, f2=:
, f3=:
и так далее.
setFormat
имеет преимущество над setRowFormat при пересечении условий форматирования.
Необязательные параметры
condition — условие срабатывания вида "значение 1" = "значение 2"
.
condition:
выполнилось в false
, то ни последующие condition:
ни параметры рассчитаны не будут.block — блокировка ячейки.
true
— заблокировано.false
— разблокировано.color — цвет текста ячейки.
#ff00cc
.tomato
.bold — жирное начертание текста в ячейке.
true
— жирное.false
— разблокировано.background — цвет заливки ячейки.
#ff00cc
.tomato
.decoration — строка, оформление текста.
underline
— подчеркнутое.line-through
— зачеркнутое.italic — курсив для текста в ячейке.
true
— курсив.false
— обычное начертание.progress — длина маркерного выделения текста в ячейке.
0
— без выделения.100
— выделен весь текст.progresscolor — цвет маркерного выделения текста в ячейке.
#ff00cc
.tomato
.text — выводит заданный текст, подменяющий отображение значения в ячейке. Не влияет на данные, хранящиеся в этой ячейке.
icon — выводит иконку слева от значения ячейки.
fontawesome 4
без приставки fa-
. Например: shower
.comment — добавляет в ячейку иконку i
слева от значения, при наведении на которую показывается текст комментария.
hide — множественный параметр, скрывает поле в панели, мобильном интерфейсе или форме.
"panel" = true
— скрывает поле в панели и не исключает его из расчета положения полей в колонках. Передав "panel" = false
, можно будет отобразить поле."extpanel" = true
— скрывает поле в панели и исключает его из расчета положения полей в колонках. В этом случае динамически отобразить поле после открытия панели невозможно."mobile" = true
— скрывает поле в мобильном интерфейсе."form" = true
— скрывает поле в формах.tab — устанавливает отступ слева в ячейке у значения или его отображения.
align — выравнивание значения или отображения в ячейке.
center
— по центру.right
— по правому краю.editbutton – если true
, то в поле отображается кнопка редактирования, при нажатии на которую поле открывается на редактирование.
showhand — если false
, то в рассчитываемых полях, имеющих ручные значения, будет скрыта индикация наличия ручного значения.
placeholder — строка, плэйсхолдер для открытого на редактирование пустого поля.
expand — если false
, то в tree-view отключает возможность разворачивать папку.
textasvalue — если true
, то значение в text
будет копироваться и отображаться в контекстной панели как значение поля.
Чтобы работала сортировка в заголовке колонки по этим значениям необходимо уточнить тип значений и символ разделитель десятичных для чисел:
textasvalue: "num"
или textasvalue: "str"
textasvalue: "num|."
или textasvalue: "num|,"
f1=: setformat(bold: true; color: "tomato")
f2=: setformat(condition: $#nfv != ""; block: true)
//Результат:
Доступен в секциях: Форматирование строки.
=: setRowFormat(condition: ; block: ; blockdelete: ; blockorder: ; blockduplicate: ; color: ; bold: ; background: ; decoration: ; italic: ; :)
Настройка форматирования строк по условиям condition:
.
Результаты работы функции применяются к таблице последовательно, в соответствии с индексами f1=:
, f2=:
, f3=:
и.т.д.
setRowFormat
имеет преимущество над setTableFormat при пересечении условий.
Необязательные параметры
condition — условие срабатывания вида "значение 1" = "значение 2"
.
condition:
выполнилось в false
, то последующие condition:
рассчитаны не будут, параметры применены не будут.block — блокировка изменений в строке, в том числе удаления, перемещения и дублирования.
true
— заблокировано.false
— разблокировано.color — цвет текста строки.
bold — жирное начертание текста в строке.
true
— жирное.false
— разблокировано.background — цвет заливки строки.
decoration — подчеркивание текста во всей строке.
true
— подчеркнутое.false
— неподчеркнутое.italic — курсив для текста в строке.
true
— курсив.false
— обычное начертание.blockdelete — блокировка удаления строки.
true
— заблокировано.false
— разблокировано.blockorder — блокировка сортировки по n
.
true
— заблокировано.false
— разблокировано.blockduplicate — блокировка дублирования.
true
— заблокировано.false
— разблокировано.rowcomment — строка, поддерживает html. Комментарий в кнопках управления строкой. Например, для объяснения причины по которой заблокировано удаление.
Доступен в секциях: Форматирование таблицы.
=: setTableFormat(condition: ; blockdelete: ; blockadd: ; blockorder: ; blockduplicate: )
Условия форматирования, применяемые ко всей таблице, включая хедер и футер.
Необязательные параметры
condition — условие срабатывания вида "значение 1" = "значение 2"
.
condition:
выполнилось в false
, то последующие condition:
на параметры рассчитаны не будут.block — блокировка изменений в таблице, в том числе удаления, перемещения и дублирования.
true
— заблокировано.false
— разблокировано.blockdelete — блокировка удаления строк.
true
— заблокировано.false
— разблокировано.blockduplicate — блокировка дублирования.
true
— заблокировано.false
— разблокировано.blockorder — блокировка сортировки по n
.
true
— заблокировано.false
— разблокировано.blockadd — блокировка добавления строк в таблицу.
true
— заблокировано.false
— разблокировано.
hideadd — true
если нужно убрать именно кнопку Добавить, а кнопку добавления через Панель оставить.
tabletitle — строка, отображаемый заголовок таблицы.
rowstitle — строка, отображаемый заголовок строчной части таблицы.
fieldtitle — множественный name-параметр, отображаемый заголовок поля, задаваемый в формате 'field_name' = "Заголовок"
tabletext — строка, текст, отображаемый под описанием таблицы.
tablehtml — строка, html, отображаемый под описанием таблицы.
tablecomment — строка, отображаемый под префильтром текст.
buttons — список из name
полей кнопок, расположенных в хедере или футере для их визуального отображения в кнопках строчной части.
Создателя
кнопки остаются по месту их плейсмента и sort
с дополнительной отметкой B
.dotbuttons — список из name
полей кнопок, расположенных в хедере или футере для их визуального отображения в кнопке с точками в нижнем правом углу.
Создателя
кнопки остаются по месту их плейсмента и sort
с дополнительной отметкой D
.extbuttons — список из name
полей кнопок, расположенных в хедере или футере для их визуального отображения в кнопке бутерброд рядом с заголовком таблицы.
Создателя
кнопки остаются по месту их плейсмента и sort
с дополнительной отметкой E
.printbuttons — список из name
полей кнопок, расположенных в хедере или футере для их визуального отображения в выпадающем меню печати в верхней части таблицы.
Создателя
кнопки остаются по месту их плейсмента и sort
с дополнительной отметкой P
.fieldhide — множественный name-параметр вида 'field_name' = true
. Позволяет нежестко скрывать лишние поля по условиям — пользователь может их отобразить.
true
— скрывает поле в управлении видимости полей при загрузке таблицы.false
— показывает поле в управлении видимости полей при загрузке таблицы."force"
— скроет поле из таблицы и из управления видимостью полей. fieldhide: 'name' = "force"
.fieldhide: 'id' = true
— отключает показ системных id
строк.Это нежесткая блокировка — данные поля передаются в браузер пользователя.
fieldshide — список из name
полей, которыым будут передан сигнал force
(аналогично параметру fieldhide
) при выполнении condition
и сигнал false
при невыполнении condition
.
browsertitle — заменяет заголовок в браузере.
true
— берет заголовок из tabletitle
."string"
— можно передать строку, если нужен отличный от tabletitle
заголовок.interlace — раскрашивает четные и нечетные строки.
"3"
— процент затемнения четной строки. Чем выше цифра в передаваемой строке, тем темнее. Диапазон 1-100
.
"tomato/beige"
— цвета html для нечетной и четной строки.
"/beige"
— можно задать только один до или после /
."#343434/beige"
— вместо цветов html можно использовать HEX с #
.
topbuttons — false
если необходимо скрыть кнопки управления рядом с названием таблицы.
hidedots — hidedots: "window" = true
или hidedots: "table" = true
для скрытия кнопки с точками внизу справа во всплывающем окне или таблице.
Доступен в секциях: Форматирование таблицы.
=: setRowsOrder(ids: )
ids — список
id
строк, которые нужно поставить сверху таблицы в том порядке, в котором переданы id
.
Может быть использован совместно с быстрой переменной $#rows
, доступной только в форматировании таблицы. Переменная возвращает список
с учетом разбивки на страницы.
Доступен в секциях: Форматирование таблицы.
=: setRowsHide(ids: )
ids — список
id
строк, которые нужно скрыть на клиенте.
Сброса
фильтров строчной части и работает аналогично ручной фильтрации по галочкам.id
, то в результате будут скрыты все переданные id.Может быть использован совместно с быcтрой переменной $#rows
, доступной только в форматировании таблицы. Переменная возвращает список
с учетом разбивки на страницы.
Также эта функция используется в связке с процессной переменной $@proc_var
— функция procVar, которая существует в рамках процесса php.
Пример:
Скрываем строку id=2
по нажатию кнопки.
Код действия кнопки:
= : procVar(name: "testProc"; value: json`[2]`)
Код форматирования таблицы:
f1=: setRowsHide(ids: $@testProc)
Доступен в секциях: Форматирование таблицы.
=: setRowsShow(ids: )
ids — список
id
строк, которые нужно показать на клиенте.
Сброса
фильтров строчной части и работает аналогично ручной фильтрации по галочкам.id
, то в результате будут показаны все переданные id.Может быть использован совместно с быcтрой переменной $#rows
, доступной только в форматировании таблицы. Переменная возвращает список
с учетом разбивки на страницы.
Также эта функция используется в связке с процессной переменной $@proc_var
— функция procVar, которая существует в рамках процесса php.
Пример:
Скрываем строку id=2
по нажатию кнопки.
Код действия кнопки:
= : procVar(name: "testProc"; value: json`[2]`)
Код форматирования таблицы:
f1=: setRowsShow(ids: $@testProc)
Доступен в секциях: Форматирование ячейки.
=: setFloatFormat(blocknum: ; nextline: ; maxwidth: ; fill: ; height: ; maxheight: ; glue: ; breakwidth: )
Задает параметры адаптивности для полей, находящихся в хедере и футере. Не применим к строчной части
Подробнее про секции и адаптивность.
Необязательные параметры
blocknum — число, определяет номер группы, в которую будет определено поле. Поля в группы склеиваются, только если они расположены рядом. Если вы назначите одинаковый номер двум полям стоящим отдельно — это будут две разные группы с одинаковыми номерами.
nextline — если true
, то поле будет сразу будет перенесено на следующую строку в группе.
maxwidth — число, если задано определяет до какой ширины в px
поле будет расширяться, если позволяет ширина экрана. Если в одной строке несколько полей имеют этот параметр, то они будут расширяться пропорционально своей базовой ширине, заданной в настройках поля.
fill — true
, если задано, то поле будет расширяться до максимально возможной ширины блока, определенного самой широкой строкой.
height — число, высота поля в px
. Если задано, то высота поля будет отлична от стандартной. Также меняется отображение содержимого поля.
maxheight — число, максимальная высота поля в px
. Если задано, то поле будет определять свою высоту автоматически в зависимости от содержимого. Но не более заданной максимальной высоты. Может быть указано в vh
и css calc
.
glue — true
, склеивает поле с находящимся слева от него. Склеенные поля будут переноситься вместе. При минимальной ширине экрана переносится не будут.
breakwidth — число, определяет ширину, при которой произойдет перенос поля. Если не указано, то перенос произойдет только когда поле достигнет ширины по умолчанию.
Видео на YouTube: Адаптивность
Эти же параметры могут быть заданы в настройках секции в виде:
glue : field_name, else_field_name : true
илиmaxwidth : block_number : 400
example: setFloatFormat(blocknum: 1; nextline: true; maxwidth: 400; fill: true; height: 200; maxheight: 400; glue: true)
Доступен в секциях: Форматирование поля, строки, таблицы.
=: panelButton(condition: ; code: ; text: ; icon: ; background: ; vars: ; refresh: )
Возвращает секцию с одной кнопкой для панели по правой кнопке мыши. Работает только с кодами p
в форматировании ячейки.
Кнопки ставятся друг за другом. Сначала все button, потом buttons.
При вызове кнопки ей передается текущее окружение $#ntn
, $#nci
, $#nth
, #id (и прочие строчные поля)
.
Обязательные параметры
code — строка код, который будет выполнен при нажатии кнопки. Может быть передан name
поля в текущей таблице, из которого будет взят код-действия для выполнения. Обязательный параметр.
code обязательно должен быть передан именно строкой
code: "....."
, вариант, когда вы ссылаетесь на последующий код не работает.
Может быть передан в таком синтаксисе:
p1=: panelButtons(button: $b100; refresh: true)
b100: rowCreate(field: "text" = "TEXT"; field: "code" = $code)
```code:totum
=: set(table: 'table'; field: 'field' = $value)
value: "some_value"
```
В этом случае код внутри блока code
обрабатывается как текст и его $
и $#
не пересекаются с кодом текущего поля. :totum
означает подсветить как код тотума.
В code:
возможно передать name
другого поля в текущей таблице, тогда код будет взят из него из соответствующего типа кода.
Также в code
можно использовать обращение @table.field
или @table.field.key_field[key]
. В этом случае если кликнуть на @...
будет показана кнопка, открывающая на редактирование целевой код во всплывающем окне.
Необязательные параметры
condition — условие срабатывания вида "значение 1" = "значение 2"
.
condition:
выполнилось в false
, то ни последующие condition:
ни параметры рассчитаны не будут.text — строка надпись на кнопке.
icon — строка название иконки fontawersome 4
без fa-
.
background — строка название цвета web color
или HEX #ddd
.
vars — ассоциативных массив с ключами и значениями переменных, которые будут переданы в выполняемый код.
refresh — true
, "recalculate"
и "reload"
.
ПРИМЕРЫ
p1=: panelButton(condition: $#nfv != ""; code: @table.field.id[$id]; text: "OPEN"; background: "orange"; refresh: true)
id: "..."
Доступен в секциях: Форматирование ячейки.
p1=: panelButtons(condition: ; button: ; button: ; buttons: ; refresh: true)
Возвращает секцию с кнопками для панели по правой кнопке мыши. Работает только с кодами p
в форматировании ячейки.
Кнопки ставятся друг за другом. Сначала все button, потом buttons.
При вызове кнопки ей передается текущее окружение $#ntn
, $#nci
, $#nth
, #id (и прочие строчные поля)
.
Необязательные параметры
condition — при наличии функция выполнится только при срабатывании в true
. Множественный параметр.
button — ассоциированный массив, множественный параметр, информация по одной кнопке, формат аналогичен linkToButtons.
buttons — список ассоциированных массивов, содержащих настройки кнопок.
refresh — true
позволяет обновить таблицу после выполнения кнопки. "recalculate"
— позволяет пересчитать таблицу источник даже если в ней не было изменений. "reload"
— при возврате таблица источник будет перезагружена, как буд-то пользователь нажал обновить в браузере.
Структура row
:
text
— строка надпись на кнопке. Обязательный параметр.
code
— строка код, который будет выполнен при нажатии кнопки. Может быть передан name
поля в текущей таблице, из которого будет взят код-действия для выполнения. Обязательный параметр.
code обязательно должен быть передан именно строкой
code: "....."
, вариант, когда вы ссылаетесь на последующий код не работает.
Может быть передан в таком синтаксисе:
p1=: panelButtons(button: $b100; refresh: true)
b100: rowCreate(field: "text" = "TEXT"; field: "code" = $code)
```code:totum
=: set(table: 'table'; field: 'field' = $value)
value: "some_value"
```
В этом случае код внутри блока code
обрабатывается как текст и его $
и $#
не пересекаются с кодом текущего поля. :totum
означает подсветить как код тотума.
В code:
возможно передать name
другого поля в текущей таблице, тогда код будет взят из него из соответствующего типа кода.
icon
— строка название иконки fontawersome 4
без fa-
.
background
— строка название цвета web color
или HEX #ddd
.
vars
— ассоциативных массив с ключами и значениями переменных, которые будут переданы в выполняемый код.
refresh
— позволяет указать refresh конкретной кнопке в стеке.
example: panelButtons(button: $b1; button: $b2; button: $b3)
b1: rowCreate(field: "text" = "OPEN"; field: "code" = @table.field_vith_code; field: "vars" = $vars; field: "refresh" = true)
b2: rowCreate(field: "text" = "IFRAME"; field: "code" = "field_name_in_table"; field: "vars" = $vars; field: "refresh" = false)
~vars: rowCreate(field: "field_value" = #field_value)
b3: rowCreate(field: "text" = "DELETE"; field: "code" = $code; field: "refresh" = true)
```code:totum
=: delete(table: $#ntn; where: 'id' = #id)
```
// text и code — обязательные параметры, остальные нет.
Доступен в секциях: Форматирование ячейки.
=: panelHtml(condition: ; html: )
Добавляет html в панель по правой кнопке мыши. Работает только с кодами p
в форматировании ячейки.
Обязательные параметры
Необязательные параметры
true
. Множественный параметр.Доступен в секциях: Форматирование ячейки, строки, таблицы.
=: panelImg(condition: ; img: )
Добавляет картинку в панель по правой кнопке мыши. Работает только с кодами p
в форматировании ячейки.
Обязательные параметры
Необязательные параметры
true
. Множественный параметр.example: panelImg(img: #file[0][file])
Доступен в секциях: Код; Код действия; Код селекта; Форматирование ячейки, строки, таблицы.
=: jsonCreate(data: ; field: "" = )
Возвращает одну строку в формате json.
Необязательные параметры
data — данные любого формата.
field — множественный, ключ и значение для добавления в формируемый json. Если в data:
ключа нет, то он будет добавлен, если есть, то переписан с новым значением.
flag - ESCAPED_UNICODE
или PRETTY
.
example: jsonCreate(data: $data; field: "c" = 3; field: "b" = 4)
data: rowCreate(field: "a" = 1; field: "b" = 2)
// Результат: {"a":1,"b":4,"c":3}
Доступен в секциях: Код; Код действия; Код селекта; Форматирование ячейки, строки, таблицы.
=: jsonExtract(text: )
Возвращает данные из json-строки или null
, если формат строки не json.
Обязательные параметры
example1: jsonExtract(text: "[1,2,3,4]")
// Результат - лист из значений 1,2,3,4
СИНТАКСИЧЕСКИЙ АНАЛОГ:
example2: json`[1,2,3,4]`
// Результат - лист из значений 1,2,3,4
Также можно использовать непосредственно в функции:
example3: if(condition: json`[1,2,3,4]` = 3; then: true; else: false)
// Результат - true
Доступен в секциях: Код; Код действия; Код селекта; Форматирование ячейки, строки, таблицы.
=: fileGetContent(file: )
Возвращает содержимое файла в текущей транзакции.
Обязательные параметры
#file_field[0][file]
.example: fileGetContent(file: #file_field[0]["file"])
//Результат: содержимое запрошенного файла
//Exception: при отсутствии файла - "Файл [[$fname]] не существует на диске"
Доступен в секциях: Код; Код действия; Код селекта; Форматирование ячейки, строки, таблицы.
=: logRowList(table: ''; cycle: ; id: ; field: ; params: ; limit: )
Возвращает данные из встроенной системы логирования в виде списка массивов.
Обязательные параметры
field — name-параметр поле в таблице table:
.
table — name-параметр name таблицы, из которой берутся данные.
Необязательные параметры
id — id
строки в строчной части. Обязательно, если field
указан из строчной части.
cycle — определяет цикл, если таблица table:
является расчетной в цикле.
params — передается как список полей. Если не передается, то возвращаются все поля.
comment
— комментарий измененияdt
— дата и время изменения в формате Y-m-d H:i:s,user
— id пользователяaction
— тип действия
1
— Добавление2
— Изменение3
— Сброс к рассчетному4
— Удаление5
— Пин6
— Системное7
— Восстановлениеvalue
— значение после измененияlimit — это число
, количество последних изменений.
0
или ""
, то он будет отключен!Доступен в секциях: Код действия
=: normalizeN(table: ; num: )
Возвращает null
.
Производит нормализацию n-поля
сортируемой по n
простой таблицы. Присваивает n
целые значения.
Служебная функция. Если простая таблица с n-сортировкой часто испытывает вставку новых строк между существующих, то следует поставить ее нормализацию на крон.
Обязательные параметры
table — name таблицы.
num — максимальное количество десятичных цифр в значениях n, при достижении которого проводить нормализацию. Рекомендуется 12.
example: normalizeN(table: 'table_name'; num: 12)
//Результат: в таблице table_name будут переназначены на целые числа все значения поля n в порядке поля n
При нормализации
n
не отрабатывается единица пересчета. Если поля в строках ссылаются на#n
они не будут пересчитаны!
Доступен в секциях: Код; Код действия; Код селекта; Форматирование ячейки, строки, таблицы.
=: sysTranslit(str: )
Возвращает транслитерированную строку с пробелами замененными на _ и удаленными небуквенно-циферными символами
Обязательные параметры
example: sysTranslit(str: "Мама рама")
//Результат: mama_rama
Доступен в секциях: Код; Код действия; Код селекта; Форматирование ячейки, строки, таблицы.
=: getTableSource(table: ; cycle: ; hash: ; fields: ; id: )
Возвращает row из полных данных таблицы.
Для простых таблиц выгружает удаленные строки только если в fields есть is_del.
Для таблиц циклов выгружает все таблицы циклов для каждой запрошенной строки.
Обязательные параметры
Необязательные параметры
cycle — число, одно или список, определяет цикл, если таблица table:
является расчетной в цикле.
hash — строка, для временных таблиц hash таблицы.
id - одно или список id строк для выгрузки. Только для нерасчетных таблиц
fields - поля для выгрузки. Только для нерасчетных таблиц
example: getTableSource(table: 'globcalcs_test_table')
// Результат: {
// "rows": {
// "1": {
// "_E": true,
// "id": 1,
// "test1": {
// "v": "1"
// },
// "dannie": null,
// "is_del": true,
// "testmd5": null
// }
// },
// "nextId": 8,
// "params": {
// "test": {
// "v": "37"
// }
// }
//}
Доступен в секциях: Код; Код действия; Код селекта; Форматирование ячейки, строки, таблицы.
=: getTableUpdated(table: ; cycle: )
Техническая функция. Возвращает row
из параметров кода обновления указанной таблицы.
Обязательные параметры
Необязательные параметры
table:
является расчетной в цикле.Доступен в секциях: Код; Код действия; Код селекта; Форматирование ячейки, строки, таблицы.
=: tableLogSelect(from: ; to: ; users: ; order: )
Возвращает rowList
из таблицы логгирования действий пользователей.
Обязательные параметры
from — дата от в формате Y-m-d
.
to — дата до в формате Y-m-d
.
users — список id
пользователей.
Необязательные параметры
order — name-параметр поле в таблице table:
, по которому будет осуществляется сортировка.
order:
, то сортировка будет осуществлена последовательно.Доступен в секциях: Код; Код действия; Код селекта; Форматирование ячейки, строки, таблицы.
=: userInRoles(role: )
Возвращает true
или false
в зависимости от того, есть ли у пользователя роль перечисленная в role
.
Необходимо использовать если вы используете привязку к ролям пользователей и планируете выгружать решение через Экспорт/Импорт таблиц (частичную выгрузку решений).
При выгрузке и загрузке в другую установку через Экспорт/Импорт таблиц номера ролей, указанные в этой функции, будут заменены на номера ролей в целевой схеме в которую идет загрузка.
Обязательные параметры
id
роли.Доступен в секциях: Код; Код действия; Код селекта; Форматирование ячейки, строки, таблицы.
=: getUsingFields(table: ; field: )
Возвращает список таблиц с полями, которые используют данное поле таблицы. Данные берутся из поля data в Составе таблиц.
При сохранении настроек поля в поле data добавляются, в том числе, данные об использующихся в этом поле полях таблиц:
При использовании в name полях функций с указанным name таблицы
В параметрах с $#
Обращение через @table_name.field_name на данный момент не ловится
Обязательные параметры
table:
.example: getUsingFields(table: 'settings'; field: 'code')
//Результат: {"0":{"name":"do_it_now","version":null,"table_name":"settings"}}
Доступен в секциях: Код; Код действия; Код селекта; Форматирование ячейки, строки, таблицы.
=: tableUrl(table: ''; cycle: )
Возвращает полный путь к таблице с протоколом HTTPS.
Обязательные параметры
Необязательные параметры
cycle — число, одно, определяет цикл, если таблица table:
является расчетной в цикле.
protocol — "http"
если нужно вывести ссылку с http
вместо https
.
ПРИМЕРЫ
example: tableUrl(table: 'table_name'; cycle: $#nci; protocol: "http")
Доступен в секциях: Код действия.
=: sleep(sec: )
Создает паузу в выполнении действия на указанное количество секунд.
Обязательные параметры
Доступен в секциях: Код действия.
=: tableLog(table: ''; cycle: ; id: ; field: ; comment: )
Позволяет внести произвольную запись в Лог по полю. Например, если у вас есть цикл в результате которого несколько раз меняются значения поля, но нужно записать только финальное изменение.
Обязательные параметры
table — name-параметр name таблицы.
field — name-параметр поле в таблице table:
.
Необязательные параметры
cycle — определяет цикл, если таблица table:
является расчетной в цикле.
id — id
строки, если field
определяет поле в строчной части.
comment — строка, комментарий, который будет записан в лог.
Доступен в секциях: Код; Код действия; Код селекта; Форматирование ячейки, строки, таблицы.
=: isItPro()
Возвращает true
если версия PRO.
Доступен в секциях: Код; Код действия; Код селекта; Форматирование ячейки, строки, таблицы.
=: xmlExtract(xml: ; attrpref: "__"; textname: "TEXT")
Возвращает объект тотума содержащий содержимое XML.
Обязательные параметры
xml — содержимое xml-файла для обработки.
attrpref — префиксы для атрибутов. Если задано ""
, то добавляться не будут. Если любые другие символы, то будут добавлены перед названиями атрибутов.
<TEST><TOWN index="37" sname="Москва" latitude="56" longitude="38"/></TEST> при указанном префиксе __ и преобразовании в JSON будет ==>
{"TEST":{"TOWN":[{"__index":"37","__sname":"Москва","__latitude":"56","__longitude":"38"}]}}
Необязательные параметры
textname — при наличии текста внутри тегов, эти тексты будут помещены в элемент с указанным в этом параметре названием.
<TEST><TOWN>Текст в теге</TOWN></TEST> при указанном префиксе TEXT и преобразовании в JSON будет ==>
{"TEST":{"TOWN":[{"TEXT":"Текст в теге"}]}}
Только для PRO-версии
Доступен в секциях: Код; Код действия; Код селекта; Форматирование ячейки, строки, таблицы.
=: execSSH(ssh: ; vars: )
Возвращает полный ответ команды SSH в виде текста.
При установке в корневой папке установки Totum создается Conf.php
, в котором по умолчанию execSSHOn
установлен в 'inner'
. Для разблокировки execSSH его надо установить в true
:
protected $execSSHOn = 'inner'; —> protected $execSSHOn = true;
Домашняя директория для execSSH это папка, в которую смотрит nginx!
Обязательные параметры
Необязательные параметры
vars — список или ассоциативный массив.
Если будет передан список, то все элементы списка будут переданы через пробел в одинарных кавычках и с экранированием.
Если vars: — ассоциативный массив, то к команде будут дописаны параметры вида key='value
с экранированием внутри value
.
example1: execSSH(ssh: "php -v")
//Результат: PHP 7.1.28 (cli) (built: Apr 9 2019 11:24:32) ( NTS ) Copyright (c) 1997-2018 The PHP Group Zend Engine v3.1.0, Copyright (c) 1998-2018 Zend Technologies with the ionCube PHP Loader (enabled) + Intrusion Protection from ioncube24.com (unconfigured) v10.3.2, Copyright (c) 2002-2018, by ionCube Ltd.
example2: execSSH(ssh: "python ./python_script"; vars: $vars)
vars: rowCreate(field: "key_1" = "value_1"; field: "key_2" = "value_2")
// В ssh будет выполнена команда $ python ./python_script key_1='value_1' key_2='value_2'
Только для PRO-версии
Доступен в секциях: Код действия.
=: linkToAnonymTable(table: 'tmp_table_name'; data: $rowList; params: $row)
Возвращает зашифрованный url
для вызова временной таблицы с заполненными данными неавторизованному пользователю.
Для того, чтобы работал анонимный доступ к таблице — должен быть включен пользователь anonym
, от которого будут выполняться действия. Ему должна быть назначена роль, имеющая соответствующий доступ (изменение/просмотр) к показываемой таблице.
Примеры анонимных таблиц: https://start.demo.totum.online/An/30 и https://start.demo.totum.online/An/52
Обязательные параметры
Необязательные параметры
data — список ассоциативных массивов для добавления строк в отдаваемую таблицу. Аналогично linkToDataTable.
params — ассоциативный массив для заполнения полей хедера и футера отдаваемой таблицы. Аналогично linkToDataTable.
protocol — по умолчанию https
. Можно переопределить на http
.
target — если задан iframe|blank|self|parent|top
то будет осуществлен переход по ссылке аналогично linkToScript
.
example: linkToAnonymTable(table: 'tmp_anonym_table'; params: $row)
row: rowCreate(field: "order_id" = 1111)
//Результат: htts://test.demo.totum.online/An/444?d=Y4EK1mpzeZtzxRcB58aMBQ06jVAtzVVU9A6bUo3oJbIP04JcHs7fdnD%2B9HCrh%2F4TUS9R0E4BLjfPXZ3slG%2FQgjJqGkheCb%2B8Hm53neuqHq2bbxdd5a2sjOIEBBvmnFES
Если таблица в хедере или футере содержит поля c name
: h_get
, h_post
или h_input
, то туда будут подставлены данные переданные в get/post/post-raw
при запросе таблицы.
get
и post
— ассоциативные массивы, поэтому для h_get
и h_post
рекомендуется использовать тип поля данные.
input
— строка.
Только для PRO-версии
Доступен в секциях: Код действия.
=: linkToForm(path: "path-to-form"; params: $row)
Возвращает зашифрованный url
для вызова формы с заполненными данными неавторизованному пользователю.
Обязательные параметры
Необязательные параметры
params — row вида "field_name" = value
со значениями полей, которые должны быть заполнены при переходе по сформированной ссылке.
protocol — по умолчанию https
. Можно переопределить на http
.
target — если задан iframe|blank|self|parent|top
то будет осуществлен переход по ссылке аналогично linkToScript
.
Только для PRO-версии
Доступен в секциях: Код действия.
=: linkToQuickForm(path: "path-to-form"; fields: $row; fixed: $row_fix; protocol: "https")
Возвращает зашифрованный url
для вызова быстрой формы с заполненными данными неавторизованному пользователю.
Или осуществляет переход если задан параметр target
.
Обязательные параметры
Необязательные параметры
fields — row вида "field_name" = value
со значениями полей, которые должны быть заполнены при переходе по сформированной ссылке.
fixed — аналогично fields
, но поля будут заблокированы для изменения на стороне сервера.
Оба этих параметра используют механизм автоподстановки строки добавления, поэтому в целевой таблице формы они должны быть разблокированы на изменение при добавлении.
protocol — по умолчанию https
. Можно переопределить на http
.
target — если задан iframe|blank|self|parent|top
то будет осуществлен переход по ссылке аналогично linkToScript
.
Только для PRO-версии
Доступен в секциях: Код действия.
=: encriptedFormParams(params: $row; data: $rowList)
Вернет строку с шифрованным параметром d
, которую можно передать в get
при вызове страницы с формой для передачи в поля формы необходимой информации.
Необязательные параметры
params — необходимо передать row
для заполнения полей нестрочных плейсментов.
data — необходимо передать rowList
для заполнения полей строчной части. На текущий момент строчная часть в формах не рарзаботана.
Доступен в секциях: Код; Код действия; Код селекта; Форматирование ячейки, строки, таблицы.
=: proDbConnect(name: )
PRO Доступ к базам данных Открывает коннект к сторонней базе данных. Возвращает hash
соединения.
Обязательные параметры
ttm__external_databases
Доступен в секциях: Код; Код действия; Код селекта; Форматирование ячейки, строки, таблицы.
=: proDbDisconnect(hash: )
PRO Доступ к базам данных. Закрывает коннект к сторонней базе данных. PRO Доступ к базам данных
Если не выполнять эту функцию, то коннект будет закрыт автоматически при завершении процесса.
Обязательные параметры
proDbConnect
.Доступен в секциях: Код; Код действия; Код селекта; Форматирование ячейки, строки, таблицы.
=: proDbExecQuery(hash: ; name: ; query: ""; params: $list)
PRO Доступ к базам данных. Выполняет запрос и возвращает количество задействованных строк (в PDO
— rowCount
).
Обязательные параметры
Query
строка. Может быть использована подстановка параметров через ?
.Необязательные параметры
?
в query
.Должно быть передано одно из
name — name коннекта в таблице ttm__external_databases
. Если передается name, то коннект будет открыт при начале исполнения функции и закрыт после ее выполнения.
hash — строка hash коннекта функции proDbConnect
. Если передан hash, то коннект по завершению выполнения функции закрыт не будет.
Доступен в секциях: Код; Код действия; Код селекта; Форматирование ячейки, строки, таблицы.
=: proDbSelect(hash: ; name: ; query: ""; params: $list)
PRO Доступ к базам данных. Выполняет Query
и возвращает первую строку в виде row
.
Обязательные параметры
Query
строка. Может быть использована подстановка параметров через ?
.Необязательные параметры
?
в query
.Должно быть передано одно из:
name — name коннекта в таблице ttm__external_databases
. Если передается name, то коннект будет открыт при начале исполнения функции и закрыт после ее выполнения.
hash — строка hash коннекта функции proDbConnect
. Если передан hash, то коннект по завершению выполнения функции закрыт не будет.
Доступен в секциях: Код; Код действия; Код селекта; Форматирование ячейки, строки, таблицы.
=: proDbSelectList(hash: ; name: ; query: ""; params: $list)
PRO Доступ к базам данных. Выполняет Query
и возвращает результат в виде rowList
.
Обязательные параметры
Query
строка. Может быть использована подстановка параметров через ?
.Необязательные параметры
?
в query
.Должно быть передано одно из:
name — name коннекта в таблице ttm__external_databases
. Если передается name, то коннект будет открыт при начале исполнения функции и закрыт после ее выполнения.
hash — строка hash коннекта функции proDbConnect
. Если передан hash, то коннект по завершению выполнения функции закрыт не будет.
Доступен в секциях: Код; Код действия; Код селекта; Форматирование ячейки, строки, таблицы.
=: proPrefilteredIds(exclude: ; excludelist: )
Только в PRO.
Возвращает id
строк ограниченных префильтрами.
Обратите внимание, что в
inner
-канале все префильтры равны пустоте!
Необязательные параметры
exclude — name-параметр исключающий префильтр из рассчета. Множественный параметр.
excludelist — список name-полей на исключение.
Доступен в секциях: Код действия.
=: proLinkToBuffer(text: )
Копирует текст в буфер обмена компьютера.
Обязательные параметры
=: proGetAuthorizationLink(user: ; timeout: ; table: ; type: )
Создает одноразовый или многоразовый токен для входа в систему.
Подробнее смотрите PRO Auth Links
Обязательные параметры
user — id пользователя
timeout — срок действия токена
60
— число в секундах с момента создания."2025-01-01 00:00"
— дата, до которой действует код в формате Y-m-d H:i
.Необязательные параметры
table — name-параметр, таблица, которая будет открыта при переходе по ссылке.
type — single|multiple
. Если не указано, то single
.
single
— токен действует только один раз.multiple
— токен действует, пока не выйдет timeout
filter — множественный параметр, можно передать значения Префильтров.
Доступен в секциях: Код; Код действия.
=: serviceXlsxGenerator(template: ; data: ; answertype: ; name: ; comment: ; pdf: false)
Только в PRO
Подробнее про генераторы в Сервисах ⟹
Возвращает filestring
, filestringRow
или filestringRowList
.
Подробнее про генераторы в Сервисах ⟹
Обязательные параметры
template — техническое имя файла на сервере Totum.
#file_field[0][file]
— чтобы получить из поля Файл.
"*NEW*"
— для того, чтобы использовать чистый шаблон.
list
— если необходимо одним действием создать документы по разным шаблонам.
${value}
— так должны быть указаны переменные для замены.
data — row
с ключами для замены.
Необязательные параметры
answertype — тип ответа:
"filestring"
— по умолчанию, возвращается бинарник. Используется при генерации одного файла в запросе."filerow"
— в этом случае вернется готовый row
с ключами name
и filestring
. Name
необходимо задать в параметре name. Используется при генерации одного файла в запросе."filerowlist"
— в этом случае вернется готовый rowList
с ключами name
и filestring
. Используется при генерации нескольких файлов в запросе.
name
— необходимо задать как list
в параметре name.template
— может быть задан как одно значение или список.data
— rowList
если нужно сгенерировать несколько файлов по одному шаблону или нескольким."filestringlist"
— в этом случае вернется list
из filestring
. Редко используется при генерации нескольких файлов.name — одно значение или list
. Используется совместо с типами ответа filerow
и filerowlist
.
comment — комментарий для биллинга.
pdf — true
, если ответ необходимо вернуть в pdf
.
titles — используется только в связке с *NEW*
в шаблоне. Ожидает list
с заголовками полей для колонок — они будут добавлены при генерации автоматически.
Доступен в секциях: Код; Код действия.
=: serviceDocxGenerator(template: ; data: ; answertype: ; name: ; comment: ; pdf: false)
Возвращает filestring
, filestringRow
или filestringRowList
.
Только в PRO
Подробнее про генераторы в Сервисах ⟹
Обязательные параметры
template — техническое имя файла на сервере Totum.
#file_field[0][file]
— что бы получить из поля Файл.
list
— если необходимо одним действием создать документы по разным шаблонам.
${value}
— так должны быть указаны переменные для замены.
data — row
с ключами для замены.
Необязательные параметры
answertype — тип ответа:
"filestring"
— по умолчанию, возвращается бинарник. Используется при генерации одного файла в запросе."filerow"
— в этом случае вернется готовый row
с ключами name
и filestring
. Name
необходимо задать в параметре name. Используется при генерации одного файла в запросе."filerowlist"
— в этом случае вернется готовый rowList
с ключами name
и filestring
. Используется при генерации нескольких файлов в запросе.
name
— необходимо задать как list
в параметре name.template
— может быть задан как одно значение или список.data
— rowList
если нужно сгенерировать несколько файлов по одному шаблону или нескольким."filestringlist"
— в этом случае вернется list
из filestring
. Редко используется при генерации нескольких файлов.name — одно значение или list
. Используется совместо с типами ответа filerow
и filerowlist
.
comment — комментарий для биллинга.
pdf — true
, если ответ необходимо вернуть в pdf
.
=: serviceXlsxParser(file: ; withformats: ; withcolumns: )
Только в PRO
Возврящает rowlist из данных, содержащихся в .xlsx
файле, отправленном в Cервис.
Обязательные параметры
file
поля тип Файл.или (необходимо использовать один из этих параметров)
Необязательные параметры
withformats — если true
, возвращает некоторые параметры форматированя для ячейки. Возвращает информацию по:
bold
italic
underline
color
background
withcolumns — если true
, то будет добавлена строка с буквенным обозначением колонки.
comment — коментарий для системы логирования сервисов.