2010-11-30 15 views
1

複雑なレポートを作成する必要があり、正確な方法はわかりません。私はいくつかの列と2つのサブレポートを別々の詳細セクションに持っています。サブレポートには、特定の列の現在の行の値を表すパラメータを送信します。私の問題は、私の列のすべての値(サブレポートのパラメータ)をサブレポートに送信すると、同じパラメータを2回送信することなく、サブレポートに送信するパラメータを別の列の値に変更する必要があるということです。Crystal Reportsで.NETオブジェクトを使用するには?

私はこのレポートをはるかに簡単に作成することができます。ネットオブジェクトを使用することができますが、私の問題はレポートをデザインする方法がわからないことです。レポートのデータソースとしてIEnumerableコレクションを使用したいと思います。あるいは、これを行う数式があるかもしれません。

どうすればいいですか教えてください。

+2

答えはありませんが、私は静かではありません - クリスタルレポートは、レポートツールの最悪の選択肢です。私はいずれかのツールがはるかに優れているので、他のツール(無料でも商用でも)を強くお勧めします。 – TcKs

+2

@TcK、それはあなたが証拠なしで持っている非常に強い意見です。あなたは何か例を挙げることができますか?私はクリスタルを毎日使ってプロのPDFレポートを作成しており、問題はそれほどありません。 – PowerUser

+0

@PowerUser:はい - 非常に強い意見です。しかし、この意見は報告の経験7年に由来しています。 Crystal Reportsは技術面で最悪です(実行時のランタイムレポートおよび/または拡張レポートの動的作成レポート)、プログラマー/デザイナーの生産性が最悪です。そして、 "最も良いもの"は、価格が他のツール(ソースコードの有無にかかわらず)よりも大きい。私は実際に、デザイナーやAPIの安心して、レポート作成に時間を費やす必要があります。 – TcKs

答えて

1

レポートがどれほど複雑かは分かりませんが、サブレポートにデータを取得するために特別なオブジェクトは必要ないと思います。

サブレポートがメインレポートから渡されずにソースから直接データを取得した場合はどうなりますか?つまり、単一の値がメインレポートから渡されますが、列全体を取得する必要がある場合は、ソースに直接移動します。

例:レポートはcustomerIDで売上を集計します。各顧客には、サブレポートがあります。これらの各サブレポートでは、何らかの理由で顧客の総数をカウントします。したがって、1つのcustomerIDをメインレポートからサブレポートに渡します。サブレポートのcustomerIDの完全なリストを取得するには、データソースから直接取得します。

代替案: メインレポートで計算を行い、その結果をサブレポートに渡すことはできますか?

+0

いいえ、私はサブレポートに結果を渡すことはできないと思います。つまり、ある列の値を渡し、次にこれらの値を繰り返さずに別の列の値を渡す必要があります。特定の注文が必要なので、これらの値をサブレポートに渡す順序を管理する必要があります。 – Alex

+2

この場合、外部ですべての計算を行うのはどうですか?このようにして、古いSQLを使用してすべての重い作業を行うことができます。たとえば、CrystalはMS Accessテーブルのクエリから最終結果を取り出すことができますが、これはすべて苦労します。 – PowerUser

関連する問題