OneCode ローコード ドメイン駆動設計 (DDD) (3) 詳細分析ビュー モデリング リスト

1. リストビューの構成

リスト ビューは主に 2 つの部分で構成され、ドメイン サービスは主にエンティティ関連の属性とルーティング アクションに関する操作を担当します。関連するアプリケーションはドメイン設計によって完成します (具体的な設計部分については、第 1 章と第 2 章を参照してください)。この記事では、リスト ビューの構成に関する設計パターンを中心に説明します。

リストビューの構成

サンプルを表示

第二に、ドメイン関数の分解

この記事のメインとなるのはビューの構成ですが、リスト構成では主にモジュール構成とサブドメイン構成の 2 つの部分で構成されます。

構成構成の表示

3、モジュール構成の表示

(1) モジュール構成概要を表示

主にリストビューの基本的な属性設定と、ビジネスアイデアに関する操作アクションの設定を担当します。

モジュール構成

(2) 環境変数の設定:

モジュールが構築されると、通常、特定の環境で実行されます。これらの特徴的な環境は、通常、集約エンティティと、集約ルートのコンポーネント値と、現在のユーザーおよび他の環境値オブジェクトとの組み合わせによって完成されます。リスト ビューに環境変数を追加する必要がある場合は、ビュー クラスに追加するだけで済みます。

対応する集計 KEY と @Pid または @Uid をフィールドに追加すると (以下の具体的な例を参照)、Uid は現在のエンティティのコンポーネント値を表します。Pid は親と環境変数の値から取得されます。注釈が追加されると、OneCode パーサーは現在の環境に自動的に関連付けられ、実行時に値が割り当てられます。

一般的なアノテーションの例

注釈名 使用
@ピッド 環境変数、親グローバル @ピッド
@Uid 環境変数、現在の主キー @Uid
@CustomAnnotation カスタム隠しフィールド @CustomAnnotation(hidden = true)
@PageBar
@GridAnnotation(event = CustomGridEvent.editor,
        customService = IPersonAPI.class,
        customMenu = {GridMenu.Add, GridMenu.Delete, GridMenu.Reload})
public interface IPersonGrid {
    @Uid
    public String getPersonId();
    @Pid
    public String getRoleId();
    @Pid
    public String getOrgId();

}


設定インターフェース

(3) リストビューの構成:

ビューの構成は主にリスト自体とそれに関連する操作バーの設定です。

ページングバーの設定

ツールバーの構成

ツールバー

モジュール下部のボタンバー

一般的なアノテーションの例

注釈名 使用
グリッド注釈 リストビューの設定 @GridAnnotation(rowHeight = "4em"、customService = {LocalFormulaService.class}、event = CustomGridEvent.editor)
ページバー ページバー @PageBar(ページ数 = 100)
ツールバーメニュー ツールバー @ToolBarMenu
メニューバーメニュー メニューバー @MenuBarMenu
ボトムバーメニュー 下部ツールバー @BottomBarMenu

4 番目に、ビューのサブドメイン

(1) サブドメインの概要を表示する

サブドメインを表示

実際のアプリケーションでは、リストは通常​​、独立したモジュールとして表示されますが、ユーザーが操作するときは、行またはテーブル アプリケーションの操作も必要になります。

(2) 行セットサブフィールド

行サブフィールドの概要

行セットのドメイン プロパティを構成する場合、通常、関連する機能ボタンはデータ エンティティのドメイン イベントに従って照合されます。たとえば、エンティティ操作では、一般的な CRUD イベントの場合、削除アイコンが行ボタンに自動的に一致し、行ヘッダー設定でアクティブになり、行マークが追加されます。レコードセットでポップアップ編集が許可されている場合、対応するダブルクリック編集イベントが追加されます。

ドメインプロパティマップ

行フィールドの操作

実際のテーブルフィールド分割例

共通イベントの管理を追加する

注釈名 使用
@GridRowCmd テーブル行ボタン @GridRowCmd(tagCmdsAlign = TagCmdsAlign.left、menuClass = {DBColAction.class})
@RowHead 回線構成 @RowHead(selMode = SelModeType.none、gridHandlerCaption = "削除|並べ替え"、rowHandlerWidth = "10em"、rowNumbered = false)
@PageBar(pageCount = 100)
@RowHead(selMode = SelModeType.none, gridHandlerCaption = "删除|排序", rowHandlerWidth = "10em", rowNumbered = false)
@GridRowCmd(tagCmdsAlign = TagCmdsAlign.left, menuClass = {DBColAction.class})
@GridAnnotation(customService = {ColService.class}, customMenu = {GridMenu.Reload, GridMenu.Add}, event = CustomGridEvent.editor)
public class DbColGridView {

    @CustomAnnotation(caption = "字段名", uid = true, required = true)
    private String name;

    @CustomAnnotation(caption = "类型", required = true)
    private ColType type = ColType.VARCHAR;

    @CustomAnnotation(caption = "长度", required = true)
    private Integer length = 20;

    @CustomAnnotation(caption = "数字精度")
    private Integer fractions = 0;

    @CustomAnnotation(caption = "是否主键")
    private Boolean pk;

    @CustomAnnotation(caption = "是否可为空")
    private Boolean canNull = true;

    @CustomAnnotation(colSpan = -1, caption = "注解", rowHeight = "100", required = true)
    private String cnname;

   }

(3) セルサブフィールド

テーブルのプロパティが編集可能なフィールドに設定されている場合、リストは列ごとのリスト形式ビューに変換されます。セル アプリケーションには、フォームの関連操作がさらに含まれます。これについては、後続のフォームの章で詳しく説明します。

セル編集

細胞の種類

セルイベント

codebee: OneCode ローコード エンジン、ドメイン駆動設計 (DDD) テクノロジの実践 (1) 0 同意する · 0 コメント 記事をアップロードしています...再アップロードキャンセル

codebee: OneCode ドメイン駆動設計 (DDD) 技術実践 (2) View Factory の概要 0 同意しました · 0 コメント 記事をアップロードしています...再アップロードキャンセル

おすすめ

転載: blog.csdn.net/wenzhangli/article/details/130603371