印刷範囲について

939 views
Skip to first unread message

hamanaka

unread,
Dec 15, 2010, 9:38:36 PM12/15/10
to excella
hamanakaと申します。
今回、初めてExCella Reportsを使用します。
初歩的な質問もあるかもしれませんが、よろしくお願いします。

2つお尋ねしたいことがあります。

まず1つ目が
$BR[]や$BC[]タグを設定したときに、
タグを設定したセルの行が削除されているようです。
これは削除されるものと考えてよいのでしょうか?
また、削除されたときに下の行の高さが変わっているようなのですが
(詳しく言うと高さが9ピクセルの部分に$BR[]を指定していたら
その行は削除され、$BR[]を指定していたセルの下の行の高さが18ピクセルになっていました。)
この現象が起こらないようにする方法はあるのでしょうか?

次に
テンプレートで印刷範囲を設定した状態で
$BR[]タグでページごと繰り返す処理をすると
増えた部分が印刷範囲外になってしまいます。
$BR[]タグでページごと繰り返すときに印刷範囲も増やす方法があるでしょうか?
もしくはテンプレートの印刷範囲はクリアした状態で
$BR[]タグでページごと繰り返し、
生成されたものに対し改ページ設定を行うことは可能でしょうか?
POIと組み合わせればできるでしょうか?

以上です。
よろしくお願い致します。

横井@bbreak

unread,
Dec 16, 2010, 3:52:26 AM12/16/10
to excella
横井です。

> まず1つ目が
> $BR[]や$BC[]タグを設定したときに、
> タグを設定したセルの行が削除されているようです。
> これは削除されるものと考えてよいのでしょうか?

はい。削除されます。

> また、削除されたときに下の行の高さが変わっているようなのですが
> (詳しく言うと高さが9ピクセルの部分に$BR[]を指定していたら
> その行は削除され、$BR[]を指定していたセルの下の行の高さが18ピクセルになっていました。)
> この現象が起こらないようにする方法はあるのでしょうか?

こちらについては、サンプルの交通費申請書のテンプレートを色々変えて
試してみたのですが、現象が確認出来ませんでした。
他になにかが影響しているかも知れないので、まずはサンプルで試してみてください。
※おかしいようであれば変更したテンプレートを送ってください。

> テンプレートで印刷範囲を設定した状態で
> $BR[]タグでページごと繰り返す処理をすると
> 増えた部分が印刷範囲外になってしまいます。
> $BR[]タグでページごと繰り返すときに印刷範囲も増やす方法があるでしょうか?
> もしくはテンプレートの印刷範囲はクリアした状態で
> $BR[]タグでページごと繰り返し、
> 生成されたものに対し改ページ設定を行うことは可能でしょうか?
> POIと組み合わせればできるでしょうか?


本来であれば、リスナーで印刷範囲を設定できるのですが、
「リスナーで印刷範囲が設定できない」 にあるように上手く効いてくれないようです。

改ページについては、リスナでPOIのAPIを使うか、
要件によってはbreakNum(詳細はリファレンスを参照)が使えるかも知れません。

以上、よろしくお願いします。

hamanaka

unread,
Dec 16, 2010, 4:22:48 AM12/16/10
to excella
横井 様

お世話になっております。hamanakaと申します。
ご回答ありがとうございます。

改ページについてpoiを利用して試したところ
なんとなくですがうまくいったのでご報告したいと思います。

リファレンスを参考にし、
ReportProcessListenerを実装したSystemOutListenerを作成し

postBookParseメソッドにて改ページの設定と印刷範囲の設定を行いました。

@Override
public void postBookParse(Workbook workbook, ReportBook reportbook) {


Sheet sheet = workbook.getSheetAt(0);

//列位置を指定して改ページ
sheet.setColumnBreak(120);

//行位置を指定して改ページ
sheet.setRowBreak(146 - 1);

//印刷範囲設定
workbook.setPrintArea(0, "$A$1:$DP$782" );

}

ただ行の改ページで
引数で渡した指定行の下側に水平方向の改ページが設定されると思っていたのですが
引数で渡した指定行の下の行の下側に水平方向の改ページが設定されました。
つまり、146行目の下側に改ページしたい時は引数に146-1を渡せばうまくいきました。

少し不思議な気もしますが、
これで何とか改ページの設定ができそうです。
また範囲範囲の指定に関しては改ページの設定でどうにかなりそうです。


更に、この改ページの設定を行っているうちに
質問の1つ目の行の高さが変わる現象が起こらなくなりました。
どうして起こっていたのか、どうして起こらなくなったのかはわかりませんが、
問題が解消したので作業を進めたいと思います。

ありがとうございました。
> > よろしくお願い致します。- 引用テキストを表示しない -
>
> - 引用テキストを表示 -
Reply all
Reply to author
Forward
0 new messages