「カテゴリ」の名のとおり、このパターンはアイテムをカテゴリに区分けするのに使用されます。
「タイプとカテゴリの違い」を参照してください。
同類のものの組み合わせがある場合は、「カテゴリ」としてグループ化すると便利です。ほとんどの場合、カテゴリのトランザクションをモデルに追加するだけであり、大変シンプルです。
カテゴリ
CategoryId*
CategoryName
Item
ItemId*
ItemName
CategoryId
CategoryName
ただし、次のようにさらに詳細な機能が必要な場合もあります:
- アイテムの複数のカテゴリへの設定 (上記の例のように 1 つのカテゴリだけとは限りません)。
- 有効性。アイテムを特定の期間内のみ特定のカテゴリに属させます。
- カテゴリの階層。並列カテゴリはなく、階層 (飲料の場合、アルコール飲料にはワイン、ビールなどの階層) が必要な場合があります。
- 豊富なカテゴリ。会計的側面から製品をグループ化するカテゴリや、製造的側面から製品をグループ化するカテゴリを設定することができます。
このパターンの目的は、任意のトランザクションにハイエンドなカテゴリエンジンを実装するのに必要なオブジェクトすべてを提供することです。
このパターンは、製品カタログの構築に非常に役立ちます。
Beverages
Alcoholic Beverages
Wines
Red
'Wine xxxx' (item)
'Wine yyy' (item)
...Beer
Light
'Beer 123' (item)
...
通常、このタイプのカタログには有効期間がありますが、同時に 2 つ以上のカタログを作成することができます。
既定のインスタンスを生成するには、アイテムのトランザクションが必要です:
上記のアイテムのトランザクションにパターンを適用すると、既定で次の新しいパターンが生成されます。
- ItemCatParentId が null である各 ItemCatId が、Catalog (カテゴリツリー) のルートとなります。
- これは簡単なモデルのため、有効性機能は提供されていません。
必要な機能:
このインスタンスには次のノードがあります:
- AttributesName: CategoryItem トランザクションの項目属性の名前: ItemCatId、ItemCatName、ItemCatParentId (ItemCatId のサブタイプ)、ItemCatParentName (ItemCatName のサブタイプ)
- Transaction Names: CategoryItem および CategoryItemrelation
既定では、このパターンにより次のオブジェクトが生成されます:
- CategoryItem トランザクション - カテゴリ階層を定義します。CategoryParentId が null のカテゴリがルートです。
- CategoryItemRelation トランザクション - アイテムとカテゴリの関係を定義します。
- TreeViewCategoryItemRelation Web パネル - 各カテゴリおよび各カテゴリに割り当てられたアイテムのツリービューを表示します (下の TreeView の例を参照してください)。
- ItemCatalog データプロバイダー - TreeViewCategoryItemRelation Web パネルの開始イベントからツリービューをロードするために実装されています。
- ItemByCategoryItemWC Web コンポーネント - この Web コンポーネントは、TreeViewCategoryItemRelation Web パネルからカテゴリに割り当てられたアイテムを表示します (下の TreeView の例を参照)。
- CategoryItemRelationWC Web コンポーネント、および AddItem と DeleteItem プロシージャー - カテゴリにアイテムを追加または、カテゴリからアイテムを削除できます。
次の画像はノード全体を示しています。
TreeView Web パネルからビューの取得およびカテゴリへのアイテムの割り当てができます。次の画像は、Salads ノードを選択した後の状況を示しています。
[ Assign Items To Salads ] をクリックすると、次の図が表示されます。ここでは、矢印ボタンを使用して、Salads カテゴリのエレメントを左の一覧から右の一覧へ、またはその逆に移動することができます。
すべてのインスタンスに関する全般的な設定については、「Category パターンの設定」を参照してください。
このパターンには、フォルダおよびカテゴリビューを画面に表示するために Treeview ユーザーコントロールを使用する機能があります。
|