- PR -

JasperReportで一ページに収まりきらない場合の対応

1
投稿者投稿内容
@koto
会議室デビュー日: 2001/08/17
投稿数: 17
投稿日時: 2006-03-09 11:53
JasperReportを使用していて解決方法がみつからない問題に直面しています。
解決方法をご存知の方がおりましたら、ご鞭撻お願いいたします。

テキストフィールドを使用した帳票で、1レコードで1ページに収まりきらない場合、続きが次のページに表示されるような設定にしていますが、収まりきった項目が再度表示されるという問題が発生しています。

例えばA,B,Cという内容で1レコードを表現する場合。
Aデータ,Bデータは1ページに収まっているがCデータが収まりきらない場合です。
=====================================
| Aカラム | Bカラム | Cカラム |
=====================================
| Aデータ | Bデータ | Cデータ |
-------------------------------------

この場合、次ページには再度A,Bが表示されてしまいます。
=====================================
| Aカラム | Bカラム | Cカラム |
=====================================
| Aデータ | Bデータ | Cデータ |
|      |      |  の続き |
-------------------------------------

A,Bデータを表示しないで枠だけ表示する方法は無いでしょうか?


現在のTextFiledの設定は以下のようになっています。

<textField
isStretchWithOverflow="true"
isBlankWhenNull="true"
evaluationTime="Now"
hyperlinkType="None"
hyperlinkTarget="Self" >

<reportElement
mode="Transparent"
x="48"
y="0"
width="30"
height="23"
forecolor="#000000"
backcolor="#FFFFFF"
key="textField-1"
stretchType="RelativeToBandHeight"
positionType="FixRelativeToTop"
isPrintRepeatedValues="true"
isRemoveLineWhenBlank="false"
isPrintInFirstWholeBand="false"
isPrintWhenDetailOverflows="true"/>

<box topBorder="None"
topBorderColor="#000000"
leftBorder="None"
leftBorderColor="#000000"
rightBorder="Thin"
rightBorderColor="#000000"
bottomBorder="None"
bottomBorderColor="#000000"/>

<textElement
textAlignment="Center"
verticalAlignment="Top"
rotation="None"
lineSpacing="Single">

<font fontName="MS P明朝"
pdfFontName="C:\WINDOWS\Fonts\MSMINCHO.TTC,1"
size="10"
isBold="false"
isItalic="false"
isUnderline="false"
isPdfEmbedded ="false"
pdfEncoding ="Identity-H"
isStrikeThrough="false" />
</textElement>
<textFieldExpression class="java.lang.Double">
<![CDATA[$F{no}]]>
</textFieldExpression>
</textField>


環境は以下です。
iReport1.1
JasperReport1.1.0


[ メッセージ編集済み 編集者: @koto 編集日時 2006-03-09 11:56 ]
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-03-09 12:03
引用:

@kotoさんの書き込み (2006-03-09 11:53) より:

テキストフィールドを使用した帳票で、1レコードで1ページに収まりきらない場合、続きが次のページに表示されるような設定にしていますが、収まりきった項目が再度表示されるという問題が発生しています。


もう、あんまり覚えちゃいないんですが、

isPrintWhenDetailOverflows="true"
isPrintInFirstWholeBand="false" />

だったかな。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
@koto
会議室デビュー日: 2001/08/17
投稿数: 17
投稿日時: 2006-03-09 12:25
もの凄く早い回答ありがとうございます。

>isPrintWhenDetailOverflows="true"
>isPrintInFirstWholeBand="false" />

↑この設定はしているのですが、状況は変わりません。。
設定の組み合わせがあるのかもしれませんね。もう少し調べてみます!


ところで根本的な話ですが、jasperreportでこのような表示のされ方が
仕様ということはないのでしょうか?
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-03-09 12:52
引用:

@kotoさんの書き込み (2006-03-09 12:25) より:

↑この設定はしているのですが、状況は変わりません。。


うわ、書かれてましたね... 見落としてました。(;_ _)
それに、デフォルト値も false なので無意味でしたね。

引用:

設定の組み合わせがあるのかもしれませんね。もう少し調べてみます!


もしくは、isPrintRepeatedValues="false" でないと無視されるのかも。

引用:

ところで根本的な話ですが、jasperreportでこのような表示のされ方が仕様ということはないのでしょうか?


true と false で挙動が変わるのであれば、仕様 (または不具合) であると言えますが、
全く変わらないのであれば、別の属性のせいで無効にされていると考えられないでしょうか?
先にあげた isPrintRepeatedValues などいくつかの属性を反転させて検証してみてはどうでしょうか?

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
@koto
会議室デビュー日: 2001/08/17
投稿数: 17
投稿日時: 2006-03-09 14:06
結局、プロパティの設定でなんとかならなかったので
次ページに伸びないTextFieldと伸びるTextFiledを同位置に用意し、
後者の内容を空にすることで表現することができました。

かなり荒業とは思われますが、結果がでているのでこの方法で
行こうと考えています。

様々なアドバイスをありがとうございました!
1

スキルアップ/キャリアアップ(JOB@IT)