JasperReports/iReportで非常に厄介なエラーが発生しました。最近バージョン3.6.1から4.5.1に移行しましたが、まだ存在しています。
DataSource
ストアドプロシージャを実行するjdbcを介して、MSSQLサーバーデータベースからいくつかの情報を引き出すレポートがあります。問題は、次のように、値が1つしかないランダムなデータ行を取得していることです。
ID Name Marketing_Preferences
1 John Y
2 James N
3 Daniel Y
Y
4 Tim N
私は元のデータを何度も何度も見てきましたが、これを行う行については何も違いや特別なことはありません。
関連するiReportxml定義は次のとおりです。
<field name="Marketing_Preferences" class="java.lang.String"/>
<staticText>
<reportElement isPrintRepeatedValues="false" x="504" y="41" width="101" height="15" isPrintWhenDetailOverflows="true">
<printWhenExpression><![CDATA[new Boolean( $V{PAGE_NUMBER}.intValue() == 1 )]]></printWhenExpression>
</reportElement>
<textElement>
<font size="9"/>
</textElement>
<text><![CDATA[Marketing_Preferences]]></text>
</staticText>
<textField isBlankWhenNull="true">
<reportElement x="504" y="3" width="101" height="15" isPrintWhenDetailOverflows="true"/>
<textElement>
<font size="8"/>
</textElement>
<textFieldExpression><![CDATA[$F{Marketing_Preferences}]]></textFieldExpression>
</textField>
試行錯誤と条件印刷式の使用により、ダブルアップが1つの出力行に関連付けられていることがわかりました。したがって、Marketing_Preferences
いつ印刷しないように指示するID = 3
と、どちらの値も印刷されません。
まず、これがどのように、またはなぜ発生する可能性があるかを誰かが知っていますか?元のデータを何度も確認しましたが、その理由がわからないので、ストアドプロシージャを実行しても、上記のような結果はまったく得られません。
第二に、誰かが私がそれを回避する方法を知っていますか?リストだと思われる場合に次の値を出力しないようにiReportに指示する方法、または結果ごとに1行のみに制限する方法。「繰り返し値の印刷」を使用できません。これは、有効な繰り返し値を印刷しないためです。
どんな助けでも大歓迎です!!!