⟵ сюдатуда ⟶
  • Quick start
  • Установка MIT
  • Установка PRO
  • Обновления
  • Оптимизация
  • Обновление v4-v5
  • Бэкапы
  • Консольная утилита bin/totum
  • Основы для пользователей
  • Интерфейс и компоновка
  • Таблицы и их параметры
  • Префильтр
  • Поля и их параметры
  • Строка
  • Число
  • Селект
  • Селект-дерево
  • Чекбокс
  • Дата
  • Кнопка
  • Ярлык
  • Текст
  • Комментарии
  • PRO Файл
  • Уникальное
  • Пароль
  • Данные
  • График
  • Настройки полей
  • Тип поля (type)
  • Ширина по умолчанию, px (width)
  • Текст кнопки (buttonText)
  • Name поля в строчной части (column)
  • Интервальный (intervalFilter)
  • linkTableName
  • linkFieldName
  • Значение по умолчанию (default)
  • Единица измерения (unitType)
  • Показывать единицу измерения до значения (before)
  • Знаков после запятой (dectimalPlaces)
  • Денежный формат (currency)
  • Префикс (prefix)
  • Разделитель тысячных (thousandthSeparator)
  • Разделитель десятичных (dectimalSeparator)
  • Постфикс (postfix)
  • Округление (round)
  • Шаг округления (step)
  • Тип текста (textType)
  • Ограничение видимости текста в web (viewTextMaxLength)
  • Выводить на печать текст целиком (printTextfull)
  • Дата-время (dateTime)
  • Формат вывода в интерфейс даты/времени (dateFormat)
  • Формат валидизации ввода (regexp)
  • Текст ошибки валидизации ввода (regexpErrorText)
  • Переносить значения при дублировании (copyOnDuplicate)
  • Дублировать файл при копировании (fileDuplicateOnCopy)
  • Имя файла с хешем в конце (nameWithHash)
  • Защищенный доступ к файлам (secureFile)
  • Задать подпапку для файлов (customFileFolder)
  • Делить на подпапку каждые N id (fieIdDivider)
  • Версии файлов (versioned)
  • Удаление доступно для ролей (removeVersionsRoles)
  • Таймер перезаписи версии (varsionsTimer)
  • Принимает файлы (mime-тип) (accept)
  • Обязательное (required)
  • notLoaded (notLoaded)
  • Показывать в WEB (showInWeb)
  • Вводится при добавлении в WEB (insertable)
  • Добавление доступно ролям (addRoles)
  • Редактируемое в WEB (editable)
  • Групповое изменение (editGroup)
  • При выделенных других колонках (editGroupMultiColumns)
  • Редактирование доступно ролям (editRoles)
  • Показывать выпадающее меню (dropdownView)
  • Фильтр по полю (filterable)
  • Максимальное количество выводимых элементов (selectLength)
  • Скрыто по умолчанию (hidden)
  • Предупреждение при изменении (warningEditPanel)
  • Текст предупреждения (warningEditText)
  • RegExp значения, при котором выводить предупреждение (warningEditRegExp)
  • Показывать строку как URL (url)
  • Открывать в (openIn)
  • С новой строчки (tableBreakBefore)
  • Заголовок (sectionTitle)
  • Цвет панели (panelColor)
  • Цвет выделения (decorationColor)
  • Видно ролям (webRoles)
  • С логированием (logging)
  • Лог доступен ролям (logRoles)
  • Ширина контекстной панели (contextPanelWidth)
  • PRO Динамическое поле (dynamic)
  • Отображать в другом месте (showInWebOtherPlace)
  • Другой плейсмент (showInWebOtherPlacement)
  • Другой сорт (showInWebOtherOrd)
  • Другой Name (showInWebOtherName)
  • Показывать в API (showInXml)
  • Вводится при добавлении в API (apiInsertable)
  • Редактируемое в API (apiEditable)
  • Редактирование в API доступно ролям (xmlEditRoles)
  • Видно ролям в API (xmlRoles)
  • Код (code)
  • Исполнять код только при добавлении (codeOnlyInAdd)
  • Текст ошибки (errorText)
  • Код действия (codeAction)
  • Выполнять код действия при добавлении (CodeActionOnAdd)
  • Выполнять код действия при изменении (CodeActionOnChange)
  • Выполнять код действия при удалении (CodeActionOnDelete)
  • Выполнять код действия при клике (CodeActionOnClick)
  • Оформить клик как URL (CodeActionOnClickAsUrl)
  • Разрешить действие в режиме только для чтения (AllowActionClickOnRead)
  • Снимать галочки после выполнения (uncheckAfterClick)
  • Закрыть окно после выполнения (closeIframeAfterClick)
  • Действие доступно при просмотре (pressableOnOnlyRead)
  • Включить кнопку в строке добавления (buttonActiveOnInsert)
  • Открыть контекстную панель (openContextPanel)
  • Код селекта (codeSelect)
  • Индивидуальный расчет селекта для каждой строки (codeSelectIndividual)
  • Проверять введенные значения на сервере (checkSelectValues)
  • Множественные значения (multiple)
  • Разделитель множественных значений (multiSeparator)
  • Отображение множественного селекта в ячейке (multySelectView)
  • Отображать путь в ячейке (treeViewTypeFull)
  • Дерево строится по одной таблице (treeAutoTree)
  • Порядок расчета в tree (treeViewCalc)
  • Папки можно выбирать (treeSelectFolders)
  • PRO Тип таблицы-дерева (treeViewType)
  • Загрузить все (treeViewLoad)
  • Formatting for tree folders (treeViewCode)
  • Hide Add button (treeHideAddButton)
  • Открыть все (treeViewOpen)
  • Name-поле родителя (treeViewParentField)
  • Name-поле для bfield (treeBfield)
  • Все (*ALL*)
  • Название для опции Все (*ALL*)
  • Ничего (*NONE*)
  • Название для опции Ничего (*NONE*)
  • Пустое () (selectFilterWithEmpty)
  • Название для опции Пустое () (selectFilterWithEmptyText)
  • Заголовок селекта с пустым значением (withEmptyVal)
  • Таблица селекта для изменения (selectTable)
  • BaseField отличный от id (selectTableBaseField)
  • Панель селекта для изменения (selectTableAction)
  • Ручное создание селекта (values)
  • Условное форматирование ячейки (format)
  • Описание поля (help)
  • Тип графика (chartType)
  • Настройки графика (chartOptions)
  • Данные для графиков (codeChart)
  • jsonFields
  • Синтаксис
  • Код, действия, форматирование
  • Реляционные взаимосвязи
  • Порядок расчета и единицы пересчета
  • Автозаполнение расчетных и временных
  • Дублирование строк и циклов
  • Сравнения
  • Функции
  • Отладка
  • Печать и CSV
  • API
  • Роли и пользователи
  • Нотификации
  • Действия по расписанию
  • Системные таблицы
  • [PRO] Деревья
  • [PRO] Анонимные таблицы
  • [PRO] Внешние формы
  • [PRO] Экспорт и импорт таблиц
  • [PRO] MeiliSearch
  • [PRO] Базы данных
  • [PRO] Настройка CSS
  • [PRO] Custom docs
  • [PRO] LDAP AD
  • [PRO] Версии файлов
  • [PRO] List-unsubscribe
  • [PRO] Динамические поля
  • [PRO] Only Office
  • [PRO] Auth Tokens
  • [PRO] 2FA
  • [PRO] Superlang
  • [PRO] Daemons
  • [PRO] Profiler
  • [PRO] Подключение функций
  • [SRV] Установка и подключение
  • [SRV] Экспорт, pdf, загрузка и предпросмотр
  • [SRV] XLSX/DOCX генераторы
  • Типы полей

    Строка

    Небольшие строки.

    Строка

    Хранит строковое значение любой длины или null.

    • В поле отображается простой строкой. Длина показываемого обрезается в зависимости от заданной ширины поля.

    • На клиент передается полностью, поэтому для хранения строковых данных больших размеров рекомендуется использовать поле Текст.

    Особенности и настройки:

    • Формат валидизации ввода (regexp).

    • Показывать строку как URL (url).

      • Открывать в iframe|self|top|blank (openIn).

    Число

    Хранение чисел.

    Число

    Хранит десятичное число с заданным количеством десятичных знаков (до 10) или null. Если в результате расчетов получается хвост больше 10 знаков, то непопадающие знаки отбрасываются без округления.

    • Отображается числовым значением в ячейке. Стандартный десятичный разделитель — .

    • При включенном параметре денежный формат выводится с десятичным разделителем и разделителями между тысячами в зависимости от выбранного вида.

    • Редактируется простым полем ввода с ограничением на ввод нечисловых значений. Возможен ввод , или . для дробей.

    • При редактировании можно задать изменение относительно предыдущего значения:

      • +1 — увеличивает число на один.
      • +-1 — уменьшает число на один (если задать -1, будет сохранено отрицательное число -1).
      • *2 — умножает на 2.
      • /2 — делит на 2.
      • +2% — добавляет 2% (% можно использовать во всех перечисленных операциях).

    При изменении значения поля через функции set и setList также можно использовать математические операторы.

    // В таблице table_name значение числового поля number_field в строке с id = 1 будет увеличено на 2:
    example1: set(table: 'table_name'; field: 'number_field' + 2; where: 'id' = 1)
    
    // В таблице table_name значение числового поля number_field в строке с id = 1 будет увеличено на 2%:
    example2: set(table: 'table_name'; field: 'number_field' + 2%; where: 'id' = 1)
    

    Особенности и настройки:

    Максимум 10 разрядов поле точки! Все цифры после будут отброшены без округлени (cut).

    Если из внешней системы приходит число в экспонентной записи 2,3е+15 то оно переводится в формат тотума функцией numFormat. Максимальный размер такого числа до точки 17 разрядов (в том числе на промежуточном результате вычислени)! При превышении на 64-разрядной машине итоговый результат будет случайным числом.

    • Единица измерения (unitType).

    • Знаков после запятой (dectimalPlaces).

    • Формат валидизации ввода (regexp).

    • Округление (round).

      • Шаг округления (step).
    • Денежный формат (currency).

    Селект

    Реляционные взаимосвязи ⟶

    Поля, связывающие таблицы. В ячейке хранится id или кодовое значение, отображение к которому хранится и меняется в таблице-источнике.

    Также можно использовать собственные связки ключ-значение при помощи Ручного создания селекта (values)

    Результатом работы функции selectRowListForSelect является список ассоциированных массивов вида:

    [{"value":45,"is_del":true,"title":"Закупка материалов и склад"}}]
    

    Где:

    • value — значение элемента.

    • is_del — является ли элемент удаленным (если true, он зачеркивается в интерфейсе, необязательный параметр).

    • title — отображаемое значение.

    Из секции код селекта можно вернуть список такого вида (is_del можно опустить) и селект будет построен по переданным данным.

    Содержимое:

    В веб интерфейсе:

    Селект

    • Отображается в виде строки, перечисления или количества выбранных элементов.

    • В админском интерфейсе можно посмотреть основание или ключ внизу всплывающей панели по клику правой кнопки мыши в поле.

    • Для поиска значений работают режимы поиска.

    Особенности и настройки:

    При выборке строк в select-функциях select, selectList, selectRowList итд с в where: нужно подставлять значение именно ключа, а не отображения. Аналогично для order:.

    • Единица измерения (unitType).

    • Максимальное количество выводимых элементов (selectLength).

    • Код селекта (codeSelect).

    • Индивидуальный расчет селекта для каждой строки (codeSelectIndividual).

    • Множественные значения (multiple).

      • Выводить на печать текст целиком (printTextfull).

      • Отображение множественного селекта в ячейке (multySelectView).

    • Заголовок селекта с пустым значением (withEmptyVal).

    • Таблица селекта для изменения (selectTable).

    • Панель селекта для изменения (selectTableAction).

    • Ручное создание селекта (values).

    При использовании селекта в фильтре:

    Селект-дерево

    Поля, связывающие таблицы. В ячейке хранится id, имя к которому хранится и меняется в таблице-источнике.

    Данные в таблице-источники должны быть организованы в иерархическую структуру, с полем, хранящим значение id родительской строки либо null в случае, если это запись верхнего уровня.

    Name этого поля записывается в параметр parent: функции selectRowListForTree.

    Результатом работы функции selectRowListForTree является список ассоциированных массивов вида:

    [{"value":45,"is_del":true,"title":"Закупка материалов и склад","parent":"35"}}]
    

    Где:

    • value — значение элемента.

    • is_del — является ли элемент удаленным (если true, он зачеркивается в интерфейсе, необязательный параметр).

    • title — отображаемое значение.

    • parentvalue родительского элемента или null в случае, если текущий элемент верхнего уровня.

    Из секции код селекта можно вернуть список такого вида (is_del можно опустить) и дерево будет построено по переданным данным.

    Содержимое:

    Веб-интерфейс:

    Дерево

    • Отображается в виде строки, перечисления или количества выбранных элементов. Также может выводить пути выбранных элементов.

    • Редактирование осуществляется выбором элементов во всплывающем окне.

    • В админском интерфейсе можно посмотреть основание или ключ внизу всплывающей панели по клику правой кнопки мыши в поле.

    • Для поиска значений работают режимы поиска.

    Особенности и настройки:

    Расчет дерева — ресурсоемкая операция. Не стоит делать дерево из данных таблиц свыше 2 000 элементов!

    • Индивидуальный расчет селекта для каждой строки (codeSelectIndividual).

    • Множественные значения (multiple).

      • Выводить на печать текст целиком (printTextfull).

      • Отображение множественного селекта в ячейке (multySelectView).

    • Отображать путь в ячейке (treeViewTypeFull).

    • Дерево строится по одной таблице (treeAutoTree).

    • Папки можно выбирать (treeSelectFolders).

    • Заголовок селекта с пустым значением (withEmptyVal).

    • Таблица селекта для изменения (selectTable).

    • Панель селекта для изменения (selectTableAction).

    • Ручное создание селекта (values).

    Чекбокс

    Поле-галочка. Хранит значения типа true или false.

    Чекбокс

    Может быть в трех состояниях:

    • null — не заполненное.
    • true
    • false-

    Веб-интерфейс:

    • Отображается в ячейке в виде или -.

    Особенности и настройки:

    • Нельзя присвоить значение null или любое другое кроме true или false.

    В строчной части таблиц со строчной единицей пересчета при добавлении поля в базу будет произведено присвоение значения false всем строкам таблицы. Если необходимо этого избежать и добавить поле со значением null добавьте сначала поле с типом Строка, а потом измените его на Чекбокс.

    Дата

    Хранит дату и время.

    Дата

    Хранит дату в формате Y-m-d (например, 2018-12-31), дату-время в формате Y-m-d H:i (например, 2018-12-31 23:59) или null.

    • Отображается в ячейке в виде d.m.y/d.m.y H:i либо так, как задано в параметре формат вывода в интерфейс даты/времени.

    • Редактируется через виджет datetimepicker либо прямой вставкой в поле ввода нужной даты/времени в заданном формате (возможен ввод без знаков пунктуации).

    • Очистить значение можно, стерев данные в поле ввода.

    Особенности и настройки:

    При поиске по полю дата в select-функциях необходимо приводить строку поиска к формату, в котором поле хранит даты (Y-m-d или Y-m-d H:i). Даты сравниваются и сортируются как строки.

    • Дата-время (dateTime).

    • Формат вывода в интерфейс даты/времени (dateFormat).

    Кнопка

    Активный элемента-кнопка для запуска кода действия.

    Кнопка

    • Отображается кнопкой.

    • Редактирование значения отсутствует.

    Особенности и настройки:

    Текст

    Строковые значения utf-8. Возможно хранение значительных объемов данных с переносами строк.

    Текст

    Хранит строковое значение любой длины или null.

    • Отображается строкой в ячейке.

    • На клиент при загрузке страницы передается частично. Полная загрузка текста происходит при вызове панели по правой кнопке мыши или окна редактирования.

    • Редактируется в зависимости от выбранного типа редактором CodeMirror (для большинства типов с подсветкой синтаксиса) либо редактором json.

    Особенности и настройки:

    • Тип текста (textType).

    • Ограничение видимости текста в web (viewTextMaxLength).

    • Выводить на печать текст целиком (printTextfull).

    Комментарии

    Поле-диалог, отмечает дату-время и пользователя, оставившего запись.

    Коммент

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

    Содержит список списков с данными комментариев.

    При помощи кода-действия можно:

    Добавить запись от текущего пользователя:

    example1: set(table: 'test'; field: 'comment' = "Тестовый комментарий"; where:  'id' = 3)
    

    Перезаписать полностью лист комментариев:

    example2: set(table: $#ntn; field: 'h_kommentariy' = $list)
    list: listCreate(item: $listComment1; item: $listComment2)
    listComment1: listCreate(item: "2019-12-12 12:12"; item: 1; item: "Комментарий 1")
    listComment2: listCreate(item: "2019-12-12 12:13"; item: 1; item: "Комментарий 2")
    

    В случае перезаписи с изменением числа записей и дат в прошлом — механизм прочтенных сообщений работать не будет.

    Веб-интерфейс:

    • В поле отображается строкой.

    • На клиент при загрузке страницы передается частично. Полная загрузка текста происходит при вызове панели по правой кнопке мыши или окна редактирования.

    • В поле показывается последний комментарий.

    • В панельке и окне редактирования комментарии расположены в порядке сверху-вниз.

    • Если для пользователя комментарий является непрочтенным, то он будет подчеркнут Цветом выделения.

    • Статус прочтен назначается ячейке при открытии ее на редактирование или вызове панели по правой кнопке мыши.

    Особенности и настройки:

    PRO Файл

    Только в PRO-версии

    Хранение файлов c сопутствующей информацией на сервере.

    Файл

    Хранит один или несколько файлов. Файлы лежат на сервере в папке /http/fls/youdomain.zone и доступны через адресную строку браузера для каждого, кто знает к нему путь.

    В случае расширения jpg, jpeg, png будут созданы превью изображения размером 290 x Y.

    Файл хранится в папке на сервере, а поле содержит список с данными о файлах в поле.

    Список поля с одним файлом содержит один элемент.

    Если был установлен параметр множественные значения, а потом его выключили и пересчитали строки, лишние файлы, уже хранящиеся в поле, не удаляются.

    Пример содержимого:

    [
      {
        "size": 3131,
        "ext": "gz",
        "file": "587_file.gz",
        "name": "wheretest.json.gz"
      }
    ]
    
    • name — название загруженного файла.

    • ext — расширение, берется из названия.

    • size — размер в байтах.

    • file — имя файла из папки $TOTUM/http/fls/youdomain.zone

    // Установить значение ячейки с добавлением нового текстого файла:
    
    example: set(table: 'table_name'; field: 'field_name' = $filesData)
        filesData: listCreate(item: $rowFile)
            rowFile: rowCreate(field: "name" = "Добавляемый файл.txt"; field: "filestring" = "Содержимое добавляемого текстового файла")
    
    
    // Установить значение ячейки с добавлением нового бинарного файла:
    
    example2: set(table: 'table_name'; field: 'field_name' = $filesData2)
        filesData2: listCreate(item: $rowFile2)
            rowFile2: rowCreate(field: "name" = "Добавляемый файл.png"; field: "filestring" = "здесь бинарник")
    
            // также возможно в base64: rowCreate(field: "name" = "Добавляемый файл.png"; field: "filestringbase64" = "здесь код в base64")
            // бинарник по имени файла можно получить функцией fileGetContent
    
    
    // Установить значение ячейки с добавлением нового файла в gz:
    
    example3: set(table: 'table_name'; field: 'field_name' = $filesData3)
        filesData3: listCreate(item: $rowFile3)
            rowFile3: rowCreate(field: "name" = "Добавляемый файл.txt"; field: "gz" = true; field: "filestring" = "Содержимое добавляемого текстового файла")
    
    

    Если использовать конструкцию field: 'field_name' + $filesData то при активном параметре множественные значения файл будет добавлен, а не перезаписан. Добавить можно только один файл за раз. При добавлении передается row а не rowlist.

    Особенности и настройки:

    Для обеспечения монолитности транзакции все манипуляции с файлами на диске происходят после удачного commit в базе данных. Это значит, что файл физически запишется только после выполнения всех цепочек кодов-действий!

    Для обращения к содержимому файла используйте функцию fileGetContent. Попытка взять данные через getFromScript может вернуть старое содержимое или null.

    • Множественные значения (multiple).

    • Дублировать файл при копировании (fileDuplicateOnCopy).

    • Имя файла с хешем в конце (nameWithHash).

    • Принимает файлы mime-тип (accept).

    Если вы столкнулись с тем, что файл не загружается в поле — проверьте на сервере параметры PHP php_admin_value[upload_max_filesize] в настройке pool в php-fpm по пути nano /etc/php/8.3/fpm/pool.d/totum.conf (php_admin_value[post_max_size] в настройках пула должен быть = 0) и client_max_body_size в настройках nginx по пути nano /etc/nginx/sites-available/totum.online.conf.

    Изменения применяются после перезагрузки fpm и nginx: service php8.3-fpm restart и service nginx restart.

    Файлы во временных таблицах

    Когда файл загружается во временную таблицу, он создается аналогично файлу в постоянных таблицах, но помечается !tmp!. Эти файлы остаются на HDD и их имена переиспользуются через час.

    Если вы активно используете файлы во временных таблицах и вам нужно чистить оставшиеся артефакты — поставьте на крон команду clean-tmp-tables-files-multi.

    crontab -e
    
    */10 * * * * cd /home/totum/totum-mit/ && bin/totum clean-tmp-tables-files-multi
    

    Эти команды удаляют с HDD файлы отмеченные префиксом !tmp!, время последнего использования которых ранее одного часа.

    Уникальное

    Строка с проверкой уникальности в пределах поля одной таблицы.

    Хранит строковое значение любой длины или null. При добавлении и изменении проверяет нет ли уже такого значения в поле в текущей таблице.

    Панель дублирования

    При дублировании предложит ввести новое значение.

    Веб-интерфейс:

    • Отображается строкой в ячейке.

    • На клиент передается полностью.

    • Редактируется простым полем ввода.

    Особенности и настройки:

    • Формат валидизации ввода (regexp).

    • Показывать строку как URL (url).

      • Открывать в iframe/self/top/blank(openIn).

    Пароль

    Хранение шифрованных паролей.

    Пароль

    Хранит md5-хеш или null. При добавлении и изменении сохраняет md5-хеш вместо введенной строки.

    Веб-интерфейс:

    • Отображается строкой \*\*PASSWORD\*\*

    • На клиент не передается.

    • Редактируется полем браузера для ввода паролей.

    • Введенное значение не записывается в Лог.

    Данные

    Любые типы данных. Предпочтительно список или ассоциированный массив. При редактировании открывается Json-редактор.

    Данные

    Веб-интерфейс:

    • Отображается строкой в ячейке.

    • Если структура хранимых данных содержит ключи settings и data, а в поле setting присутствует список columns в верхнем уровне, то в панели по правой кнопке отображается как таблица.

    • На клиент передается частично, подгружается при редактировании и вызове панели по правой кнопке мыши.

    • Редактируется в json-редакторе.

    Особенности и настройки:

    Для отображения в виде таблицы в поле должна быть структура вида:

    • settings

      • columns — список с name выводимых колонок.
      • headRow
        • true — для вывода ключей в качестве заголовков колонок.
        • или Ассоциированный массив — с сопоставлением ключа и заголовка колонки для вывода заголовков.
      • headColumn
        • true — для выделения жирным содержимого первой колонки.
    • data — список ассоциированных массивов с ключами, перечисленными в settings["columns"].

    Пример содержимого поля, выводимого в виде таблицы:

    {
      "data": [
        {
          "data": null,
          "type": "Расчетная в дереве",
          "version": null,
          "with_data": true,
          "table_name": "testglobcalcs"
        }
      ],
      "settings": {
        "columns": [
          "table_name",
          "type",
          "version",
          "with_data",
          "data"
        ],
        "headRow": {
          "data": "Строковые интервалы",
          "type": "Тип",
          "version": "Версия",
          "with_data": "С данными",
          "table_name": "Name таблицы"
        }
      }
    }
    
    =: rowCreate(field: "data" = $data; field: "settings" = $settings)
        settings: rowCreate(field: "columns" = $columns; field: "headRow" = $headRow)
            columns: jsonExtract(text: '["table_name","type","version","with_data","data"]')
        data: listCreate(item: $row1)
            row1: rowCreate(field: "type" = "Расчетная в дереве"; field: "version" = "null"; field: "with_data" = true; field: "table_name" = "testglobcalcs")
        headRow: jsonExtract(text: '{"data":"Строковые интервалы","type":"Тип","version":"Версия","with_data":"С данными","table_name":"Name таблицы"}')
    
    Name таблицы Тип Версия С данными Строковые интервалы
    testglobcalcs Расчетная в дереве null true null

    График

    Видео на YouTube: Тип поля График

    Отображение графиков на основе chart.js

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

    Сбор необходимых для графика данных происходит при помощи параметра поля данные для графиков.

    Результатом работы кода должен являться ассоциированный массив следующего вида:

    =: rowCreate(field: "labels" = $list_labels; field: "values" = $list_values)
    
    list_labels: #labels
    
    list_values: listCreate(item: $dataset_list_1; item: $dataset_list_2; item: $dataset_list_3)
    
    dataset_list_1: #dataset_list_1
    dataset_list_2: #dataset_list_2
    dataset_list_3: #dataset_list_3
    
    

    В labels должен быть передан список с отметками по оси Х. В values список из списков c данными — datasets.

    Настройки внешнего вида графика осуществляются в JSON-параметре Настройки графика. Для того, что бы воспользоваться предустановленными настройками — выберите Тип графика и нажмите на Заполнить настройки по умолчанию.

    Настройки каждого типа данных определяются в разделе datasets в Настройки графика. Порядок датасетов соответствует порядку списков передаваемых в values.

    Документацию по настройкам chart.js можно посмотреть здесь. Данные для графиков относится к data. Данные из data относится к data. Все остальное относится к options.

    Веб-интерфейс:

    Для того, что бы график показывался, необходимо, что бы в настройках форматирования поля или секции была указана высота или максимальная высота!

    f1=: setFloatFormat(maxheight: 1000)
    
    maxheight : field_name : 1000 
    

    Высота графика зависит от ширины поля и соотношения сторон задающихся в Настройки графикаaspectRatio и aspectRatioMobile. Последний используется при ширине страницы менее 600px вместе с отключением сетки и показа названий осей.

    График может быть показан и в строчной части. В этом случае Данные для графиков будут выполнены для каждой строки.

    Особенности и настройки:

    Динамические параметры datasets

    Передаются в основном row: field: "datasets_label" = $list_d_labels

    Ключ в row указывается как datasets_PARAM.

    Пример кода графика:

    =: rowCreate(field: "labels" = $list_labels; field: "values" = $list_values; field: "datasets_label" = $list_d_labels)
    
    list_labels: $dates
    list_d_labels: $sites
    list_values: listReplace(list: $sites; action: $sites_data; value: "sites_data")
        sites_data: $create_data[[$column]]
            column: $#sites_data
    
    ~create_data: listReplace(list: $dates; action: $val; value: "date")
        val: rowCreateByLists(keys: $keysList; values: $valuesList)
            keysList: $sites
            valuesList: listReplace(list: $sites; action: $keywords; value: "site")
                keywords: select(table: $#ntn; field: 'keywords'; where: 'site' = $#site; where: 'date' = $#date)
    
    ~dates: listUniq(list: $list_dates)
            list_dates: selectList(table: $#ntn; field: 'date'; order: 'date' asc)
    
    ~sites: listUniq(list: $list_sites)
        list_sites: selectList(table: $#ntn; field: 'site'; order: 'site' asc)
    

    Настройки полей

    Тип поля (type)

    Выбор типа поля. Возможные варианты:

    • Строка — простая строка без переносов. Хранит строки "string".

    • Число — целое или дробное число. Хранит числа 5, 5.1456.

    • Селект — выпадающие списки, простые или множественные. Для простых основание хранит строку "string", для множественных список ["string1","string2"].

    • Селект-дерево — выпадающие списки-деревья, простые или множественные. Для простых основание "string", для множественных ["string1","string2"].

    • Чекбокс — галочка true, false или null

    • Дата — дата или дата со временем. Хранит строку определенного вида "Y-m-d" или "Y-m-d H:i".

    • Кнопка — кнопка для выполнения действия при нажатии. Хранит null.

    • Ярлык — быстрое отображение значения другой ячейки. Хранит данные аналогично родительской ячейке.

    • Текст — текст с переносами и использованием форматирования. Хранит строку "string".

    • Комментарии — аналогичен мини-чату с отслеживанием прочтения. Хранит список списков [["2019-08-01 13:30",1,"test"]].

    • Файл — работа с файлами. Хранит список ассоциативных массивов.

    • Уникальное — строка без переносов с отслеживанием уникальности значения по колонке. Хранит строки "string".

    • Пароль — обрабатывает пароли. Хранит md5-строки.

    • Данные — хранит данные всех типов.

    • График — показывает график на основе chart.js.

    ВНИМАНИЕ: при изменении типа поля, все несохраненные изменения в карточке поля будут потеряны!

    Ширина по умолчанию, px (width)

    Для всех типов полей.

    Ширина поля по умолчанию в пикселях в WEB-интерфейсе. По умолчанию — 100.

    Рекомендуемые размеры:

    • Деньги — 100
    • Большие деньги — 110-120
    • Короткие цифры — 70-80
    • Чекбокс — 40-60
    • Фамилия, имя, короткое название — 150-200
    • Названия, комментарии — 250-300
    • Короткие кнопки — 40-60
    • Средние кнопки — 150
    • Длинные кнопки — 250-300

    Текст кнопки (buttonText)

    Только для поля Кнопка.

    Текст на кнопке.

    Рекомендуется заполнять КАПСЛОКОМ.

    Name поля в строчной части (column)

    Для всех типов полей. Кроме Уникального.

    Name-поля привязки для префильтра и футера.

    Для префильтра — по какому полю строчной части будет осуществляться фильтрация.

    Для футера — в колонке какого поля строчной части будет размещено текущее поле.

    Интервальный (intervalFilter)

    Для полей типов Дата, Число, Селект (простой) в плейсменте префильтр.

    Определяет тип поля как интервальный — фильтровать от или до указанного значения (включительно).

    • Стартовый — фильтровать от указанного значения (включительно).

    • Завершающий — фильтровать до указанного значения (включительно).

    Не действует если поле фильтра пустое.

    Будьте внимательны: для колонок, содержащих строки или числа, сравнения будут вести себя по-разному, так как сортировка строк и чисел отличается!

    linkTableName

    Для типа поля Ярлык.

    Name таблицы из которой будет браться значение поля. Работает только вместе с linkFieldName.

    Используя поле ярлык, легко получить зацикливание таблицы или группы таблиц.

    linkFieldName

    Для типа поля Ярлык.

    Name поля вне строчной части, из которого будут браться данные. Работает только вместе с linkTableName.

    Используя поле ярлык легко получить зацикливание таблицы или группы таблиц.

    Значение по умолчанию (default)

    Для всех типов полей. Кроме Файл, Ярлык, Уникальное, Кнопка, Комментарии, Пароль.

    Значение по умолчанию, которое будет подставляться в поле при создании строки или таблицы.

    Единица измерения (unitType)

    Для полей типа Число, Селект (простой) и Селект-дерево (простое).

    Единица измерения автоматически добавляется в отображение через пробел после значения поля.

    Если взять значение из ячейки кодом, то единица измерения там будет отсутствовать.

    Автоматически показывается в заголовке поля.

    Показывать единицу измерения до значения (before)

    Для полей типа Число.

    Дочернее для unitType.

    Показывает единицу измерения поля перед числовым значением.

    Знаков после запятой (dectimalPlaces)

    Для полей типа Число.

    Ограничение количества знаков после запятой.

    Округляется в соответствии с правилами в round и step.

    Денежный формат (currency)

    Для типа поля Число.

    Трансформирует вывод значения 1560.501 560,50.

    Логично использовать вместе с unitType вида

    Префикс (prefix)

    Для полей типа Число.

    Дочернее для currency.

    Позволяет настроить оформление числа.

    Если указан, то перекрывает настройку currency.

    Возможно указать разные значения для чисел >= 0 и < 0 используя оператор **.

    Например: pref **minuspref будет показан для положительных и ноля, minus для отрицательных.

    Префикс для отрицательных заменяет знак -.

    Разделитель тысячных (thousandthSeparator)

    Для полей типа Число.

    Дочернее для currency.

    Позволяет настроить оформление числа.

    Если указан, то перекрывает настройку currency.

    Возможно указать разные значения для чисел >= 0 и < 0 используя оператор ** — до разделителя для положительных, после для отрицательных. Пробелы значимые.

    Разделитель десятичных (dectimalSeparator)

    Для полей типа Число.

    Дочернее для currency.

    Позволяет настроить оформление числа.

    Если указан, то перекрывает настройку currency.

    Возможно указать разные значения для чисел >= 0 и < 0 используя оператор ** — до разделителя для положительных, после для отрицательных. Пробелы значимые.

    Постфикс (postfix)

    Для полей типа Число.

    Дочернее для currency.

    Позволяет настроить оформление числа.

    Если указан, то перекрывает настройку currency.

    Возможно указать разные значения для чисел >= 0 и < 0 используя оператор ** — до разделителя для положительных, после для отрицательных. Пробелы значимые.

    Округление (round)

    Правило округления числа для типа поля Число.

    • Математическое — до 5 (исключительно) в меньшую сторону, от 5 (включительно) в большую сторону.

    • В большую сторону — всегда в большую сторону.

    • В меньшую сторону — всегда в меньшую сторону.

    Шаг округления (step)

    Для типа поля Число.

    Дочернее для round.

    Шаг округления, с которым оно будет производиться. Дробное значение указывается через .

    Например:

    Исходное число: `3.43`
    Округление: `В большую сторону`
    Шаг округления: `0.15`
    Результат: `3.45`
    

    Тип текста (textType)

    Для типа поля Текст.

    Определяет каким образом будет оформлен текст, содержащийся в поле при открытии его на редактирование.

    • ТЕКСТ — простой текст с переносами строк. Вариант по умолчанию. Нет подсветки разметки.

    • CSS — с подсветкой разметки CSS.

    • XML — с подсветкой разметки XML.

    • HTML — с подсветкой разметки HTML.

    • JSON — открывается редактор JSON.

    • TOTUM-код — с подсветкой разметки TOTUM-кода.

    • MARKDOWN — с подсветкой разметки MARKDOWN.

    • JAVASCRIPT — с подсветкой разметки JAVASCRIPT.

    Ограничение видимости текста в web (viewTextMaxLength)

    Для полей типа Текст, Комментарии и Селект (мульти).

    Ограничивает вывод текста в поле в WEB-интерфейсе и при автоматическом выводе на печать.

    Выводить на печать текст целиком (printTextfull)

    Для полей типа Текст, Селект (множественный), Селект-дерево (множественное) и Комментарии.

    Для Селект (множественный), Селект-дерево (множественное) дочернее для multiple.

    Выводит все содержимое ячейки на печать, независимо от его размера.

    Дата-время (dateTime)

    Для типа поля Дата и Комментарии.

    Переключение между вариантом Y-m-d и Y-m-d H:i.

    Поле Дата не поддерживает секунды. Если вам необходимо хранить время с секундами — используйте поле Строка.

    Формат вывода в интерфейс даты/времени (dateFormat)

    Для типа поля Дата.

    Определяет формат вывода даты в интерфейс. Не влияет на формат хранения данных в поле.

    Задается как строка, в которой будут произведены замены:

    Символы помеченные как только отображение некорректно работают с датапикером!

    • d — День месяца, 2 цифры с ведущим нулём от 01 до 31.
    • D — Текстовое представление дня недели, здесь вывод на кириллице.
    • j— День месяца без ведущего нуля от 1 до 31 (только отображение).
    • z – Порядковый номер дня в году от 0 до 365.
    • F — Полное наименование месяца.
    • W — Порядковый номер недели года (только отображение).
    • m — Порядковый номер месяца с ведущим нулём от 01 до 12.
    • M — Сокращенное наименование месяца.
    • n — Порядковый номер месяца без ведущего нуля от 1 до 12.
    • Y — Порядковый номер года, 4 цифры. Примеры: 1999, 2003.
    • y — Номер года, 2 цифры. Примеры: 99, 03.
    • H — Часы в 24-часовом формате с ведущим нулём от 00 до 23.
    • i — Минуты с ведущим нулём от 00 до 59.
    • s — Секунды с ведущим нулём от 00 до 59.

    Формат валидизации ввода (regexp)

    Для типа поля Строка, Уникальное и Число.

    Выражение в формате PCRE regExp, с которым сопоставляется получаемое значение поля. Если совпадения не происходит, вычисления прерываются ошибкой.

    Пример

    ^\d+$ — только положительные целые числа включая 0.

    ^[1-9]\d*$ — только положительные целые числа исключая 0.

    ^(.+@.+\..+|.{0})$ — проверка формата email.

    Текст ошибки валидизации ввода (regexpErrorText)

    Для типа поля Строка, Уникальное и Число.

    Текст предупреждения, который будет показан во всплывающем окне в результате неверного ввода значения по regexp.

    Переносить значения при дублировании (copyOnDuplicate)

    Для всех типов полей. Кроме Файл, Ярлык, Уникальное, Кнопка, Пароль и График.

    Определяет будут ли переноситься текущие значения поля во вновь созданную строку.

    Подробнее про дублирование ⟶

    Дублировать файл при копировании (fileDuplicateOnCopy)

    Для типа поля Файл.

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

    Если параметр отключен, то копия файла при дублировании не создается, а создается ссылка на файлы, содержащиеся в ячейке-источнике.

    Можно создавать однонаправленные связки, в которых поле получатель является неизменяемым вручную. Тогда в поле-источнике галочку следует поставить для того, чтобы дублирование строк в таблице источнике проходило корректно.

    Должно быть снято в случае создания обновляющих друг друга полей файлов через функции set. Тогда удаление файла будет возможно только в поле, в которое он был добавлен.

    Дублирование ⟶

    Имя файла с хешем в конце (nameWithHash)

    Для типа поля Файл.

    В случае включения этой опции в конец названия файла будет подставляться случайный хеш для затруднения подбора пути к файлу.

    Защищенный доступ к файлам (secureFile)

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

    Если поставить галочку и сохранить, то снять ее для этого поля будет невозможно!

    При первой загрузке файла в поле с этой настройкой в корневой папке установки Totum будет создана папка secureFiles, в которую невозможен доступ по http(s) протоколу. Файлы будут сохраняться в эту папку.

    В момент, когда файл запрашивается пользователем, его права на доступ к этому полю будут проверяться на стороне сервера.

    Если у пользователя:

    То файл будет отдан через PHP-сервер.

    Это накладывает ограничения на размер файла и на нагрузку на PHP в момент отдачи файла. Время скачки файла должно быть меньше максимального времени работы скрипта PHP, установленного в Conf.php в корне установки.

    Задать подпапку для файлов (customFileFolder)

    Дочернее для secureFile.

    Задает кастомную подпапку по пути /home/totum/totum-mit/secureFiles/YOUR_DOMAIN/CUSTOM_FOLDER

    Таким образом вы можете размещать файлы на подключенных HDD/SSD, сделав на папку символическую ссылку.

    Делить на подпапку каждые N id (fieIdDivider)

    Дочернее для customFileFolder.

    Актуально только для строчной части и для полей Файл внутри циклов

    Для файлов внутри цикла используются номера циклов, а не id строк внитри цикла!

    Задает автоматическую подпапку на каждые N id: /home/totum/totum-mit/secureFiles/YOUR_DOMAIN/CUSTOM_FOLDER/0000001

    Таким образом вы можете архивировать старые файлы на подключенных HDD/SSD, переместив и сделав на папки символические ссылки.

    Версии файлов (versioned)

    Дочернее для customFileFolder.

    PRO Версии файлов

    Удаление доступно для ролей (removeVersionsRoles)

    Дочернее для versioned.

    PRO Версии файлов

    Таймер перезаписи версии (varsionsTimer)

    Дочернее для versioned.

    PRO Версии файлов

    Принимает файлы (mime-тип) (accept)

    Для типа поля Файл.

    В случае указания будет принимать файлы с указанным mime-типом.

    Пишем через , mime-types или/и расширения с точкой, например: .ttm

    Например, для картинок в jpeg и png поставьте image/jpeg,image/jpeg.

    Чтобы принимать только с расширением .xyz и .hmm поставьте — .xyz,.hmm.

    Список mime-типов от Mozilla: https://developer.mozilla.org/...

    Обязательное (required)

    Для всех типов полей. Кроме Кнопка, Ярлык и График.

    При активированном элементе не дает сохранить поле с пустым значением.

    Аналогично при редактировании этого поля выдает предупреждение и отменяет сохранение если введена пустота.

    Будьте внимательны при назначении этого параметра существующим полям. При выполнении кодов они будут остановлены по ошибке, если в их единице пересчета окажется пустое поле с установленным Обязательно.

    notLoaded (notLoaded)

    Только для типов Текст и Данные

    Если установлено, то в таблицу при загрузке передается значение **NOTLOADED**. Используется в случае, когда поля содержат большие объемы информации и делают невозможным показ на одной странице большого количества строк.

    В таких случаях notLoaded кардинально сокращает объем данных, передаваемых в браузер.

    Показывать в WEB (showInWeb)

    Для всех типов полей.

    Определяет показывать ли поле в WEB-интерфейсе.

    Вводится при добавлении в WEB (insertable)

    Для всех типов полей. Кроме Кнопка и График.

    Дочернее для showInWeb.

    Определят будет ли поле доступно для изменения в строке добавления строчной части.

    Добавление доступно ролям (addRoles)

    Для всех типов полей. Кроме Кнопка и График.

    Дочернее для insertable.

    Определяет какие роли будут иметь доступ к изменению значения поля в строке добавления.

    Редактируемое в WEB (editable)

    Для всех типов полей. Кроме Кнопка и График.

    Дочернее для showInWeb.

    Определяет, будет ли поле доступно для изменения в WEB-интерфейсе (исключая строку добавления).

    Групповое изменение (editGroup)

    Для всех типов полей. Кроме Кнопка и График.

    Дочернее для editable.

    Определяет будет ли доступно одновременное изменение нескольких ячеек в одном поле в строчной части.

    Изменение

    При выделенных других колонках (editGroupMultiColumns)

    Для всех типов полей. Кроме Кнопка и График.

    Дочернее для editGroup.

    Определяет будет ли доступно одновременное изменение если выделено несколько полей (колонок).

    Изменение

    Редактирование доступно ролям (editRoles)

    Для всех типов полей. Кроме Кнопка.

    Дочернее для editable.

    Определят каким ролям будет доступно поле для изменения в WEB-интерфейсе (исключая строку добавления).

    Показывать выпадающее меню (dropdownView)

    Для всех типов полей. Только для полей в строчной части.

    Дочернее для showInWeb.

    Определяет показывать ли для пользователя стрелку выпадающего в заголовке поля.

    Выпадающее меню для пользователя дает доступ к:

    • Сортировка — А-Я или Я-А.

    • Скрыть поле — временно скрывает видимость поля.

    • Ширина поля — ширина поля в пикселях.

    • Математические операции — для числовых полей Сумма, Среднее, Максимальное, Минимальное, Количество значений.

    При включенном разделении на страницы действия осуществляются только по текущей странице.

    Фильтр по полю (filterable)

    Для всех типов полей. Кроме Файл, Кнопка, Комментарии, Пароль и График.

    Дочернее для showInWeb.

    Активирует фильтр по значениям колонки. Отображается в заголовке поля. Доступен только в строчной части.

    Можно выбрать одно или несколько значений.

    Одинаковые значения склеиваются в момент вызова фильтра.

    Не рекомендуется использовать для таблиц большого размера, содержащих в поле множество уникальных значений.

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

    Максимальное количество выводимых элементов (selectLength)

    Для типа поля Селект (простой) и Селект-дерево.

    Дочернее для showInWeb.

    Определяет, какое количество элементов списка будет подгружаться в выпадающий список в WEB-интерфейсе.

    Позволяет снизить нагрузку на браузер пользователя при работе с большими списками.

    Данные не полны

    При срабатывании ограничении при скролле в конец выпадающего списка будет указано, что показана только часть значений.

    Скрыто по умолчанию (hidden)

    Для всех типов полей.

    Дочернее для showInWeb.

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

    Предупреждение при изменении (warningEditPanel)

    Для всех типов полей. Кроме Комментарии.

    Дочернее для showInWeb.

    Показывает окошко предупреждения с вариантами действий ОК и ОТМЕНИТЬ.

    Текст предупреждения (warningEditText)

    Для всех типов полей. Кроме Комментарии.

    Дочернее для warningEditPanel.

    Текст предупреждения, который будет показан во всплывающем окне warningEditPanel.

    RegExp значения, при котором выводить предупреждение (warningEditRegExp)

    Для всех типов полей. Кроме Файл, Кнопка, Комментарии, Пароль, Чекбокс.

    Дочернее для warningEditPanel.

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

    Показывать строку как URL (url)

    Для типа поля Строка, Уникальное.

    Дочернее для showInWeb.

    В WEB-интерфейсе оформляет значение в поле в виде гипертекстовой ссылки.

    Открывать в (openIn)

    Для типа поля Строка, Уникальное.

    Дочернее для url.

    Определяет, как открывать ссылки.

    С новой строчки (tableBreakBefore)

    Для всех типов полей. Кроме Уникальное. Для хедера, префильтра и футера.

    Дочернее для showInWeb.

    Переносит поле на следующую строку.

    Подробнее про секции ⟶

    Заголовок (sectionTitle)

    Для всех типов полей. Кроме Уникальное. Для хедера, префильтра и футера.

    Дочернее для tableBreakBefore.

    Задает заголовок секции, по клику на который ее можно свернуть со всеми полями. В это же поле записываются параметры секций.

    Подробнее про секции ⟶

    Цвет панели (panelColor)

    Для всех типов полей. Кроме Уникальное.

    Дочернее для showInWeb.

    Определяет цвет заливки заголовка и тела поля. Задается как HEX значение #ff00cc. Или текстовым определением цвета HTML, например — tomato.

    Для заголовков рекомендуется использовать светлые цвета.

    Имеет преимущество перед форматированием поля в скорости, тк не рассчитывается на стороне сервера.

    Рекомендуемые цвета заливок, сочетающиеся с общим дизайном Тотум:

    • OldLace

    • PapayaWhip

    • PeachPuff

    • LightSalmon

    • Tomato

    • GreenYellow

    • Lavender

    • Orange

    • RoyalBlue

    • SteelBlue

    • Magenta

    • MistyRose

    • Beige

    • FloralWhite

    • WhiteSmoke

    • GhostWhite

    • AliceBlue

    Цвет выделения (decorationColor)

    Для типа поля Комментарии.

    Определяет каким цветом будет подчеркивание непрочитанных для пользователя комментариев.

    Видно ролям (webRoles)

    Для всех типов полей.

    Дочернее для showInWeb.

    Определяет роли, которые будут видеть это поле.

    Если выбран только Создатель, то заголовок поля будет подсвечиваться красно-розовым.

    Если выбрана хоть одна роль, то данные с сервера будут передаваться только для обладающих ей пользователей.

    С логированием (logging)

    Для всех типов полей. Кроме Кнопка.

    Включает запись изменений, производимых в WEB-интерфейсе в системную таблицу логирования.

    Если включено, то будет записана следующая информация:

    • Дата-время

    • Id пользователя

    • Тип действия — изменение или добавление.

    • Введенные данные

    • Значение поля после изменения

    Для записи автоматических действий в функциях действий должен быть указан параметр log: true.

    Лог доступен ролям (logRoles)

    Для всех типов полей. Кроме Кнопка.

    Дочернее для showInWeb.

    Определяет каким ролям будет доступен лог действий по полю.

    Доступ к логу осуществляется через клик правой кнопкой мыши в поле, далее кнопка Лог в выпадающей панели.

    Помимо доступа к логам по конкретному полю у роли должен быть доступ к таблице Структура таблицы для вывода лога.

    Для записи лога через WEB-интерфейс должен быть включен параметр logging.

    Для записи автоматических действий в функции действий должен быть указан параметр log: true.

    Ширина контекстной панели (contextPanelWidth)

    Для всех типов полей.

    Дочернее для showInWeb.

    Делает контекстную панель по правой кнопке шире для конкретного поля на + 100px и + 200px.

    PRO Динамическое поле (dynamic)

    Доступно только в PRO и только для типов полей Строка, Число, Данные.

    Подробнее про Динамическое поле

    Отображать в другом месте (showInWebOtherPlace)

    Для всех типов полей.

    Позволяет отобразить поле в другом плейсменте и по другому sort.

    Порядок расчета при этом остается неизменным.

    Другой плейсмент (showInWebOtherPlacement)

    Для всех типов полей.

    Дочернее для showInWebOtherPlace.

    Позволяет отображать поле в другом плейсменте.

    Другой плейсмент

    Другой сорт (showInWebOtherOrd)

    Для всех типов полей.

    Дочернее для showInWebOtherPlace.

    Позволяет отображать поле по другому sort.

    Другой Name (showInWebOtherName)

    Для всех типов полей.

    Дочернее для showInWebOtherPlace.

    Позволяет отображать поле по другому name, например, что бы поле из хедера или футера отобразить в футере-колонки.

    Показывать в API (showInXml)

    Для всех типов полей. Кроме Кнопка.

    При включении этой опции значения поля будет по запросу отдаваться через json-интерфейс.

    Подробнее про API ⟶

    Вводится при добавлении в API (apiInsertable)

    Для всех типов полей. Кроме Кнопка.

    Дочернее для showInXml.

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

    Редактируемое в API (apiEditable)

    Для всех типов полей. Кроме Кнопка.

    Дочернее для showInXml.

    При включении значение поля может изменяться через json-интерфейс.

    Подробнее про API ⟶

    Редактирование в API доступно ролям (xmlEditRoles)

    Для всех типов полей. Кроме Кнопка.

    Дочернее для apiEditable.

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

    Подробнее про API ⟶

    Видно ролям в API (xmlRoles)

    Для всех типов полей. Кроме Кнопка.

    Дочернее для showInXml.

    Если выбраны роли, то просмотр поля через json-интерфейс будет доступно только api-пользователям с этими ролями.

    Добавление и редактирование поля не входящим в этот список ролям будет запрещено, даже если они перечислены в apiEditable/apiInsertable.

    Подробнее про API ⟶

    Код (code)

    Для всех типов полей. Кроме Ярлык, Кнопка, Комментарии, Пароль и График.

    Секция кода, осуществляющая вычисление значения в поле в момент пересчета единицы пересчета.

    При вводе значения вручную, значение в поле разделяется на расчетное и ручное — появляется индикация с рукой.

    • Открытая ладонь — значение задано вручную и отличается от расчетного.

    • Закрытая ладонь — значение введено вручную и идентично расчетному.

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

    Ручное значение

    Подробнее про синтаксис ⟶

    Подробнее про код ⟶

    Исполнять код только при добавлении (codeOnlyInAdd)

    Для всех типов полей. Кроме Ярлык, Кнопка, Комментарии, Пароль.

    Дочернее для code.

    При включенном параметре код будет выполняться только в строке добавления, при добавлении через функции типа insert() или при создании таблицы.

    При последующем ручном вводе значений разделения на расчетное и ручное значение не происходит.

    Возможно повторно запустить исполнение кода с параметром «тольок при добавлении» при помощи вызова пересчета функцией reСalculate с параметром field:.

    Подробнее про синтаксис ⟶

    Подробнее про код ⟶

    Текст ошибки (errorText)

    Для всех типов полей. Кроме Файл, Ярлык, Кнопка, Комментарии, Пароль.

    Дочернее для code.

    При наличии ошибки в code значение в поле выводится как ОШБК!.

    Значение в этой настройке заменяет ОШБК!Введенный текст .

    Используется, чтобы убрать для пользователей отображение некритичных ошибок. Например, деление на ноль при неполном вводе данных, можно заменить на Введите данные или Выберите интервал.

    Подробнее про синтаксис ⟶

    Подробнее про код ⟶

    Код действия (codeAction)

    Для всех типов полей.

    Секция кода, выполняющая действия по условиям.

    Подробнее про коды-действий ⟶

    Выполнять код действия при добавлении (CodeActionOnAdd)

    Для всех типов полей. Кроме Кнопка.

    Дочернее для codeAction.

    Запускает выполнение кода действия при добавлении строки и создании цикла.

    Подробнее про коды-действий ⟶

    Выполнять код действия при изменении (CodeActionOnChange)

    Для всех типов полей. Кроме Кнопка.

    Дочернее для codeAction.

    Запускает выполнение кода действия при изменении значений в поле.

    Подробнее про коды-действий ⟶

    Выполнять код действия при удалении (CodeActionOnDelete)

    Для всех типов полей. Кроме Кнопка.

    Дочернее для codeAction.

    Запускает выполнение кода действия при удалении строки.

    При удалении текущее значение поля через #nowfieldname и $#nfv равняется null. Если нужно взять последнее значение то обращаться следует через #old.nowfieldname или $#onfv.

    Посмотрите подробнее про обращения к значениям полей.

    Подробнее про коды-действий ⟶

    Выполнять код действия при клике (CodeActionOnClick)

    Для всех типов полей. Кроме Кнопка.

    Дочернее для codeAction.

    Запускает выполнение кода действия при двойном клике на заблокированную ячейку.

    Подробнее про коды-действий ⟶

    Оформить клик как URL (CodeActionOnClickAsUrl)

    Для всех типов полей. Кроме Кнопка.

    Дочернее для CodeActionOnClick.

    оформляет значение в поле как URL при клике на который выполняется действие по триггеру CodeActionOnClick.

    Разрешить действие в режиме только для чтения (AllowActionClickOnRead)

    Для всех типов полей. Кроме Кнопка.

    Дочернее для codeAction.

    Разрешает действие для ролей с режимом доступа к таблице Только для чтения.

    Снимать галочки после выполнения (uncheckAfterClick)

    Для типа поля Кнопка.

    Дочернее для codeAction.

    Если были установлены галочки в колонке id строчной части, то после успешного выполнения кода действия они будут сняты.

    В случае если выполнение кода завершится ошибкой или errorException это действие выполнено не будет.

    Id строк, выделенных галочкой, можно получить при помощи быстрой переменной $#ids. Только для кодов действий.

    Закрыть окно после выполнения (closeIframeAfterClick)

    Для типа поля Кнопка.

    Дочернее для codeAction.

    Если кнопка нажимается во всплывающем окне iframe, то после выполнения кода действия это окно будет закрыто.

    В случае если выполнение кода завершится ошибкой или errorException закрытие окна не произойдет.

    Применение в кнопке вызывающей linkToButtons или linkToInput приводит к их неработоспособности! Используйте параметр close: true внутри этих функций.

    Действие доступно при просмотре (pressableOnOnlyRead)

    Для типа поля Кнопка.

    Дочернее для codeAction.

    Позволяет нажимать кнопку ролям у которых права на таблицу — только чтение.

    Включить кнопку в строке добавления (buttonActiveOnInsert)

    Для типа поля Кнопка.

    Дочернее для codeAction.

    Делает кнопку доступной в строке добавления.

    Позволяет вместе с использованием переменной хэша строки добавления $#ih вызвать [временную таблицу] и потом из нее вернуть данные в поле строки добавления используя параметр hash функции set. Или выполнить set в поле строки добавления без вызова временной таблицы.

    Открыть контекстную панель (openContextPanel)

    Для типа поля Кнопка.

    Дочернее для codeAction.

    Открывает контекстную панель поля по окончании выполнения кода-действия. Панель будет открыта даже в том случае, если код действия будет содержать только =:.

    Код селекта (codeSelect)

    Для типа поля Селект и Селект-дерево.

    Код, формирующий отображение оснований, содержащихся в поле.

    Для поля Селект из секции =: должен быть возвращен результат работы функции selectRowListForSelect или аналогичный по формату.

    Для поля Селект-дерево из секции =: должен быть возвращен результат работы функции selectRowListForTree или аналогичный по формату.

    Подробнее про реляционные взаимосвязи ⟶

    Индивидуальный расчет селекта для каждой строки (codeSelectIndividual)

    Для типа поля Селект и Селект-дерево.

    Дочернее для codeSelect.

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

    Например, если в разных строках могут быть разные наборы отображений в зависимости от значений других полей.

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

    Ресурсоемкая операция! Особенно если таблица большая или выборка отображений идет из большой таблицы. Не включайте без реальной необходимости!

    Проверять введенные значения на сервере (checkSelectValues)

    Для типа поля Селект и Селект-дерево.

    Дочернее для codeSelect.

    Если включено, то в момент сохранения значения на сервере будет произведен расчет кода-селекта и доступные значения будут сравнены с вводимым значением. Если вводимое значение не попадает в рассчитанный диапазон — сохранение будет отменено, а пользователю показана ошибка недопустимости вводимого значения.

    Заменяет код-действия написанный вручную, проверяющий допустимые значения.

    Если отключено и нет защитного кода действия, то пользователь может сохранить на сервере любое значение в поле селекта независимо от доступных значений.

    Ресурсоемкая операция! Не включайте без реальной необходимости!

    Множественные значения (multiple)

    Для типа поля Селект, Селект-дерево и Файл.

    Дочернее для codeSelect.

    Для селект и селект-дерева определяет, будет ли основание поля содержать одно значение или список. Для файла при включении убирает ограничение на один элемент.

    Будьте внимательны при изменении этого параметра в поле, которое уже содержит данные (кроме типа поля Файл), так как это действие ведет к изменению формата хранящихся данных.

    Если вы меняете простое на множественное, то потребуется пересчитать все строки с данными этого поля. Если в обратном направлении, то часть данных содержащихся в множественных значениях будет потеряна.

    Разделитель множественных значений (multiSeparator)

    Для типа поля Селект и Селект-дерево.

    Дочернее для multiple.

    Определяет разделитель для значение отображаемых в поле.

    Отображение множественного селекта в ячейке (multySelectView)

    Для типа поля Селект и Селект-дерево.

    Дочернее для multiple.

    Определяет, будет ли в WEB-интерфейсе показываться отображения мультиселектов или будет показано N значений.

    Отображать путь в ячейке (treeViewTypeFull)

    Для типа поля Селект-дерево.

    Дочернее для codeSelect.

    Определяет, будет показываться только конечное отображение значения или весь путь.

    Подробнее про tree-view ⟶

    Дерево строится по одной таблице (treeAutoTree)

    Для типа поля Селект-дерево.

    Дочернее для codeSelect.

    Выбирается, если значения папок дерева содержаться в той же таблице и поле (колонке), что и значения.

    Если снято, то это значит, что структура дерева находится в одной таблице, а значения в другой.

    Подробнее про tree-view ⟶

    Порядок расчета в tree (treeViewCalc)

    Для типа поля Селект-дерево.

    Дочернее для codeSelect.

    • Сначала нижний уровень — в этом режиме сначала вычисляются строки нижнего уровня.

    • Сначала верхний уровень — в этом режиме сначала вычисляются строки верхнего уровня.

    Работает только для типа дерева По другой таблице

    Папки можно выбирать (treeSelectFolders)

    Для типа поля Селект-дерево.

    Дочернее для treeAutoTree.

    Определяет, можно ли выбирать промежуточные значения дерева в качестве значения поля (можно ли выбирать папки).

    Подробнее про tree-view ⟶

    PRO Тип таблицы-дерева (treeViewType)

    Только для PRO-версии

    Для типа поля Селект-дерево.

    Только для поля с name = tree. Является ключевым параметром — когда он включен, то строчная часть таблицы будет отображаться в виде дерева.

    Подробнее про PRO Tree-view ⟶

    Загрузить все (treeViewLoad)

    Для типа поля Селект-дерево.

    Дочернее для treeViewType.

    Только для поля с name = tree.

    Если включено, то все значения дерева будут загружены при загрузке таблицы.

    Если выключен, то дерево будет загружено в свернутом виде и будут подгружаться только сегменты разворачиваемые пользователем.

    Formatting for tree folders (treeViewCode)

    *

    Hide Add button (treeHideAddButton)

    Для типа поля Селект-дерево.

    Дочернее для treeViewType.

    Только для поля с name = tree.

    Если включено, то будет скрыта кнопка Добавить сверху справа строчной части. останутся только кнопки в выпадающих меню в ветках.

    Открыть все (treeViewOpen)

    Для типа поля Селект-дерево.

    Дочернее для treeViewLoad.

    Только для поля с name = tree.

    Открывает все сегменты дерева при загрузке таблицы.

    Если treeViewLoad включен, а treeViewOpen выключен, то дерево будет загружено полностью, но показано в свернутом виде.

    Name-поле родителя (treeViewParentField)

    Для типа поля Селект-дерево.

    Дочернее для treeViewType.

    Только для поля с name = tree.

    Если не заполнено, то используется как tree.

    Необходимо указать, если в коде-селекта tree-view в параметре parent указано поле, отличное от tree.

    Name-поле для bfield (treeBfield)

    Для типа поля Селект-дерево.

    Дочернее для treeViewType.

    Только для поля с name = tree.

    Если не указано, то используется id.

    Необходимо указать name поля если в коде-селекта для tree использован параметр bfield.

    Все (*ALL*)

    Для типа поля Селект и Селект-дерево в плейсменте префильтр.

    Дочернее для codeSelect.

    Определяет будет ли доступно значение \*ALL\* для отображения всех значений поля строчной части.

    Подробнее про префильтры ⟶

    Название для опции Все (*ALL*)

    Для типа поля Селект в плейсменте префильтр.

    Дочернее для selectFilterWithAll.

    Определяет текст отображения.

    Подробнее про префильтры ⟶

    Ничего (*NONE*)

    Для типа поля Селект и Селект-дерево в плейсменте префильтр.

    Дочернее для codeSelect.

    Запрещает выборку для всего префильтра, даже если содержится только в одном поле префильтра.

    Используется для таблиц большого размера для ускорения их первоначального отображения или для запрета отображения данных таблиц по ролям или пользователям.

    Обязательно должно быть выбрано для множественного. Тк при снятии галочек со всех значений автоматически переводит селект в *NONE*.

    Подробнее про префильтры ⟶

    Название для опции Ничего (*NONE*)

    Для типа поля Селект в плейсменте префильтр.

    Дочернее для selectFilterWithNone.

    Определяет текст отображения.

    Подробнее про префильтры ⟶

    Пустое () (selectFilterWithEmpty)

    Для типа поля Селект и Селект-дерево в плейсменте префильтр.

    Дочернее для codeSelect.

    Позволяет выбирать пустые значения.

    Подробнее про префильтры ⟶

    Название для опции Пустое () (selectFilterWithEmptyText)

    Для типа поля Селект в плейсменте префильтр.

    Дочернее для selectFilterWithEmpty.

    Определяет текст отображения.

    Подробнее про префильтры ⟶

    Заголовок селекта с пустым значением (withEmptyVal)

    Для типа поля Селект и Селект-дерево.

    Дочернее для codeSelect.

    При отсутствии этого параметра невозможно выбрать пустое значение для простого Селекта и Селект-дерева так как в выпадающем списке будут присутствовать только имеющие значение пункты.

    Активация этого параметра устанавливает отображение для значения null или пустого списка и добавляет его в выпадающий список.

    Таблица селекта для изменения (selectTable)

    Для типа поля Селект и Селект-дерево.

    Дочернее для codeSelect.

    Определяет таблицу для удаленного добавления/изменения данных из таблицы отображения (синие кнопки при открытии поля на редактирования).

    Открывает строку в удаленной таблице на изменение в виде панели.

    BaseField отличный от id (selectTableBaseField)

    Для типа поля Селект и Селект-дерево.

    Дочернее для selectTable.

    Указывается name поля в таблице источнике в случаях, когда селект строится с использованием bfield.

    Панель селекта для изменения (selectTableAction)

    Для типа поля Селект и Селект-дерево.

    Дочернее для selectTable.

    Принимает код для вызова панели изменения селекта вида:

    =: linkToPanel(table: ''; id: ; field: )
    

    Где:

    • table — name таблицы-источника.

    • id — значение id строки-источника, которую нужно открыть в панели.

    • field в формате 'name' = $value — предзаполняемые поля при добавлении значения.

    Пример

    example: linkToPanel(table: 'goods'; id: #fieldname; field: 'category' = "box"; field: 'size' = $size_of_box)
    size_of_box: if(condition: #param1 = true; then: 1; else: 2)
    
    // В этом коде при нажатии на синий плюс панель добавления в таблицу goods будет 
    // предзаполнена в полях category = "box" и size = 1 или 2.
    

    Ручное создание селекта (values)

    Для типа поля Селект.

    В json-форме предлагается заполнить структуру вида ключ-значение для отрисовки селекта.

    Можно использовать числовые и строковые основания.

    Условное форматирование ячейки (format)

    Для всех типов полей.

    Секция кода условного форматирования. Ожидает возврат результата работы функции setFormat из секций f1=:, f2= итд.

    Результаты применяются в соответствии с номером у f. Числа обрабатываются как строки, поэтому возможна вставка условий между существующими при помощи добавления уровня цифры f1=: < f12=: < f2=:.

    Помимо f может быть использован префикс p, который будет выполнен в момент открытия панели по клику правой кнопки мыши на поле. Нумеруется аналогично f. Работает с функциями форматирования с префиксом panel...:

    • panelButtons() — размещает на панели дополнительные кнопки.

    • panelImg() — размещает на панели изображение.

    • panelHtml() — отображает на панели html.

    Подробнее про форматирование ⟶

    Описание поля (help)

    Для всех типов полей. Поддерживает html. Выводится в шапку поля в виде i. Автоматически разворачивается при переходе фокуса в поле в строке добавления.

    Если необходимо добавить внутреннее техническое описание поля недоступное пользователям — заключите его в тег <admin>...</admin>.

    Если в описании используется текст только внутри тега <admin>, то i будет показано только Создателю.

    Если перед текстом передать тег <hide>, то описание не будет автоматически разворачиваться при переходе фокуса в поле в строке добавления.

    Тип графика (chartType)

    Для типа поля График.

    Определяет базовую настройку для загрузки в Настройки графика.

    Настройки графика (chartOptions)

    Для типа поля График.

    JSON-поле вида:

    {
      "data": {
        "datasets": [ -- список, каждая строка определяет как будет выглядеть данные из values в codeChart
          {
            "fill": true, -- заполнение
            "type": "line", -- тип графика (line | bar)
            "yAxisID": "y-axis-1", -- к какой оси относится
            "borderColor": "tomato", -- цвет линии
            "backgroundColor": "#ff63474a", -- цвет заполнения
            "label": "Выручка, р.", -- подпись
            "borderWidth": 2 -- толщина линии в px
          },
          {
            "fill": false,
            "type": "bar",
            "yAxisID": "y-axis-2", -- использование второй оси
            "borderColor": "#ff861c98",
            "backgroundColor": "#ff861c98",
            "label": "Заказов, шт."
          }
        ]
      },
      "legend": {
        "display": true -- показывать легенду иди нет
      },
      "scales": {
        "yAxes": [
          {
            "id": "y-axis-1", -- название оси
            "position": "left" -- положение оси
          },
          {
            "id": "y-axis-2",
            "position": "right"
          }
        ]
      },
      "elements": {
        "line": {
          "tension": 0.000001, -- скругление точек графика
          "borderWidth": 1 -- толщина линий графика по умолчанию
        },
        "point": {
          "radius": 1 -- радиусы точек графика в px
        }
      },
      "aspectRatio": 2, -- соотношение сторон для широкого экрана
      "aspectRatioMobile": 1.5 -- соотношение сторон для мобильной версии меньше 600px
    }
    

    Документацию по настройкам chart.js можно посмотреть здесь. Данные для графиков относится к data. Данные из data относится к data. Все остальное относится к options.

    Данные для графиков (codeChart)

    Для типа поля График.

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

    Результатом работы кода должен являться ассоциированный массив следующего вида:

    =: rowCreate(field: "labels" = $list_labels; field: "values" = $list_values)
    
    list_labels: #labels
    
    list_values: listCreate(item: $dataset_list_1; item: $dataset_list_2; item: $dataset_list_3)
    
    dataset_list_1: #dataset_list_1
    dataset_list_2: #dataset_list_2
    dataset_list_3: #dataset_list_3
    
    

    В labels должен быть передан список с отметками по оси Х. В values список из списков c данными — datasets.

    jsonFields