2017-10-12 51 views
1

私はRTFテンプレートを使用してBIレポートを作成しています。私は最初のページの3つのレコードに行の数を制限する必要があります。残りのレコード/行は引き続き次のページを埋めるでしょう。私はまた、ページの合計を印刷する必要があります。以下のコードを使用してレコード数を制限していますが、1行しか印刷しません。どんな助けもありがとう。おかげBI Publisherの1ページあたりの行数の制限

<?xdoxslt:set_variable($_XDOCTX, ‘counter’, 0)?> 
<?xdoxslt:set_variable($_XDOCTX, ‘lines_page’, 3)?> 
<?xdoxslt:set_variable($_XDOCTX, ‘tot_lines’, count(.//PdfDraftPurchaseOrderHeaderVORow))?> 
<?xdoxslt:set_variable($_XDOCTX,’remainder’,0)?> 

<?for-each:PdfDraftPurchaseOrderHeaderVORow?> 
<?xdoxslt:set_variable($_XDOCTX, ‘counter’, xdoxslt:get_variable($_XDOCTX, ‘counter’)+1)?> 
<[email protected]:xdoxslt:get_variable($_XDOCTX,’counter’) != xdoxslt:get_variable($_XDOCTX,’tot_lines’)?> 
<[email protected]:position() mod xdoxslt:get_variable($_XDOCTX, ‘lines_page’) = 0?><?call:breaking?><?end if?><?end if?> 
<?end for-each?> 
+0

簡略化されたXMLを投稿できますか? – EdHayes3

答えて

1

がfor-各

<?if: position() = 3?> 
<?split-by-page-break:?> 
<?end if?> 

以内にこれを使用してみてください、私は簡単な例を作り、これがうまく働きました。私は最初のページに3つのレコードを、残りには6つのレコードを取得しました。

ページの合計については、TotalFieldNameは総変数の名前で、Elementはあなたが

<?add-page-total:TotalFieldName;Element?> 

がでこれを追加合計するXML番号要素であるあなたは合計する要素、後にこれを追加TotalFieldNameは、我々は上記で作成した変数であり、NumberFormatはあなたがページを破るしたい場合は、この構文を使用することができます9G999D00

<?show-page-total:TotalFieldName; 'NumberFormat'?> 
+0

こんにちは、 ページ分割で分割を修正しましたが、ページ合計がまだ進行中です。データの追加は文字列形式であることが判明したので、数値データ型に変換しようとしましたが、Oracleのドキュメントによれば、ページ集計関数はソースXMLのco6deに生の数値がある場合にのみ機能します。数字はあらかじめフォーマットしてはいけません。このための回避策はありますか? 助けてくれてありがとう –

+0

私もそれを読んで、私はそこにいるとは思わない。 XMLデータ定義を簡単に修正できるはずです。 – EdHayes3

1

のようなものであるページの合計、のためのフッター

<? if position() mod 3 = 0?> 
<?split-by-page-break:?> 
<?end if?> 

これは、3つの行の後にページを分割し、次に6つの行の後に3つの複数の行を分割します。 3を目的の行数に置き換えることができます。

ところで、position()はXMLデータソースの行番号です。


関連する問題