2024/04/22

DXL Step-by-Step:#31)表の基本構造

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 件のコメント:

コメントを投稿