私はこれまで数日を費やして、アプリケーションでFastReportを使用するための基礎を築きました。アプリケーションは、デバイスのテスト結果データを、いくつかの固定フィールド(DeviceID、Passedなど)と可変数の結果フィールドで構成されるDBFファイルの形式で保存します。各フィールドは、使用可能な測定データのタイプに対応します。これらのフィールドは1つから100まであります。各フィールドには、OVやRVなどの文字コード名があります。合計レコード数は、ゼロから最大で数万になります。
特定のレポートテンプレートには、表示されるフィールド名がすでにデザインに含まれています。レポートで欠落しているフィールドは空になります。
私の質問は、レポートの作成が可能な限り単純になるように、レポートとレポートに提供されるデータを設計する最良の方法に関するものです。ユーザーが独自のレポートを生成できるようにします。2種類のレポート出力が必要です。 -結果と集計のリスト。私に頭痛の種を与えているのは骨材です。MIN、MAX、COUNTなど(FastReportで内部的に提供されている)だけでなく、標準偏差も必要です。さらに、グループヘッダーをクリックすると、データテーブルが表示または非表示になるFastReportの「ドリルダウン」機能を使用したいと思います。常に表示されるように、アグリゲートはフッターではなくヘッダーに配置するのが理想的です。
TQueryのSQLは、「StDev」集計を提供するため(FastREportは提供しません)、柔軟性が高いことがわかりましたが、私が見る限り、各フィールドに固定のTQueryが必要です。これまでのところ、私が思いつくことができる最も良い解決策は、メインテーブルで「合格」のフィルターを使用して(ユーザーが合格、不合格、またはすべてを表示できるようにするため)、同じもので別の「統計」テーブルを作成することです。フィールド名の列。ただし、個々のレコードとしてMIN、MAX、COUNT、MEAN、STDEVを使用します。次に、TfrxDBDataSetを使用して、このテーブルをFastReportに公開します。FastReport独自のADODatabaseとADOQueryを使用して、DBFファイルに直接アクセスすることもできます。これはうまく機能しますが、可能であれば、レポートでこのアクセスレイヤーをユーザーに公開したくありませんでした。
集計関数が基本的なデータベース要件でなければならない場合、これは非常に厄介に思えます。私はこれを行うためのはるかに簡単な方法を逃していますか?FastReport(professional)で提供される(優れた)デモを実行し、XE2を使用しています。StDevを自分で計算する必要がある場合は、MATHユニットの便利な機能も知っています。
何かご指導をいただければ幸いです。