bs:calculate-masterサンプル
bs:calculate-masterサンプル
(『<biz-Stream_home>/sample/xml/datasource-master/calculateSample1-doc.xml
』)
集計にはブレイク条件を指定した小計と合計があります。
このサンプルでは顧客名をブレイク条件に小計と最後に合計を出力するサンプルです。
ドキュメントレイアウトでは、データのリソース、フィールド定義、集計定義をします。
<?xml version="1.0" encoding="UTF-8"?> <!-- XML file created by biz-Stream Designer --> <!-- biz-Stream Copyright BrainSellers.com Corp. --> <fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:pdf="http://www.brainsellers.com/schema" xmlns:svg="http://www.brainsellers.com/schema" xmlns:bs="http://www.brainsellers.com/schema" xmlns:form="http://www.brainsellers.com/schema" version="5.0.0"> <bs:datasource-master-set> <bs:datasource-master master-name="source" position="inherit"> <bs:csv-master-reference master-reference="csvdata"/> <bs:calculate-master master-name="小計行" break-list="顧客名"> <bs:calculate-statement function="sum(個数)"/> <bs:calculate-statement function="sum(金額)"/> <bs:calculate-function column-name="samount" function="sum(個数)"/> <bs:calculate-function column-name="stotal" function="sum(金額)"/> </bs:calculate-master> <bs:calculate-master master-name="合計行"> <bs:calculate-statement function="sum(個数)"/> <bs:calculate-statement function="sum(金額)"/> <bs:calculate-function column-name="amount" function="sum(個数)"/> <bs:calculate-function column-name="totalvalue" function="sum(金額)"/> </bs:calculate-master> <bs:calculate-master master-name="消費税行"> <bs:calculate-statement function="sum(金額)"/> <bs:calculate-function column-name="tax" function="sum(金額) * 0.05"/> </bs:calculate-master> <bs:calculate-master master-name="総計行"> <bs:calculate-statement function="sum(金額)"/> <bs:calculate-function column-name="totalamount" function="sum(金額) * 1.05"/> </bs:calculate-master> </bs:datasource-master> <bs:csv-resource-master master-name="csvsource" url="${base-dir}/sample/xml/datasource-master/sample.csv" included-header="true"/> <bs:csv-master master-name="csvdata" used-header="false"> <bs:csv-statement master-reference="csvsource"/> <bs:data-type column-name="顧客名" column-no="1" type="char"/> <bs:data-type column-name="個数" column-no="2" format="#,##0" type="decimal"/> <bs:data-type column-name="金額" column-no="3" format="#,##0" type="decimal"/> </bs:csv-master> </bs:datasource-master-set> <fo:layout-master-set> <fo:simple-page-master master-name="A4P" page-height="297mm" page-width="210mm"> <fo:region-body/> </fo:simple-page-master> </fo:layout-master-set> <fo:page-sequence master-reference="A4P" bs:local-page-control="none"> <fo:flow flow-name="xsl-region-body"> <bs:block-container> <bs:include href="${base-dir}/sample/xml/datasource-master/calculateSample1-page.xml"/> </bs:block-container> </fo:flow> </fo:page-sequence> </fo:root>
ドキュメントレイアウトで集計の定義を行います。
- CSVのリソース定義
ファイル名の位置を定義
定義名・・・【csvsource】(42行目抜粋) - CSVマスタを定義
定義したCSVリソースに対し、実際に使用するデータソースとカラムを定義
CSVマスタ・・・【csvdata】(44行目抜粋)
データソース・・・【source】(6行目抜粋)
1番目のカラム・・・【顧客名】
2番目のカラム・・・【個数】
3番目のカラム・・・【金額】 - CSVマスタを参照
定義したデータソースを元に集計を定義 - ブレイク条件を「顧客名」として集計ブロックを定義
定義名・・・【小計行】
カラム「個数」のサマリー結果の定義名 ・・・【samount】(14行目抜粋)
カラム「金額」のサマリー結果の定義名 ・・・【stotal】(16行目抜粋) - ブレイク条件を設定しない集計ブロックを定義
定義名・・・【小計行】
カラム「個数」のサマリー結果の定義名 ・・・【amount】(24行目抜粋)
カラム「金額」のサマリー結果の定義名 ・・・【totalvalue】(26行目抜粋) - ブレイク条件を設定しない集計ブロックを定義
定義名・・・【消費税行】
カラム「金額」サマリー結果に0.05を乗算し消費税を算出・・・【tax】 - ブレイク条件を設定しない集計ブロックを定義
定義名・・・【総計行】
カラム「金額」のサマリー結果に1.05を乗算し総計金額を算出・・・【totalamount】
ページレイアウトではドキュメントレイアウトで定義したフィールド及び集計結果をどのような レイアウトで出力するかを定義します。
