c# – 通过Crystal Web Services以编程方式在Crystal Server上设置Crystal Report的数据源
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了c# – 通过Crystal Web Services以编程方式在Crystal Server上设置Crystal Report的数据源,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3179字,纯文字阅读大概需要5分钟。
内容图文
![c# – 通过Crystal Web Services以编程方式在Crystal Server上设置Crystal Report的数据源](/upload/InfoBanner/zyjiaocheng/828/f0d91d602faf41c48810368eee5cde26.jpg)
如何更改Crystal报表在运行时在水晶服务器中运行的数据源(数据库服务器,用户名,密码)?
我有一个水晶服务器并上传了具有set数据源的报告(SQL Server 2005托管在SERVER A,userA,passwordA).我想安排报告使用我编写的c#客户端使用不同的数据源(在SERVER B上托管的SQL Server 2005,userB,passwordB)运行.
c#客户端可以使用crystal webservices提供的对象来安排报表在服务器内运行.
我一直在使用以下3个对象:
BIPlatform
InfoObject
CrystalReport
有关这些对象的文档可以在HERE找到
最佳答案:
1/30/2018-只想补充一点,你需要CrystalDecisions.ReportAppServer.DataDefModel dll
我有同样的问题,我有一个有MSAccess数据库连接的报告,我需要将其更改为SQLServer,花了2天时间来解决这个问题:
reportDocument = new ReportDocument();
reportDocument.Load(reportFileName);
TableLogOnInfo tableLogOnInfo = ReportClass.GetSQLTableLogOnInfo(connectionProperties.DatabaseSource, connectionProperties.DatabaseName, connectionProperties.UserName, connectionProperties.Password);
for (int i = 0; i < reportDocument.Database.Tables.Count; i++)
{
Table table = reportDocument.Database.Tables[i];
table.ApplyLogOnInfo(tableLogOnInfo);
}
public static ConnectionInfo GetConnectionInfo(string serverName, string databaseName, string userID, string password)
{
ConnectionInfo connectionInfo = new ConnectionInfo();
connectionInfo.ServerName = serverName;
connectionInfo.DatabaseName = databaseName;
connectionInfo.UserID = userID;
connectionInfo.Password = password;
return connectionInfo;
}
public static TableLogOnInfo GetSQLTableLogOnInfo(string serverName, string databaseName, string userID, string password)
{
CrystalDecisions.ReportAppServer.DataDefModel.PropertyBag connectionAttributes = new CrystalDecisions.ReportAppServer.DataDefModel.PropertyBag();
connectionAttributes.EnsureCapacity(11);
connectionAttributes.Add("Connect Timeout", "15");
connectionAttributes.Add("Data Source", serverName);
connectionAttributes.Add("General Timeout", "0");
connectionAttributes.Add("Initial Catalog", databaseName);
connectionAttributes.Add("Integrated Security", false);
connectionAttributes.Add("Locale Identifier", "1033");
connectionAttributes.Add("OLE DB Services", "-5");
connectionAttributes.Add("Provider", "SQLOLEDB");
connectionAttributes.Add("Tag with column collation when possible", "0");
connectionAttributes.Add("Use DSN Default Properties", false);
connectionAttributes.Add("Use Encryption for Data", "0");
DbConnectionAttributes attributes = new DbConnectionAttributes();
attributes.Collection.Add(new NameValuePair2("Database DLL", "crdb_ado.dll"));
attributes.Collection.Add(new NameValuePair2("QE_DatabaseName", databaseName));
attributes.Collection.Add(new NameValuePair2("QE_DatabaseType", "OLE DB (ADO)"));
attributes.Collection.Add(new NameValuePair2("QE_LogonProperties", connectionAttributes));
attributes.Collection.Add(new NameValuePair2("QE_ServerDescription", serverName));
attributes.Collection.Add(new NameValuePair2("SSO Enabled", false));
ConnectionInfo connectionInfo = ReportClass.GetConnectionInfo(serverName, databaseName, userID, password);
connectionInfo.Attributes = attributes;
connectionInfo.Type = ConnectionInfoType.SQL;
TableLogOnInfo tableLogOnInfo = new TableLogOnInfo();
tableLogOnInfo.ConnectionInfo = connectionInfo;
return tableLogOnInfo;
}
内容总结
以上是互联网集市为您收集整理的c# – 通过Crystal Web Services以编程方式在Crystal Server上设置Crystal Report的数据源全部内容,希望文章能够帮你解决c# – 通过Crystal Web Services以编程方式在Crystal Server上设置Crystal Report的数据源所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。