点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
嗨,
我们正在使用具有Typed Data设置的Crystal报表在我们的应用程序中生成报表,它按预期工作。 但是客户使用SQL数据源(即通过添加OLEDB连接)向该报告中添加了一些其他表,以向该报告中添加所需的表。 现在,如果我们生成报告,它将每隔 time.To 询问SQL Server凭据,我们就有了 编写了以下代码,以便为报告提供SQL凭据。
将reportGlobal用作新ReportDocument
将crtableLogoninfo设置为TableLogOnInfo =新的TableLogOnInfo
将crConnectionInfo设置为ConnectionInfo = New ConnectionInfo
将CrTables视作表crConnectionInfo.ServerName =" sqlservername" crConnectionInfo.DatabaseName ="数据库名称"
crConnectionInfo.UserID =" sa"
crConnectionInfo.Password ="密码"
crConnectionInfo.IntegratedSecurity = True
CrTables = reportGlobal.Database.Tables
每个CrTable作为CrTable中的CrystalDecisions.CrystalReports.Engine.Table crtableLogoninfo = CrTable.LogOnInfo crtableLogoninfo.ConnectionInfo = crConnectionInfo CrTable.ApplyLogOnInfo(crtableLogoninfo)
下一个
按照上面的代码,我们的应用程序将在类型化数据集和其他类型(即SQL Server中新添加的表)中获取所有可用表。 然后,我们的连接信息将设置到所有表。 我们想知道是否有其他方法可以将SQL数据源标识添加到报表中,或者是否有任何方法可以标识未包含在类型化数据集中的表。 请在上面帮助我们。 谢谢
在您的应用程序中,您是否对DataSet中的表遵循特定的命名约定? 如果是这样,则在遍历表时,可以确定哪些表使用该命名约定,并跳过在这些表上设置登录名的操作。 另外,我相信" IntegratedSecurity"设置使用用户的凭据(而不是您在代码中设置的凭据)打开对数据库的单点登录,因此您可能希望尝试将其从代码中删除。
-Dell
您肯定要更改代码以将IntegratedSecurity设置为false。
除此之外,您还需要在遍历表时查看每个表的ConnectionInfo。 我不确定这两种类型的表之间的区别是什么,但是会有区别(通过代码调试以查看它的含义),这将帮助您确定不会为哪些表设置登录信息
-戴尔
一周热门 更多>