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

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

Введение

В NocoBase поле сортировки (Sort) используется для хранения значения порядка записей в таблице данных. Оно часто применяется для сортировки записей перетаскиванием в таких блоках, как таблица и канбан.

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

Внимание

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

Установка

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

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

На странице «Configure fields» таблицы данных нажмите «Add field» и выберите «Сортировка», чтобы создать поле сортировки.

20240409091123_rec_

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

  • Если сортировка по группам не выбрана, значения инициализируются на основе поля первичного ключа и поля даты создания
  • Если выбрана сортировка по группам, данные сначала группируются, а затем значения инициализируются на основе поля первичного ключа и поля даты создания
Внимание

Если при создании поля не удаётся инициализировать значения сортировки, поле сортировки создано не будет. Если в определённом диапазоне одна запись перемещается с позиции A на позицию B, значения сортировки всех записей в диапазоне AB изменяются; если для одной из них операция завершается ошибкой, перемещение не выполняется, и значения сортировки связанных записей не изменяются.

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

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

20240409091510

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

20240409092305

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

Ниже приведён пример создания с группировкой по Class ID поля sort2.

20240409092620

В этом случае все записи таблицы данных сначала группируются по Class ID, а затем для них инициализируются значения поля сортировки.

20240409092847

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

Поле сортировки в основном используется для сортировки записей различных блоков перетаскиванием. В настоящее время сортировка перетаскиванием поддерживается в блоках таблицы и канбан-доски.

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

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

В блоке таблицы можно использовать поле сортировки для изменения порядка записей перетаскиванием.

20240409104621_rec_

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

Внимание

В блоке связи «один-ко-многим», если выбрать поле сортировки без группировки, в сортировке могут участвовать все записи; если сначала сгруппировать записи по внешнему ключу, а затем отсортировать, правило сортировки повлияет только на данные текущей группы. Итоговый результат может выглядеть одинаково, но диапазон записей, участвующих в сортировке, различается.

Сортировка карточек канбан-доски перетаскиванием

В блоке канбан-доски можно использовать поле сортировки для изменения порядка карточек перетаскиванием.

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]

Связанные ссылки