ActiveReports for .NET 18.0J
dsを移行する
ActiveReportsユーザーガイド > レポートのアップグレード > 旧バージョンからの移行 > dsを移行する

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;
}

関連トピック