'宣言 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;