点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
您好,我有一个麻烦的问题,我似乎无法解决。 在我的代码中,我遍历报告中子报告的集合,并更新每个表或命令的连接信息。 我们有一些报告同时引用了命令和表-我知道这并不理想,但这是我的现实! 问题出在 SetSQLCommandTable 调用上-似乎损坏了某些东西,导致我随后对 SetTableLocation 的调用失败,并出现表未找到错误。 如果我注释掉 SetSQLCommandTable 行,它就可以正常工作!
我检查了对象是否有修改,尝试创建一个单独的 ConnectionInfo 对象以传递给 SetSQLCommandTable 调用,但是似乎没有什么不同。 如果我注释掉该行(并为该报表手动为Crystal中的Command设置数据库连接信息),一切正常。
这是代码, ReplaceCatalogueInCommand 是一个帮助程序,用于修复报告中命令中对数据库名称的任何硬编码引用...因为用户有时会以这种方式编写命令,即使我们只会 在报告范围内只有一个数据库... grrr!
我正在使用13.0.3500.0,Service Pack 22,并且报告是
CrystalDecisions.CrystalReports.Engine.ReportDocument 和 boTable 是 CrystalDecisions.ReportAppServer.DataDefModel.Table()。
foreach(Report.ReportClientDocument.SubreportController.GetSubreportNames()中的字符串subRerpotName) { boTables = Report.ReportClientDocument.SubreportController.GetSubreport(subRerpotName).DatabaseController.Database.Tables; 对于(int i = 0; i
谢谢你们的想法。
Don,事实证明,我完全使用该工具生成了原始代码-因此,除了我注意到更改为使用 CrystalDecisions.ReportAppServer.ClientDoc.ISCDReportClientDocument 之外,没有其他新内容了 CrystalDecisions.CrystalReports.Engine.ReportDocument 。 我调整了代码以使用工具中生成的代码-但这确实有所作为。
在Ido关于调用SetSQLCommandTable时表的顺序更改的评论中进行了评论-我已经注意到了,但是事实并非如此。
我尝试进行的操作-鉴于我注意到的行为,其中忽略了对SetSQLCommandTable的调用不会导致问题,我更改了代码以遍历表,仅更新表的连接信息,然后再次设置boTables集合- 这次只更新了Commands的连接信息-这成功了! 首先,"更新的命令"总是会在随后的表更新中导致错误,但之后执行更新似乎很好。
SetSQLCommandTable方法中可能有一些问题正在调查中……与此同时,您应用更新的连接信息的顺序似乎很重要!
干杯!
一个猜测:
也许SetSQLCommandTable调用导致Database内部表的顺序发生变化。Tables
这会导致boTables [i]指向的内容出现问题。
如果将子报表另存为CRD中的新报表,然后在应用程序中为其设置位置,会发生什么情况?
您要设置表格链接
使用Google搜索此KBA-1553921,看看使用RAS的ReplaceConnection是否效果更好
唐
一周热门 更多>