Уведомление о переводе ИИ

Эта документация была автоматически переведена ИИ.

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

Поле коллекции: Сортировка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]