【发布时间】:2011-09-14 19:13:25
【问题描述】:
我在 Windows 窗体上有一个水晶报表查看器。
报表查看器有一个与之关联的报表。我以编程方式传递了 24 个参数。当我尝试运行该程序时,有时会显示报告,有时会挂起软件。
我每次都将相同的数据传递给报告。没有编译时错误。当我进行分步调试时,每次报告都能完美加载并且没有挂断。
报告开头如此喜怒无常的原因是什么????
编辑1:
在单步调试过程中,我发现将reportsource 分配给CrystalReportViewer 会导致软件挂起。
goldBillReport = new GoldBill();
crystalReportViewer1.ReportSource = goldBillReport; //Hangs after this !!
SetGoldParameters();
编辑 2: 我现在改变了场景,我采用了简单的窗口形式,添加了一个水晶报表查看器。其次,我创建了一个空白水晶报表。
现在我在包含查看器的 windows 窗体的窗体加载事件中编写以下行。
goldBillReport = new BillReport();
crystalReportViewer1.ReportSource = goldBillReport ;
当我加载表单时,80% 的时间它会显示空白报告(根据需要)。剩下的时间它什么也没显示,应用程序只是挂起。为什么?
注意:我的实际应用程序非常大。是程序没有获得适当的内存空间来打开报告的问题吗?如果是,那么有什么方法可以收集垃圾吗?
提前谢谢你
【问题讨论】:
-
计算机的有趣之处在于,它们不会根据心情、是否 [不] 喜欢你或天气来做事。还有其他原因(虽然是间歇性的)导致问题(可能是 SQLEXPRESS 框的数据库并发客户端/连接限制?)。
-
@Brad - 你可能是对的,但我对 Crystal 的经验表明 OP 可能正在做某事...... =)
-
您是否尝试过单步执行您的代码以查看可能挂断的位置?
-
@Yuck:我听到了,这就是为什么我“说服”我的老板非常很快地走 SSRS 的路线。哎呀,我什至正在绘制 ASP.NET/PHP 报表页面,只是为了避免编写 Crystal 报表。
-
这是水晶报表的一个功能。
标签: c# winforms crystal-reports