ActiveReports for .NET 2.0JまでのActiveReportsでは、レポートのデータ設定ダイアログからデータ接続を行った場合、パブリック変数"ds"がレポートデザイナにより自動的に生成されました。しかし、3.0J以降ではこの変数は生成されません。例えば、サブレポートのデータ接続設定などのために、この変数を使用した処理をコード上で行っている場合は、下記の例のように変更する必要があります。
変更前 赤字のコードは3.0J以降では使用できません。
Visual Basic
Visual Basicコード |
コードのコピー
|
---|---|
Private Sub Detail_Format(ByVal sender As Object, ByVal e As System.EventArgs) Handles Detail.Format Dim rpt As New rptSub() Dim subDS As New DataDynamics.ActiveReports.DataSources.OleDBDataSource() subDS.ConnectionString = Me.ds.ConnectionString subDS.SQL = "Select * from products where categoryID = " + m_categoryID rpt.DataSource = subDS Me.ctlSubreport.Report = rpt End Sub |
C#
C#コード |
コードのコピー
|
---|---|
private void Detail_Format(object sender, System.EventArgs eArgs) { rptSub rpt = new rptSub(); DataDynamics.ActiveReports.DataSources.OleDBDataSource subDS = new DataDynamics.ActiveReports.DataSources.OleDBDataSource(); subDS.ConnectionString = this.ds.ConnectionString; subDS.SQL = "Select * from products where categoryID = " + m_categoryID; rpt.DataSource = subDS; ctlSubreport.Report = rpt; } |
変更後 Datasourceプロパティをキャストすることで同様の処理が可能です。
Visual Basic
Visual Basicコード |
コードのコピー
|
---|---|
Private Sub Detail_Format(ByVal sender As Object, ByVal e As System.EventArgs) Handles Detail.Format Dim rpt As New rptSub() Dim subDS As New GrapeCity.ActiveReports.Data.OleDBDataSource subDS.ConnectionString = CType(Me.DataSource, GrapeCity.ActiveReports.Data.OleDBDataSource).ConnectionString subDS.SQL = "Select * from products where categoryID = " + m_categoryID rpt.DataSource = subDS Me.ctlSubreport.Report = rpt End Sub |
C#
C#コード |
コードのコピー
|
---|---|
private void Detail_Format(object sender, System.EventArgs eArgs) { rptSub rpt = new rptSub(); GrapeCity.ActiveReports.Data.OleDBDataSource subDS = New GrapeCity.ActiveReports.Data.OleDBDataSource(); subDS.ConnectionString = ((GrapeCity.ActiveReports.Data.OleDBDataSource)(this.DataSource)).ConnectionString; subDS.SQL = "Select * from products where categoryID = " + m_categoryID; rpt.DataSource = subDS; ctlSubreport.Report = rpt; } |