2.1.78. 階層(ツリー)表示テーブルウィジェット¶
階層(ツリー)表示テーブルウィジェット はデータベースなどからの検索結果を UI標準 UI部品 階層(ツリー)表示 の内容に準拠した階層テーブルを画面に出力するUI部品である。 検索結果を特定のカラムの値によって自動的にソート・階層化して表示することができるが、 仕様上、ページング機能には対応していない。
テーブル内の各カラムの内容は、カラムの種別ごとに用意された個別のウィジェットを配置することによって定義する。
- ラベル表示用カラムウィジェット
- コード値ラベル表示用カラムウィジェット
- リンク表示用カラムウィジェット
- テーブル複数行選択用チェックボックスカラムウィジェット
- テーブル行選択用ラジオボタンカラムウィジェット
ラベル表示用カラムウィジェット については、tree_indent属性をtrueに指定することでカラム内の表示項目が階層の深さに応じて インデントされて表示される。
なお、階層表示を利用するためには、少なくとも一つのカラムが、tree_toggler属性がtrueに指定されている リンク表示用カラムウィジェット である必要がある。
2.1.78.1. コードサンプル¶
設計成果物(ローカル動作)
<table:treelist title="リクエストID一覧" name="treeStatus" key="id" hierarchy="chars:6|2|2" sampleResults="5"> <column:label title="リクエストID" key="id" tree_indent="true" tree_toggler="true" sample="RW11AA|RW11AA0101|RW11AA0102|RW11AB|RW11AB0101"> </column:label> <column:label title="リクエスト名" key="name" tree_indent="true" sample="ログイン機能|ログイン画面初期表示処理|ログイン処理|メニュー|メニュー表示処理"> </column:label> <column:checkbox title="閉局中" name="availableRequestIds" key="id"> </column:checkbox> </table:treelist>
設計成果物(サーバ動作)
<table:treelist title="リクエストID一覧" name="formdata.treeStatus" key="id" hierarchy="chars:6|2|2" resultSetName="searchResult" sampleResults="5"> <column:label title="リクエストID" key="id" tree_indent="true" tree_toggler="true" sample="RW11AA|RW11AA0101|RW11AA0102|RW11AB|RW11AB0101"> </column:label> <column:label title="リクエスト名" key="name" tree_indent="true" sample="ログイン機能|ログイン画面初期表示処理|ログイン処理|メニュー|メニュー表示処理"> </column:label> <column:checkbox title="閉局中" name="formdata.availableRequestIds" key="id"> </column:checkbox> </table:treelist>
2.1.78.2. 仕様¶
階層構造の定義
検索結果は key 属性値に指定したカラムの値に従って、自動的にソート・階層化して表示する。 階層構造は hirarchy 属性値に指定した定義式によって定まり、以下の2つの書式のいずれかによって定義する。
- chars:(数値)|(数値)|...|(数値) 各要素のid属性値を先頭からの文字数で分割し階層を決定する方法。
- separator:(区切り文字列) 各要素のid属性値を区切り文字列で分割し階層を決定する方法。
- ローカル動作時の挙動
- ローカル動作では sampleResults に指定した件数分だけデータ行を表示する。 カラムの内容は各カラムウィジェットの sample 属性に指定した “|” 区切りの文字列を順に表示する。(レコード件数の方が多い場合はループする。)
属性値一覧 [◎ 必須属性 ○ 任意属性 × 無効(指定しても効果なし)]
名称 | 内容 | タイプ | サーバ | ローカル | 備考 |
---|---|---|---|---|---|
title | 見出し文字列 | 文字列 | ◎ | ◎ | |
id | テーブルを一意に識別するid | 文字列 | × | × | ページ内に、複数のテーブルが 存在する場合は必須。 |
name | ツリーの開閉状態を保持するフォーム要素名 | 文字列 | ◎ | ◎ | |
key | 階層構造を決定するレコードの属性名 | 文字列 | ◎ | ◎ | |
hirarchy | 階層構造を決定する定義式 | 文字列 | ◎ | ◎ | |
resultSetName | 検索結果を格納する変数名 | 文字列 | ◎ | × | |
resultSetCss | 検索結果表示領域に適用する CSSクラス | 文字列 | ○ | ○ | |
sampleResults | サンプルで表示する件数 | 数値 | × | ◎ | |
sortCondition | テーブルの初期ソート条件 | 文字列 | × | × | 設計書の表示時に、 画面概要の一覧表示のリストで、 「ソート条件」に表示される。 |
comment | テーブルについての備考 | 文字列 | × | × | 設計書の表示時に、 画面概要の一覧表示のリストで、 「備考」に表示される。 |
estimatedMaxSearchResults | 検索結果として想定される最大件数 | 文字列 | × | × | 設計書の表示時に、 画面概要の一覧表示のリストで、 「想定検索最大件数」に表示 される。 |
2.1.78.3. 内部構造・改修時の留意点¶
テーブル機能は内部的に Nabalrchが提供している <listSearchResult:table> タグで実装されており、 Nablarch側の設定の変更によって、ページングリストの出力パターンなどを変更することができる。 詳細は、「Nablarch アーキテクチャ解説書」を参照。
部品一覧
パス | 内容 |
---|---|
/WEB-INF/tags/widget/table/treelist.tag | ツリーリストウィジェット |
/WEB-INF/tags/widget/column/*.tag | テーブルカラムウィジェット群 |
/WEB-INF/tags/listSearchResult/*.tag | Nablarch検索結果テーブルタグファイル |
/css/style/nablarch.less | Nablarch関連スタイル定義 テーブルの配色などを定義している。 |
/css/style/content.less | 業務画面領域スタイル定義 テーブルサイズを定義している。 |
/js/nablarch/ui/TreeList.js | ツリーリストUI部品 |
/css/ui/treelist.less | ツリーリストのスタイル定義 各階層ごとの配色などを定義している。 |