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

    Как сортировать list?

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


    =:
    listSort(list: $list; type: "string"; direction: "asc") list: listAdd(list: $list_1; list: $list_2) list_1: selectList(table: 'table_1'; field: 'unical_number'; where: 'status' != "") list_2: selectList(table: 'table_2'; field: 'unical_number'; where: 'status' != "") // Обратите внимание, что в type надо указать тип значений, а в direction направление сортировки.

    Такой случай возможен, но избыточен:


    =:
    listSort(list: $list; type: "number"; direction: "asc") list: selectList(table: 'table'; field: 'unical_number'; where: 'status' != "") // Здесь сначала работает база данных, а потом web-сервер

    Лучше так:


    =:
    selectList(table: 'table'; field: 'unical_number'; where: 'status' != ""; order: 'unical_number' asc) // Здесь работает только база данных

    Как сортировать rowlist?

    В этом случае есть два дополнительных параметра. В key мы указываем что используем item, а в item — какой именно.


    =:
    listSort(list: $rowlist; type: "number"; direction: "asc"; key: "item"; item: "price") rowlist: selectRowList(table: 'table'; field: 'num'; field: 'price'; where: 'status' = 4)

    Но на самом деле можно указать наименоватие item прямо в параметре key:


    =:
    listSort(list: $rowlist; type: "number"; direction: "asc"; key: "price") rowlist: selectRowList(table: 'table'; field: 'num'; field: 'price'; where: 'status' = 4)

    Как отфильтровать list?

    Очень похожая на сортировку функция listFilter.


    =:
    listFilter(list: $list; key: "value" > 1000) list: selectList(table: 'table'; field: 'price')

    В key для list можно выбрать, фильтровать по значениям — value или по ключам — key.

    Как отфильтровать rowlist?

    Указываем в key колонку, по которой будем фильтровать:


    =:
    listFilter(list: $rowlist; key: "price" > 1000) rowlist: selectRowList(table: 'table'; field: 'num'; field: 'price'; where: 'status' = 4)

    Можно ли отфильтровать список по нескольким условиям?

    Это делается последовательно:


    =:
    listFilter(list: $filter_1; key: "type" = 2) filter_1: listFilter(list: $rowlist; key: "price" > 1000) rowlist: selectRowList(table: 'table'; field: 'type'; field: 'price'; where: 'status' = 4)

    Или используя множественный параметр key (этот вариант быстрее):


    =:
    listFilter(list: $rowlist; key: "price" > 1000; key: "type" = 2) rowlist: selectRowList(table: 'table'; field: 'type'; field: 'price'; where: 'status' = 4)

    Сохраняются ли ключи list при его сортировке?

    Нет. Получается новый list у которого ключи идут от 0.

    Сохраняются ли ключи list при его фильтрации?

    Нет. Получается новый list у которого ключи идут от 0.

    В каких случаях важно использовать skip: true при работе с rowList?

    Если у вас неоднородный rowlist и в какой-то из строк нет ключа по которому осуществляется фильтрация, то функция вернет ошибку.

    skip: true сообщает, что ошибку возвращать не надо — надо исключить эту строку из интервала и продолжить дальше.

    Можно ли отсортировать или отфильтровать row?

    Да. В этом случае сохраняются ключи. В случае sort они выстраиваются в нужном порядке, а в случае с filter остаются только те, которые соответсвуют условиям.

    Если вы просто хотите удалить некоторые ключи из row и знаете их, то используйте rowKeysRemove.