gpt4 book ai didi

c# - 动态更改 Crystal Report 的连接

转载 作者:太空狗 更新时间:2023-10-29 23:11:48 30 4
gpt4 key购买 nike

我正在使用 CrystalReportViewer 和 CrystalReportSource 在我的应用程序中加载和显示 .rpt 文件。

我的情况是这样的:

假设有人在我的应用程序之外创建了一个 Crystal 报表,并将其数据源设置为数据库 A。然后我在我的应用程序中使用该 .rpt 文件,但我需要将它绑定(bind)到另一个数据库(在术语上与原始数据库相同)表结构和列名,但具有使用不同用户名和密码的不同连接字符串)。我如何在 C# 中执行此操作?

目前我使用以下方式加载报告:

this.CrystalReportSource1.ReportDocument.Load(reportsSubfolder + report.ReportFileName);
//it is here that I need to change the connection data of the report.

最佳答案

我使用如下函数在运行时分配连接信息。

private void SetDBLogonForReport(CrystalDecisions.Shared.ConnectionInfo connectionInfo, CrystalDecisions.CrystalReports.Engine.ReportDocument reportDocument)
{
CrystalDecisions.CrystalReports.Engine.Tables tables = reportDocument.Database.Tables;

foreach (CrystalDecisions.CrystalReports.Engine.Table table in tables)
{
CrystalDecisions.Shared.TableLogOnInfo tableLogonInfo = table.LogOnInfo;

tableLogonInfo.ConnectionInfo = connectionInfo;
table.ApplyLogOnInfo(tableLogonInfo);
}
}

您应该能够简单地创建一个包含必要信息的新 ConnectionInfo 对象,并将其与报告文档一起传递到函数中。希望这会有所帮助。

关于c# - 动态更改 Crystal Report 的连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1411783/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com