报告文件XXXXXXXX.rpt中出错,找不到表YYYY。

2020-09-10 10:07发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


我正在使用Visual Studio 2017社区SP 24的Crystal Reports开发人员版本

从Crystal Reports Designer到SQL Server EXPRESS 2016的连接,因为数据库是OLE DB(ADO)。

在Crystal Reports Viewer中运行报表时出现以下错误:

报告文件XXXXXXXX.rpt中的错误,找不到表YYYY。

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


我正在使用Visual Studio 2017社区SP 24的Crystal Reports开发人员版本

从Crystal Reports Designer到SQL Server EXPRESS 2016的连接,因为数据库是OLE DB(ADO)。

在Crystal Reports Viewer中运行报表时出现以下错误:

报告文件XXXXXXXX.rpt中的错误,找不到表YYYY。

付费偷看设置
发送
4条回答
空代码
1楼 · 2020-09-10 11:03.采纳回答

为什么要设置参数值并清除它们?

 crParameterValues.Clear(); 

如果Viewer中没有报告,则不要调用 .Refresh(),该操作会删除您可能所做的任何更改。

感谢Dell和Don的支持,我更改了连接并

在建立OLE DB连接时使用了SQL Server Native 11。 我放

运行报告时登录数据库。 现在处于预览状态

设计器模式可以正常工作,但是在应用程序的调试模式下会出现相同的错误

"报告文件CrystalReport6 xxxxxxxx.rpt中的错误,找不到该表。"

在执行过程中,最后一条指令crystalReportViewer1.Refresh();

以下是我的CRViewer的C#代码:

 
============================== 使用系统; 使用System.Collections.Generic; 使用System.ComponentModel; 使用System.Data; 使用System.Drawing; 使用System.Linq; 使用System.Text; 使用System.Threading.Tasks; 使用System.Windows.Forms; 使用CrystalDecisions.CrystalReports.Engine; 使用CrystalDecisions.Shared; 命名空间WindowsFormsApp6 { 公共局部类frmCRViewer:表单 { 公共frmCRViewer() { InitializeComponent(); } private void button1_Click(对象发送者,EventArgs e) { ReportDocument cryRpt =新的ReportDocument(); cryRpt.Load(" C:\\ Users \\ Korisnik \\ source \\ repos \\ WindowsFormsApp6 \\ WindowsFormsApp6 \\ CrystalReport6.rpt"); ParameterFieldDefinitions crParameterFieldDefinitions; ParameterFieldDefinition crParameterFieldDefinition; ParameterValues crParameterValues =新的ParameterValues(); ParameterDiscreteValue crParameterDiscreteValue =新的ParameterDiscreteValue(); crParameterDiscreteValue.Value = textBox1.Text; crParameterFieldDefinitions = cryRpt.DataDefinition.ParameterFields; crParameterFieldDefinition = crParameterFieldDefinitions [" grupa"]; crParameterValues = crParameterFieldDefinition.CurrentValues; crParameterValues.Clear(); crParameterValues.Add(crParameterDiscreteValue); crParameterFieldDefinition.ApplyCurrentValues(crParameterValues); TableLogOnInfos crtableLogoninfos = new TableLogOnInfos(); TableLogOnInfo crtableLogoninfo =新的TableLogOnInfo(); ConnectionInfo crConnectionInfo =新的ConnectionInfo(); 表CrTables; crConnectionInfo.ServerName =" HPZORAN \\ SQLEXPRESS"; crConnectionInfo.DatabaseName =" LabhemicalNET.mdf"; crConnectionInfo.IntegratedSecurity = true; //crConnectionInfo.UserID =" SA"; //crConnectionInfo.Password =" babic"; CrTables = cryRpt.Database.Tables; foreach(CrTables中的CrystalDecisions.CrystalReports.Engine.Table CrTable) { crtableLogoninfo = CrTable.LogOnInfo; crtableLogoninfo.ConnectionInfo = crConnectionInfo; CrTable.ApplyLogOnInfo(crtableLogoninfo); } crystalReportViewer1.ReportSource = cryRpt; crystalReportViewer1.Refresh(); } } =================================================

亲切的问候

Zoran Babic

ZJXianG
3楼-- · 2020-09-10 10:59

在运行报告时是否要设置数据库登录名?

是否在应用程序和报告中使用临时表?

-Dell

hongfeng1314
4楼-- · 2020-09-10 10:41

在建立OLE DB连接时使用SQL Server Native 11客户端。

MS MDAC OLE DB提供程序不完全支持较新的客户端。

一周热门 更多>