Tip

このドキュメントはAIによって翻訳されました。不正確な情報については、英語版をご参照ください

ソートフィールド

Collection field: SortCommunity Edition+

はじめに

ソートフィールドは、コレクション内のレコードをソートするために使用され、グループ化してからソートする機能(sort1)に対応しています。

Warning

ソートフィールドは同じコレクションのフィールドであるため、グループソートを使用する場合、1つのレコードを複数のグループに割り当てることはできません。

インストール

組み込みのプラグインなので、個別のインストールは不要です。

利用ガイド

ソートフィールドの作成

20240409091123_rec_

ソートフィールドを作成する際、ソート値は以下のように初期化されます。

  • グループソートを選択しなかった場合、主キーフィールドと作成日フィールドに基づいて初期化されます。
  • グループソートを選択した場合、まずデータがグループ化され、その後、主キーフィールドと作成日フィールドに基づいて初期化されます。
トランザクションの一貫性に関する説明
  • フィールド作成時、ソート値の初期化に失敗した場合、ソートフィールドは作成されません。
  • 特定の範囲内で、あるレコードがAの位置からBの位置へ移動した場合、AとBの間のすべてのレコードのソート値が変更されます。この更新の一部でも失敗した場合、移動操作全体がロールバックされ、関連するレコードのソート値は変更されません。 :::

例1:sort1フィールドの作成

sort1フィールドはグループ化されていません。

20240409091510

各レコードのソートフィールドは、主キーフィールドと作成日フィールドに基づいて初期化されます。

20240409092305

例2:Class IDによるグループ化に基づいたsort2フィールドの作成

20240409092620

このとき、コレクション内のすべてのレコードがまずグループ化され(Class IDでグループ化)、その後、ソートフィールド(sort2)が初期化されます。各レコードの初期値は以下の通りです。

20240409092847

ドラッグ&ドロップによるソート

ソートフィールドは、主に様々なブロックのレコードをドラッグ&ドロップでソートするために利用されます。現在、ドラッグ&ドロップによるソートに対応しているブロックは、テーブルとボードです。

:::warning

  • 同じソートフィールドをドラッグ&ドロップソートに使用する場合、複数のブロックで混用すると、既存の順序が崩れる可能性があります。
  • テーブルのドラッグ&ドロップソートに使用するフィールドは、グループ化ルールを持つソートフィールドを選択できません。
    • 例外:1対多のリレーションテーブルブロックでは、外部キーをグループとして使用できます。
  • 現在、ボードブロックのみがグループ内でのドラッグ&ドロップソートに対応しています。 :::

テーブル行のドラッグ&ドロップソート

テーブルブロック

20240409104621_rec_

リレーションテーブルブロック

:::warning 1対多のリレーションブロックでは:

  • グループ化されていないソートフィールドが選択されている場合、すべてのレコードがソートに参加する可能性があります。
  • 外部キーに基づいてまずグループ化し、その後ソートする場合、ソートルールは現在のグループ内のデータのみに影響します。

最終的な効果は同じですが、ソートに参加するレコードの数は異なります。詳細については、ソートルールの説明をご覧ください。

ボードカードのドラッグ&ドロップソート

20240409110423_rec_

ソートルールの説明

グループ化されていない(または同じグループ内の)要素間の移動

以下のようなデータセットがあるとします。

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

ある要素、例えば「5」が「3」の位置に前方に移動した場合、このとき、アイテム「3」、「4」、「5」の位置のみが変更されます。「5」が「3」の位置を占め、「3」と「4」はそれぞれ1つずつ後方に移動します。

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

次に、「6」を「8」の位置に後方に移動すると、「6」が「8」の位置を占め、「7」と「8」はそれぞれ1つずつ前方に移動します。

[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]