'宣言 Public Property Recordset As System.Object
public System.object Recordset {get; set;}
'宣言 Public Property Recordset As System.Object
public System.object Recordset {get; set;}
通常、このコントロールは、ConnectionString プロパティと RecordSource プロパティの値に基づいて System.Data.DataTable オブジェクトを作成し、そのオブジェクトをレポートデータソースとして使用します。
または、データソースオブジェクトを独自に作成し、それをコントロールに割り当てることもできます。それには、データソースオブジェクトを Recordset プロパティに割り当てます。
DataTable オブジェクトまたは DataView オブジェクトが Recordset プロパティに割り当てられている場合、C1Report は自動的に IC1ReportRecordset インタフェースを実装する内部ラッパークラスを作成します。このため、このプロパティ値を読み取って元の DataTable オブジェクトまたは DataView オブジェクトを再取得することはできません。代わりに、ラッパーオブジェクトを System.ComponentModel.IListSource にキャストし、System.ComponentModel.IListSource.GetList メソッドを使用する必要があります。次に例を示します。
Recordset プロパティには、(1)System.Data.DataTable オブジェクト、(2)System.Data.DataView オブジェクト、または(3)IC1ReportRecordset インタフェースを実装するオブジェクトを割り当てることができます。// DataTable を作成します DataTable dt = new DataTable("my table"); // それを c1report に割り当てます // 自動的に IC1ReportRecordset ラッパーを作成します c1r.DataSource.Recordset = dt; // 1) これは機能しません(dbBad == null) object wrapper = c1Report1.DataSource.Recordset; DataTable dtBad = wrapper as DataTable; // 2) これは機能します(dtGood == dt) DataView dv = ((IListSource)wrapper).GetList() as DataView; DataTable dtGood = dv.Table;