2024/08/17

DXL Step-by-Step:#38)セルの設定 - 表の罫線

DXL 活用の調査・検証で、実現できたことや発見したことご紹介する『DXL Step-by-Step』シリーズの第 38 回です。前回からは表の ”セル” 構造についてまとめていますが、今回は表の罫線の設定についてです。


罫線の設定と DXL

表の罫線を設定するプロパティにはいくつかあります。今回のテーマは 境界線の厚さ です。この設定は、セルごとに行えますので、tablecell ノードの属性で設定されます。

ちなみに、プロパティ上部の境界線のスタイルや色については表全体の設定になりますので、table ノードの属性設定となります(『#36)罫線の設定 - 境界線のスタイル』参照)。


境界線の厚さと DXL

まずは単純に幅1の表を作成して DXL で出力して確認します。

結果は、borderwidth という属性に出力されていました(属性は抜粋して記述)。

<tablecell borderwidth='1px'>

幅の単位は pixcel なので、1px となっています。罫線を非表示(= 0)とした場合は 0px となります。


四方の設定値を変えた場合

セルの罫線の幅は 4 辺それぞれ別の値が設定できます。例えば、幅を 0 ~ 3 とすべて違う値に設定た結果は次の通りです。


<tablecell borderwidth='0px 1px 2px 3px'>

上 右 下 左 の順でスペース区切りで指定されていることがわかります。


その他のパターン

さまざまな設定を DXL で出力していると borderwidth の値が 2 つ、あるいは 3 つの場合に出くわすことがあります。

例えば、上下は 1px、左右が 3px の場合です。


<tablecell borderwidth='1px 3px'>

上 右 下 左 の順で、値が繰り返す場合は省略できるのでしょうか? では、3 つ場合は? と手探りな調査を行うには限界があるので、ここはヘルプを頼ります。日本語で記述されていたころのヘルプに明確な記述がありました。

  • 長さが 1 つ指定された場合、この長さが 4 辺すべてに適用されます。
  • 長さが 2 つ指定された場合、1 番目の長さは上辺と下辺に、2 番目の長さは左辺と右辺に適用されます。
  • 長さが 3 つ指定された場合、1 番目の長さは上辺に、2 番目の長さは左辺と右辺に、3 番目の長さは下辺に適用されます。
  • 長さが 4 つ指定された場合、順に上辺、右辺、下辺、左辺に適用されます。

DXL を少しでも短くする工夫なのでしょうが、なかなか複雑な仕様ですね。1 つと 4 つの二通りで十分じゃないかと思います...


DXL で設定する場合の注意

上記の通り、罫線の幅はセルごとに四方の設定を保持できる仕様です。しかし、表は通常隣接するセルがあり、セル間の罫線は 2 つの罫線設定が存在します。

ノーツクライアントで 3 x 3 の表を作成し、中心の罫線の幅を変更してみました。表内の文字は、DXL から取得した borderwidth の値です。

ノーツクライアントの場合、隣接する罫線の幅も調整されていることがわかります。

DXL で同様の操作をする場合、隣接するセルを取得して設定して回る必要があります。セルの連結まで考慮するとなかなか複雑です。


ちなみに、セル間で設定がそろっていない場合の挙動について確認します。先ほどと同じ 3 x 3 の中心のセルだけ 3px、それ以外をすべて 1px で指定した DXL を作成し、Import してみました。

結果は次の通り、右と下の罫線は 1px となりました。優先順位は上から下、左から右となっているようです。

整合性があってない状態ですが、文書を再保存してもこの設定は維持されました。ノーツクライアントとして許容できる範囲のようです。隣接するセルの罫線を調整してくれる機能は、プロパティボックスが実施している機能のようですね。


前回 DXL Step-by-Step


0 件のコメント:

コメントを投稿