web-dev-qa-db-ja.com

オーバーフローをサポートしていないバンドでサブレポートがオーバーフローしました

最近、JasperReportsのレポートのサブレポートで問題が発生し、次のエラーが発生しました。

オーバーフローをサポートしていない帯域でサブレポートがオーバーフローしました。

何が起こっている?

14
inanutshellus

私は問題を修正したので、誰かがそれが役に立つと思った場合に備えて、ここに私の解決策を投稿すると思いました。

チェック事項:

  1. 詳細バンドに参加している場合は、 レポートの印刷順序を確認してください。それは垂直でなければなりません。 水平印刷順序レポートは、詳細バンドでオーバーフローすることはできません。
  2. サブレポートのディメンションを確認してください。サブレポートの幅は、レポートの幅よりも小さくする必要があります。 成長していないバンド用 (以下のポイント#3を参照)、高さはバンドの高さよりも小さくする必要があります。
  3. 成長するバンドもあれば、成長しないバンドもあります。サブレポートでこれを覚えておいてください。 ヘッダーまたはフッターにサブレポートがある場合は、それらが大きくならないようにします。つまり、そのサブレポートへのデータソースが送信する要素が多すぎたり、サブレポートが1つまたは少数の要素を予期している場合に繰り返し要素を送信したりできないようにします。

私の場合、サブレポートを作成して、実際には使用していないデータソースを渡しました(データソースのデータを使用していない情報サブレポートでした)。

(例はXMLデータソースですが、同じ概念がSQLデータソースにも当てはまります。)

例えば.

(net.sf.jasperreports.engine.data.JRXmlDataSource)$P{REPORT_DATA_SOURCE}
    ).subDataSource("/Order/Note")

その後、「音符」は単一の音符ではなく配列に変わりました。つまり、フッターサブレポートが2回繰り返されようとしていたため、フッターレポートが2回印刷され、高すぎました。したがって、エラー。

35
inanutshellus

エラーを修正しました。解決策は次のとおりです。向き:横向き印刷順序:縦

横向きと横向きの値を使用するとエラーが発生しました

4
revo

サブレポートの幅がマスターレポートの幅よりも大きいかどうかを確認してください。その場合は、サブレポートの幅を狭くしてください。また、サブレポートを詳細などの有効なバンドに配置するようにしてください。サブレポートがオーバーフローした場合、ページフッターなどの無効なバンド内にあると、このエラーが発生します。

0
Mateus Viccari