GrapeCity ActiveReports for .NET 16.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;
 }