DXL 活用の調査・検証で、実現できたことや発見したことご紹介する『DXL Step-by-Step』シリーズの第 31 回です。今回からは ”表” の構造について調査した結果をまとめます。
LotusSctipt の NotesRichText*** クラスでは、表は作成できるのですが、細かなプロパティの操作はできないものが多いです。DXL を使えばほとんどの操作(たぶん全部?)が可能となりますので、できることが一気に広がりますよ。
表の作成位置
第 15 回 でリッチテキストフィールドを表す richtext ノード直下には、次の 4 種のノードが配置できると紹介しました。
pardef | 段落の定義 |
par | 段落 |
table | 表 |
section | セクション |
前回まで "段落" やその中に配置できるオブジェクトに関してでしたが、今回からまとめる "表" は段落と並列に配置される table ノードとなります。
表の基本構造
まずは table ノードの周辺の仕様を確認します。
以下の DXL はリッチテキストに 3 行 2 列の単純な表を作成し、出力した結果です(一部省略して表示しています)。
まず richtext ノードに段落定義を表す pardef ノードがあり、それに並列に table ノードが配置されています。上表の通りですね。
また、table ノードの前後には段落を表す par ノードが存在します。いろいろと検証した結果、このノードがないと表を正しく表示できない”仕様”のようです。特に上側の par ノードがないと DXL と保存(Import)できませんでした。
リッチテキストに表を作成すると前後の段落が作成されるので、この動作を踏襲しているのだと思います。
表の中身
続いて table ノードの中の構造を確認します。
まず、表の列の定義があります。tablecolumn ノードが 1 列分を表します。今回の表は 2 列だったので、tablecolumn ノードも 2 つ存在します。
列定義に続いて、行を表す tablerow ノードが存在します。今回は 3 行存在するということですね。
行の中身
行である tablerow ノードの配下には tablecell ノードが列数分だけ配置されています。
tablecell ノード内には、段落を表す par ノードが存在します。表のセルは、richtext ノードと同様の機能を持つ仕様になっています。これを利用して表内にさまざまなコンテンツを配置できます(詳細は別の機会にまとめます)。
まとめ
今回は表の基本構造についてまとめました。HTML の表と近い構造ですので、理解しやすいかと思います。
次回からは、表の細かな設定についてまとめます。表には多種多様な機能・設定が存在します。検証できたものから順に紹介します。
前回 | DXL Step-by-Step | 次回 |
0 件のコメント:
コメントを投稿