依次调用SetSQLCommandTable和SetTableLocation时出现错误"找不到表"。

2020-09-19 03:04发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)您好,我有一个麻烦的问题,我似乎...

         点击此处--->   EasySAP.com群内免费提供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 
 

3条回答
clever101
2020-09-19 03:45

一个猜测:
也许SetSQLCommandTable调用导致Database内部表的顺序发生变化。Tables
这会导致boTables [i]指向的内容出现问题。

一周热门 更多>