⟵ сюдатуда ⟶
  • Учебный курс
  • Создание простых таблиц и полей
  • Коды базовый уровень
  • Селекты и связь между таблицами
  • Настройки таблиц базовый уровень
  • Префильтры базовый уровень
  • Условное форматирование базовый уровень
  • Коды действия базовый уровень
  • Использование всплывающих окон
  • Как открыть другую таблицу по нажатию кнопки?
  • Скрыть хедер или футер, обновить таблицу источник при закрытии окна, закрыть окно принудительно
  • Создание временной таблицы и ее особенности
  • Как заполнить строчную часть передав данные в хедер?
  • Как использовать временную таблицу для фонового расчета и получить из нее результат не показывая ее пользователю?
  • Как открыть текстовое окно ввода и как его можно модифицировать?
  • Вызов панели с кнопками
  • Циклы базовый уровень
  • Роли и пользователи в web
  • Коды продвинутый уровень
  • Коды действий продвинутый уровень
  • Префильтры продвинутый уровень
  • Настройки полей и таблиц продвинутый уровень
  • Циклы продвинутый уровень
  • Форматирование продвинутый уровень
  • Селект-дерево
  • Выполнения кода действия по расписанию
  • Печать и отправка email
  • Нотификации
  • Взаимодействие по API
  • Адаптивность и секции
  • Графики
  • Вид таблицы панелями и поворот строчной части
  • Анонимные таблицы для неавторизованного доступа
  • Внешние формы для сбора информации
  • Обновление и бэкапирование
  • Дублирование схем и перенос таблиц между базами
  • Консольная утилита bin/totum
  • Как открыть текстовое окно ввода и как его можно модифицировать?

    link_to_input

    Какая функция открывает окно ввода?

    linkToInput — она откроет небольшое окно с полем ввода и двумя кнопками — выполнить действие и закрыть.

    При нажатии на кнопку вполнения действия (ее название может быть задано параметром button: "Текст на кнопке") вполняется код переданный в code.

    При выполнении этого кода, введенное в поле ввода значение будет доступно в переменной $#input.

    Какими способами в нее можно передать код для последующего выполнения?

    code может быть указан несколькими способами:

    • текстом — code: "=: set(table: $#ntn; field: 'field' = $#input)"

    • name поля в этой же таблице из которого будет взят код-дейcтвия — code: "field_with_code".


    =:
    linkToInput(html: "Введите номер заказа"; title: "Открыть заказ по номеру"; code: $stradd; button: "Открыть") stradd: str`'=: linkToTable(table: "sostav_zakaza"; cycle: $number; target: "top")' + $#nl + 'number: select(table: "novye_zakazy"; field: "id"; where: "nomer" = $#input)'` // Обратите внимание, что мы многостраничный код склеиваем через $#nl

    Так-как приведенный выше пример — это дико-неудобно, начиная с версии 2 есть такая возможность:


    =:
    linkToInput(html: "Введите номер заказа"; title: "Открыть заказ по номеру"; code: $code; button: "Открыть") ```code:totum =: linkToTable(table: "sostav_zakaza"; cycle: $number; target: "top") number: select(table: "novye_zakazy"; field: "id"; where: "nomer" = $#input) ```

    В этом случае все, что оказывается на выделенном фоне будет передано как простой текст!

    Можно ли передать код стандартной ссылкой на строку кода?

    Нет. Если сделать так:


    =:
    linkToInput(html: "Введите номер заказа"; title: "Открыть заказ по номеру"; code: $stradd; button: "Открыть") stradd: linkToTable(table: "sostav_zakaza"; cycle: $number; target: "top") number: select(table: "novye_zakazy"; field: "id"; where: "nomer" = $#input) // Этот пример НЕПРАВИЛЬНЫЙ — так работать НЕ БУДЕТ:

    То не заработает.

    Передается ли окружение (таблица, id строки, name поля) при вызове linkToInput?

    По умолчанию код получает некоторые параметры окружения:

    • $#ntn — наименование таблицы из которой вызван input

    • $#nh — хэш текущей таблицы (будем разбирать в продвинутых кодах действий)

    • # — все решетки текущей таблицы.

    Остальные переменные можно передать через параметр var: "var_name" = "var_value".

    А еще есть способ передать код?

    Да. Но лучше использовать такой вариант в некоторый случаях.

    1. Вы можете в любой таблице сделать поле типа Текст с типом подсветки Totum-код.

    2. В нем написать код, но именно в значении поля, а не в настройках.

    3. Взять этот код через select.


    =:
    linkToInput(html: "Введите номер заказа"; title: "Открыть заказ по номеру"; code: $select; button: "Открыть") select: select(table: 'table'; field: 'code_field') // если эта таблица в которой вы в строках храните несколько кодов, то надо добавить where

    Тоже самое через сахар для select:


    =:
    linkToInput(html: "Введите номер заказа"; title: "Открыть заказ по номеру"; code: @table.code_field; button: "Открыть") // для полей размещенный в хелере/футере

    =:
    linkToInput(html: "Введите номер заказа"; title: "Открыть заказ по номеру"; code: @table.code_field.name_field[name]; button: "Открыть") // для полей размещенный в строчной части с поиском по where: 'name_field' = "name"