0

JasperServer で実行する単純な JasperReport を作成するために iReport を使用しました。作成タイムスタンプに基づいて、多数の MySQL テーブルからいくつかのフィールドを照会します。レポートでカバーする期間の開始と終了のタイムスタンプを java.sql.Timestamp 型のパラメーターとして提供しています。これはうまくいきます。

レポート データの週単位または日単位で内訳を表示する機能を導入するよう依頼されました。これをどこから始めるべきかについて、いくつかのアイデアを得たいと思います。現時点では、レポート クエリでこの「ブレークダウン」に対応できるとは思いません。この機能は、SQL が設計されている範囲を超えているように思われるからです。これが OLAP ドリルスルーのように聞こえることは承知していますが、可能であれば OLAP は避けたいと思います (学習曲線が急で、締め切りが厳しい)。

最初に考えたのは、週ごとまたは日ごとにサブレポートを作成することでした。ただし、これにより、任意の数のサブレポートが残ります (レポートがカバーする全体の期間に応じて、実行ごとに異なります)。私が知る限り、iReport はこれをサポートしていません。

4

1 に答える 1

1

レポートを分割する 1 つの方法を次に示します。

  1. グループ化要件を指定する値を保持する別のパラメーター groupby を作成します。値は、日、週、月などに対応する限り、数値、文字列、またはその他のものにすることができます。グループ化が可能です。
  2. 内訳を提供するレポート グループ、内訳を作成します。グループ式は groupby パラメータに依存します。式はレコードの日付ですが、groupby 値より細かい部分は削除されます。
  3. レコードのデータを合計する変数 total を作成します。変数はブレークダウン グループでリセットする必要があり、ブレークダウン トレーラ バンドに出力できます。
  4. groupby式が機能するように、SQLクエリが日付でソートされることを確認してください。

ご不明な点がございましたら、お知らせください。

于 2012-05-23T08:30:34.160 に答える