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

    Как работают condition и как их можно оптимизировать по нагрузке?

    condition во всех функциях, где они есть исполняются слева-направо. Следующий выполняется только если предыдущий выполнился в true.

    Поэтому condition надо располагать по возрастанию предполагаемой нагрузки.

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

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

    Например, мы все отслеживаемые поля склеили через listCreate в техническое поле control_field и проверяем, изменилось ли оно, используя предыдущее значение поля:


    =:
    if(condition: #old.control_field == #control_field; then: $#onfv; else: $calc) calc: "..."

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

    Cond всегда возвращает?

    Есть сахар cond — он всегда возвращает результат сравнения внутри себя — true или false.

    В cond возможны условия и, или и группировки ():

    • && — и.

    • || — или.

    Cond можно использовать внутри функций, а внутри condition можно не ставить лишнего сравнения:

    =: if(condition: cond`$line_1 != 0 || $line_2 != 0`; then: 100; else: 0)
    
    line_1: 10
    line_2: 0
    
    // Результат = 100
    
    

    Если словами, то в этом примере написано: если line_1 неравно 0 или line_2 неравно 0, то 100, иначе 0.

    Можно ли использовать cond внутри condition без дополнительного указания = true/false?

    Да. condition помимо сравнений принимают true или false:

    =: if(condition: $cond; then: 100; else: 0)
    
    cond: if(condition: $line_1 != 0; then: true; else: false)
    
        line_1: 10
    
    // Результат = 100
    
    

    Как написать условие и?

    • && — и.

    Как написать условие или?

    • || — или.

    Для чего используются скобки внутри cond?

    Для группировки условий:

    cond: cond`($A=1 && $B=1) || ($A=2 && $B=2)`
    
    // Означает: A и B равны 1 или A и B равны 2
    
    

    В какой момент заканчивается выполнение cond?

    Когда все условия на одном уровне выполнились в true:

    cond: cond`($A=1 && $B=1) || ($A=2 && $B=2)`
    
    // Здесь выполнение закончится если A=1 и B=1, повторного обращения к A и B не будет