Поле сортировки

Поле коллекции: сортировкаCommunity Edition+

Введение

Поля сортировки используются для упорядочивания записей в коллекции, включая сортировку внутри групп.

Warning

Поскольку поле сортировки относится к той же коллекции, запись не может быть отнесена к нескольким группам при групповой сортировке.

Установка

Встроенный плагин, отдельная установка не требуется.

Руководство пользователя

Создание поля сортировки

20240409091123_rec_

При создании поля сортировки значения сортировки будут инициализированы:

  • Если групповая сортировка не выбрана, инициализация выполняется по полю первичного ключа и полю даты создания.
  • Если выбрана групповая сортировка, данные сначала группируются, затем инициализация выполняется по полю первичного ключа и полю даты создания.
Принципы обеспечения согласованности транзакций
  • При создании поля, если инициализация значений сортировки завершится ошибкой, поле сортировки создано не будет.
  • В определенном диапазоне, если запись перемещается из позиции A в позицию B, значения сортировки всех записей между A и B изменятся. Если какая-либо часть этого обновления завершится ошибкой, вся операция перемещения будет откатана, а значения сортировки связанных записей останутся прежними. :::

Пример 1: создание поля sort1

Поле sort1 не сгруппировано.

20240409091510

Поля сортировки каждой записи будут инициализированы по полю первичного ключа и полю даты создания.

20240409092305

Пример 2: создание поля sort2 на основе группировки по Class ID

20240409092620

На этом этапе все записи в коллекции сначала группируются (по Class ID), затем инициализируется поле сортировки (sort2). Начальные значения каждой записи:

20240409092847

Сортировка перетаскиванием

Поля сортировки в основном используются для сортировки записей перетаскиванием в разных блоках. Сейчас такую сортировку поддерживают табличные и блоки типа «Доска».

:::warning

  • Если одно и то же поле сортировки используется для сортировки перетаскиванием, использование его в нескольких блоках может нарушить существующий порядок.
  • Поле для сортировки перетаскиванием в таблице не может быть полем сортировки с правилом группировки.
    • Исключение: в табличном блоке связи один-ко-многим внешний ключ может выступать группой.
  • Сейчас только блок типа «Доска» поддерживает сортировку перетаскиванием внутри групп. :::

Сортировка строк таблицы перетаскиванием

Табличный блок

20240409104621_rec_

Табличный блок связей

:::warning В блоке связи один-ко-многим:

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

Итоговый эффект одинаковый, но количество записей, участвующих в сортировке, различается. Подробнее см. Пояснение правил сортировки.

Сортировка карточек блока типа «Доска» перетаскиванием

20240409110423_rec_

Пояснение правил сортировки

Перемещение между негруппированными элементами (или в одной группе)

Предположим, есть набор данных:

[1,2,3,4,5,6,7,8,9]

Когда элемент, например 5, перемещается вперед на позицию 3, изменяются только позиции элементов 3, 4 и 5. Элемент 5 занимает позицию 3, а элементы 3 и 4 сдвигаются на одну позицию назад.

[1,2,5,3,4,6,7,8,9]

Если затем переместить элемент 6 назад на позицию 8, элемент 6 займет позицию 8, а элементы 7 и 8 сдвинутся на одну позицию вперед.

[1,2,5,3,4,7,8,6,9]

Перемещение элементов между разными группами

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

A: [1,2,3,4]
B: [5,6,7,8]

Когда элемент 1 перемещается после элемента 6 (поведение по умолчанию), его группа также изменяется с A на B.

A: [2,3,4]
B: [5,6,1,7,8]

Изменения сортировки не зависят от данных, отображаемых в интерфейсе

Например, рассмотрим набор данных:

[1,2,3,4,5,6,7,8,9]

В интерфейсе отображается только отфильтрованный набор:

[1,5,9]

Когда элемент 1 перемещается на позицию элемента 9, позиции всех промежуточных элементов (2, 3, 4, 5, 6, 7, 8) также изменятся, даже если они не отображаются.

[2,3,4,5,6,7,8,9,1]

Интерфейс теперь показывает новый порядок для отфильтрованных элементов:

[5,9,1]