⟵ сюдатуда ⟶
  • Quick start
  • Установка MIT
  • Установка PRO
  • Обновления
  • Оптимизация
  • Обновление v4-v5
  • Бэкапы
  • Консольная утилита bin/totum
  • Основы для пользователей
  • Интерфейс и компоновка
  • Таблицы и их параметры
  • Префильтр
  • Поля и их параметры
  • Синтаксис
  • Код, действия, форматирование
  • Реляционные взаимосвязи
  • Порядок расчета и единицы пересчета
  • Автозаполнение расчетных и временных
  • Дублирование строк и циклов
  • Сравнения
  • Функции
  • Отладка
  • Печать и CSV
  • API
  • Роли и пользователи
  • Нотификации
  • Действия по расписанию
  • Системные таблицы
  • [PRO] Деревья
  • Тип таблицы дерева
  • Оформление поля tree
  • Отступ для последующего поля при помощи tab: и обращения #l.tree
  • Roots для вывода части дерева
  • [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 генераторы
  • PRO Деревья

    Для оформления отображения таблицы в виде дерева необходимо содать в ней в строчной части поле с name равным tree с типом Селект-дерево.

    Дерево само по себе

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

    =: selectRowListForTree(table: $#ntn; field: 'title'; parent: $#nf)
    
    

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

    • Тип таблицы дерева (treeViewType) — это ключевая настройка, она должна быть включена для отображения таблицы в виде дерева!

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

    • Загрузить все (treeViewLoad) — загружает все значения дерева сразу. Если отключен, то значения загружаются в момент разворачивания папки.

    • Открыть все (treeViewOpen) — открыть все папки при загрузке таблицы.

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

    • name-поле для bfield (treeBfield)

    Тип таблицы дерева

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

    Для корректного отображения необходимо выбрать тип:

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

      Привязанный на фильтрацию префильтр НЕ СОВМЕСТИМ! с этим типом дерева — выборка всегда будет пустой!

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

      Вид дерева, когда поле tree строится по другой таблице:

      По другой таблице

      Пример кода:

      =: selectRowListForTree(table: 'other_table'; field: 'title'; parent: 'tree')
      

    Оформление поля tree

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

    Например вы можете отключить отображение названия родительской категории:

    f1=: setFormat(text: " ")
    

    Или заменить по условиям иконку папки, например если нет дочерних то:

    f2=: setFormat(condition: $ch = $#lc; icon: "folder-o")
    
    ch: selectTreeChildren(table: $#ntn; id: #id; parent: $#nf)
    

    Заблокировать разворачивание папки по условию при помощи параметра expand: false функции setFormat:

    f3=: setFormat(condition: $cond = 1; expand: false)
    
    

    Отступ для последующего поля при помощи tab: и обращения #l.tree

    Отступ

    f4=: setFormat(tab: $count)
    
    count:  #l.tree * 22 + 26
    

    Обращение #l.name_field может быть использовано для любого поля селект-дерево — возвращает уровень вложенности значения в поле.

    Roots для вывода части дерева

    В случае дерева по другой таблице, которое в текущем tree-view должно быть показано частично используется параметр roots: функции selectRowListForTree.

    В roots: передается список из значний id или bfield тех папок, которые должны оказаться на верхнем уровне.

    Все что будет выше этого уровня отображаться не будет.

    При использовании roots: порядок будет отображаться по сортировке корней!