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

    пример мешки и килограммы

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

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


    =:
    set(table: $#ntn; field: 'field_2' = math`$#nfv * 2`; where: 'id' = #id)

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


    =:
    set(table: $#ntn; field: 'field_1' = math`$#nfv / 2`; where: 'id' = #id)

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

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

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

    Особенность такого расчета для строки добавления?

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

    В этом случае можно перенести добавление во временную таблицу, а строку добавления отключить. Пример смотрите здесь: https://youtu.be/Bn1P_qY3Ruo?t=1048