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

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

    Не путать со значением предыдущей строки!

    Предыдущее значение поля можно получить через быструю переменную $#onfv (old now field value) и через пристаку old при обращении к значению поля — #old.field_name.

    Возможно ли обращение к предыдущему значению поля из кода?

    Да, в кодах тоже можно получить предыдущее значение поля. Где еще — в кодах действия.

    пример как можно оставить значение поля без изменения по условиям

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


    =:
    if(condition: #type = 1; then: $#onfv; else: $calc) calc: #value_1 * #value_2

    пример, изменение значения поля чекбокс на противоположное при пересчете

    = : if(condition: $#onfv = true; then: false; else: true)
    
    

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

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

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

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

    Например код:

    =: select(table: 'table'; field: 'field'; where: 'id' = #num)
    
    

    Код действия на изменение этого поля:


    =:
    set(table: 'table'; field: 'field' = $#nfv; where: 'id' = #num)

    Но это приводит к pin текущего поля и появлению руки.

    Руку можно скрыть исключительно косметически в форматировании:


    f1=:
    setFormat(showhand: false)

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


    a1=:
    set(table: 'table'; field: 'field' = $#nfv; where: 'id' = #num) a2=: clear(table: $#ntn; field: $#nf; where: 'id' = #id) // Не забудьте указать where по текущему id

    Как убрать индикацию ручного значения?

    Руку можно скрыть исключительно косметически в форматировании:


    f1=:
    setFormat(showhand: false)