FlexReport for WinForms
FlexReport と C1Report
FlexReport for WinForms の概要 > FlexReport と C1Report

FlexReport は、C1Report を新しく機能強化した製品です。主に次の相違点があります。

レポートフィールドタイプの階層

FlexReport の Field オブジェクトの構造は階層的であり、基本クラス FieldBase と他のさまざまなクラスタイプを使用して、さまざまなフィールドを表します。テキスト、画像、形状、サブレポートなどの各種データを表すために、さまざまなタイプのレポートフィールドがあります。FlexReport の Field オブジェクト階層の利点として、フィールドの操作がたいへん容易かつ柔軟になることがあります。

一方、C1Report のフィールドオブジェクトは複雑で、C1.C1Report.Field.Text プロパティを定義し、Calculated を True に設定する必要があります。この場合は、各フィールドがレコードごとに個別に評価される式として解釈されるため、C1Report のフィールドはデータのレンダリングプロセスが低速になります。

これらの事情にもかかわらず、FlexReport のフィールドタイプは C1Report のフィールドタイプと完全に互換性があり、FlexReport で C1Report の定義をロードおよびレンダリングすることができます。

複数のデータソース

FlexReport 定義は、それぞれが一意の名前で識別される複数のデータソースを持つことができます。レポートに複数のデータソースが含まれる場合は、データソースの 1 つがレポートのメインデータソースになります。他のデータソースから取得した値は、レポートパラメータを追加したり、チャートフィールドを作成するために使用できます。詳細については、「FlexReport のデータソース」を参照してください。

データソートの強化

FlexReport は、データソースソート機能が強化されています。DataSource.SortDefinitions プロパティを使用して、データに対していくつかのソート式を定義し、ソートの条件と方向を指定できます。

さらに、データのソートとグループ化は独立しています。つまり、レコードのセットにグループ化を適用し、同時にソートを使用してレコードの順序を制御できます。単純な例として、データを都市でソートし、同時に国別にグループ化できます。これにより、Crystal Report との互換性が向上します。詳細については、「データのソート」を参照してください。

データフィルタの強化

FlexReport は、データフィルタ機能が強化されており、これを通常の VBScript(C1Report や FlexReport の他のすべての式も同様)や DataView(データをフィルタ処理するための条件を指定するいくつかの式)の中で指定できます。FlexReport でデータをフィルタ処理するための構文タイプを指定するには、FilterExpressionSyntax 列挙を DataView(デフォルト)または VBScript に設定します。

一方、C1Report のフィルタ処理は、C1Report.Filter プロパティによって指定され、これには DataView.Filter プロパティの制限された構文が使用されます。これらの事情にもかかわらず、FlexReport のフィルタ処理は、C1Report のフィルタ処理と完全に互換性があります。詳細については、「データのフィルタ処理」を参照してください。

データソースの計算フィールド

FlexReport では、データソースが計算フィールドをサポートしています。つまり、データソースで計算フィールドを定義して、計算されたデータをフェッチできます。計算フィールドの式は、DataSource.CalculatedFields コレクションで VBScript 式を使用して指定します。これらの式で、他のデータソースフィールド、レポートパラメータなどを使用できます。詳細については、「計算フィールドの定義」を参照してください。

レポートパラメータ

レポート内のレポートパラメータは、データのデフォルト値を変更して、レポートのレンダリング時にこれらの値を更新するために使用されます。FlexReport では、C1FlexReport.Parameters コレクションでレポートパラメータを定義し、さらにいくつかのプロパティを使用します。Parameters コレクションの各要素は ReportParameter クラスのインスタンスです。詳細については、「パラメータの追加」を参照してください。

C1Report では、DataSource.RecordSource または DataSource のいずれかでパラメータを指定できます。次のように、接続文字列で PARAMETERS "キーワード" を使用します。

C1Report.DataSource.RecordSource = “PARAMETERS param1 int 0; select * from Customers where id < param1”.

C1Report レポート定義が FlexReport にロードされると、DataSource.RecordSource および DataSource.Filter を使用して指定されたパラメータが C1FlexReport.Parameters コレクションに正しくインポートされます。

複数のサブセクション

C1FlexReport では、各セクションに少なくとも 1 つのサブセクションが含まれます。セクションと同様に、サブセクションにもいくつかのレポートフィールドが含まれます。サブセクションを追加する利点は、親セクションにあるデータを補完できることです。サブセクションには、Section.SubSections コレクションプロパティを使用してアクセスできます。詳細については、「複数のサブセクションの追加」を参照してください。

ビジュアルプロパティ

関連トピック