问题描述
|
我在Windows窗体上有一个水晶报表查看器。
报告查看器有一个与其关联的报告。我以编程方式传递了24个参数。当我尝试运行该程序时,有时会显示报告,有时软件会挂断。
我每次都将相同的数据传递给报告。没有编译时错误。当我进行逐步调试时,每次报表加载完美时都不会挂断。
这份报告开张的原因可能是什么?
编辑1:
在逐步调试过程中,我发现将“ 0”分配给“ 1”会导致软件挂断。
goldBillReport = new GoldBill();
crystalReportViewer1.ReportSource = goldBillReport; //Hangs after this !!
SetGoldParameters();
编辑2:
我现在已经更改了方案,采用简单的Windows窗体,向其中添加了一个水晶报表查看器。其次,我创建一个空白的水晶报表。
现在,我在包含查看器的Windows窗体的窗体加载事件中编写以下行。
goldBillReport = new BillReport();
crystalReportViewer1.ReportSource = goldBillReport ;
加载表单时,有80%的时间显示空白报告(根据需要)。剩余时间什么也没有显示,应用程序只是挂起。为什么呢
注意:我的实际应用程序非常大。是程序没有获得适当的内存空间来打开报表的问题。如果是,那么是否有收集垃圾的方法?
先感谢您
解决方法
关闭表单后,我将检查您是否正确处置了查看器。
另外,我遇到一个问题,我第一次运行报告时非常慢。解决方案是在应用程序启动期间(在启动屏幕后)加载临时报告。这样可以确保在用户生成报表之前,已完全加载了Crystal Report DLL。完成此操作后,每次都会在几秒钟内加载报告。