通过代码更改水晶报表的提供者

问题描述 投票:0回答:1

我有一个使用OLEDBSQL作为连接提供程序的水晶报表。我需要通过c#/ vb代码将提供程序从OLEDBSQL更改为MSOLEDBSQL,并将新报告保存到新文件中。如何做到这一点?

到目前为止的代码。

 Private Sub ReportGo()
    'Main Report 
    Dim crxRpt As New CrystalDecisions.CrystalReports.Engine.ReportDocument
    'Subreport objects, if you need them
    Dim crxSubrpt1 As New CrystalDecisions.CrystalReports.Engine.ReportDocument, crxSubrpt2 As New CrystalDecisions.CrystalReports.Engine.ReportDocument
    'Parameter fields objects and values, if you need them
    Dim crxPar1 As New CrystalDecisions.Shared.ParameterField
    Dim crxVal1 As New CrystalDecisions.Shared.ParameterDiscreteValue

    'Load report file
    crxRpt.Load("D:\Developments & RND\Crystal Reports - Connector\CrystallReportConvertVB\SummaryReport.rpt")

    'Load subreports, if you have them. Otherwise comment these lines
    crxSubrpt1 = crxRpt.OpenSubreport("MySubr1")
    crxSubrpt2 = crxRpt.OpenSubreport("MySubr2")

    ' What should i do in here?


    crxRpt.SaveAs("D:\Developments & RND\Crystal Reports - Connector\CrystallReportConvertVB\CrystallReportConvertVB\Rpt1.rpt")


End Sub
c# vb.net crystal-reports
1个回答
1
投票

您可以通过遍历ConnectionInfos并换出提供程序来以编程方式替换报告的连接信息。关于添加连接/驱动程序信息here的解释(IMO hack-y),它引用了有助于编写DB登录代码的SAP KB,但是本文中的链接无效(相反,请使用this one-这可能是对于您的需求更有用)。

© www.soinside.com 2019 - 2024. All rights reserved.