2011/03/07

罫線でrowspanを表現する (Drawing rowspan)

rowspanを簡易的に表現する方法を説明します。要件となる出力結果は以下の通りです。deptnoをグループと見なし、罫線の表示を切り替えます。



連続するdeptnoの値の出力を抑制する方法については、「連続する値の表示を抑制する方法」を参照して下さい。

設定は罫線の正業を行うセル(deptno)にて行います。以下の図の[F]が該当します。


[F]には以下の2つの設定を記述します。
1) 次の行のdeptnoが同じであれば、border-bottomを白で描画
2) 前の行のdeptnoが同じであれば、border-topを白で描画

<?if:following-sibling::ROW[1]/DEPTNO=DEPTNO?><?attribute@incontext:border-bottom;'0.5px solid #ffffff'?><?end if?>
<?if:preceding-sibling::ROW[1]/DEPTNO=DEPTNO?><?attribute@incontext:border-top;'0.5px solid #ffffff'?><?end if?>


レンダリング時、隣接する行で罫線が上書きされるため、これら2つの設定はどちらか片方ではなく、両方記述する必要があります。
罫線の設定書式はxsl-foの書式に従い、「太さ スタイル 色」の順に設定を記載します。

border-leftまたはborder-rightに同様の設定を行うことで、colspanの表現も可能です。



[ Summary ]
The example above draws rowspan look by controling border color.  [F] in the second figure contains two settings.  They are for border-bottom and border-top.  Because top / bottom borders are overwritten by the neighboring rows, you need to write these two settings, not one of them only.
The formula of border setting is 'weight style color', separated by space.


Refer the past entry "Suppress duplicated values" also.



0 件のコメント:

コメントを投稿