biz-Streamマニュアルレイアウト・デザイナ ガイド第10章 サンプルレイアウト10.5 サンプルレイアウト(4) - 行の高さが可変の帳票を出力するサンプル

10.5 サンプルレイアウト(4) - 行の高さが可変の帳票を出力するサンプル

サンプルレイアウト(4)

項目 ファイルパス
ドキュメントレイアウト <bs_designer_home>/sample/xml/layoutdesigner/example4-doc.xml
ページレイアウト <bs_designer_home>/sample/xml/layoutdesigner/example4-page.xml

サンプルレイアウト (2)ならびに (3)では明細行について、図形描画(四角形)の中に横書きテキストで表示しています。
これは、行の高さが固定の場合では有効ですが、明細行の高さがデータによって可変になる場合では不適切です。
見積書や明細書に代表される表形式での出力や、行の高さがデータによって可変になる場合は、「レコード」機能ではなく「フレームテーブル」機能を活用します。テーブル機能は、指定した領域(flow-area)内に表形式でデータを出力することができます。

本サンプルは、サンプルレイアウト (2)の明細行に備考欄を追加したものをフレームテーブル機能で出力するものです。

1ページ目ヘッダ
共通ページヘッダ
明細行レコード (1)
明細行レコード (2)
明細行レコード (3)
明細行レコード (4)
レイアウト a.
共通ページヘッダ
明細行レコード (5)
明細行レコード (6)
明細行レコード (7)
明細行レコード (8)
フッタ
レイアウト b.

フレームテーブル機能を活用したページレイアウトの作成方法は、以下のとおりです。

  1. 最初に、すべてのページで共通の表示領域を設定します(flow-area)。
  2. 1ページ目のヘッダを設定します。flow-tableの record-type属性を "header"に設定し、view属性を "layout"に設定します。
  3. 各ページ共通のヘッダを設定します。flow-tableの record-type属性を "header"に設定し、view属性を "page"に設定します。
  4. 明細行レコードを設定します。flow-tableの record-type属性を "details"に設定し、view属性を "layout"に設定します。flow-tableの line-height属性に値を指定しないと flow-table-cellの子ノードの <Label>や <multi-text>の高さが行の高さになります。複数のセルがある場合、子ノードの最大の高さが行の高さとなります。
  5. flow-table-cellの子ノードの <Label>や <multi-text>の高さが指定されていると行の高さは子ノードの高さの最大値になります。行の高さを可変にするには子ノードのコンポーネントの高さも指定しないようにしてください。
  6. 本サンプルでは、flow-tableと子ノードの両方の高さを指定しないようにします。
  7. フッタを設定します。flow-tableの record-type属性を "footer"に設定し、view属性を "layout"に設定します。

【PDF出力例】

サンプルレイアウト(4)