2020-09-10 10:07发布
加入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。
为什么要设置参数值并清除它们?
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
在运行报告时是否要设置数据库登录名?
是否在应用程序和报告中使用临时表?
-Dell
在建立OLE DB连接时使用SQL Server Native 11客户端。
MS MDAC OLE DB提供程序不完全支持较新的客户端。
最多设置5个标签!
为什么要设置参数值并清除它们?
如果Viewer中没有报告,则不要调用 .Refresh(),该操作会删除您可能所做的任何更改。
感谢Dell和Don的支持,我更改了连接并
在建立OLE DB连接时使用了SQL Server Native 11。 我放
运行报告时登录数据库。 现在处于预览状态
设计器模式可以正常工作,但是在应用程序的调试模式下会出现相同的错误
"报告文件CrystalReport6 xxxxxxxx.rpt中的错误,找不到该表。"
在执行过程中,最后一条指令crystalReportViewer1.Refresh();
以下是我的CRViewer的C#代码:
亲切的问候
Zoran Babic
在运行报告时是否要设置数据库登录名?
是否在应用程序和报告中使用临时表?
-Dell
在建立OLE DB连接时使用SQL Server Native 11客户端。
MS MDAC OLE DB提供程序不完全支持较新的客户端。
一周热门 更多>