[]
        
(Showing Draft Content)

dsの移行

ActiveReports for .NET 2.0JまでのActiveReportsでは、レポートのデータ設定ダイアログからデータ接続を行った場合、パブリック変数「ds」が自動的に生成されました。しかし、3.0J以降では、この変数は生成されません。たとえば、サブレポートのデータ接続設定などのために、この変数を使用した処理をコードで行っている場合は、以下のように移行する必要があります。

移行手順

移行前

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#

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

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#

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

関連トピック