点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
嗨,
我正在使用C#将Crystal Report 8.5迁移到Crystal report16。
到目前为止,我正在使用以下代码执行查询:
CrystalDecisions.Shared.ConnectionInfo ConnInf;
ConnInf = reportDocObject.Database.Tables [0] .LogOnInfo.ConnectionInfo;
字符串strTableName = reportDocObject.Database.Tables [0] .Name;
reportDocObject.SetSQLCommandTable(ConnInf,strTableName,CombinedQuery);//crptModel.strSQLClause);
reportDocObject.VerifyDatabase();
crystalReportViewerBrz.ReportSource = reportDocObject;
如果我在" From"子句中的表上设置了查询,则上述代码可以正常工作,但是如果查询具有join语句并从两个表中获取记录,则以上代码将无法正常工作。
我在Visual Studio2019中使用SDK2017和Crystal Report 2016。
请建议是否可以使用SQL语句中的join执行上述方式的查询。
在Crystal 8.5或更早版本和Crystal 9或更高版本之间,.rpt文件的内部结构之间存在很大差异。 最大的缺点是,在Crystal 8.5及更早版本中,您可以手动修改Crystal生成的SQL以根据需要进行调整。 从Crystal 9开始,您将无法操作Crystal生成的SQL,而不得不在报表中使用Command而不是表格。
大约15年前,我不得不将数百个Crystal 8.5报表转换为 水晶十一。 我们发现,对于只有一个表的报表,我们可以在新版本的Crystal中打开它们,并保存它们以进行转换。 对于具有多个表的报表,我们必须在新版本中手动重新创建它们。 将表添加到新版本中并加入数据库专家后,将行将每个对象从旧报表复制到新报表中是很容易的任务,除了必须重新绘制的行。 我的猜测是您正在尝试避免手动进行操作。 除非您有成千上万的Crystal报表要转换,否则使用一些初级资源来完成大多数初始转换,并由更熟悉报表的人来检查它们而不是尝试这样做,这样做将更具成本效益,并且更容易手动完成此操作。
-Dell
嗨,
感谢Dell Stinnett-Christy的回复,
您是对的,我们希望避免手动重新创建Crystal报表,因为这些报表大约有800个正在使用内部联接。 SetSQLComandTable可以很好地处理单个表数据,但是我想基本上它的用法是设置表名。
我们想知道像单表植入这样的解决方案。
"将表添加到新版本中并加入数据库专家后,将行复制到旧对象中的每个对象(旧行除外)复制到新报表是一项相当简单的任务...。
在这一点上有些困惑。 您是否要说,如果我们通过数据库专家应用联接,那么可以像通过编程的单表查询一样使用它? 请建议
第二个查询:我们没有任何方法可以通过忽略rpt文件中的查询来通过程序执行这些类型的查询(带有join)?
谢谢
请勿将CR for VS安装到装有CR 8.5的PC上,它将无法工作,8.5不支持并行安装。
问题是VS的CR将自动映射字段,如果找不到匹配项,它将删除表和字段。
请参阅下载的WIKI,我有一个示例参数测试应用程序,可用于入门。
https: //wiki.scn.sap.com/wiki/display/BOBJ/Crystal+Reports%2C+Developer+for+Visual+Studio+Downloads
https://blogs.sap.com/2016/02/17/how-to-parameters-in-crystal-reports-for-visual-studio-net /
唐
一周热门 更多>