首页 新闻 会员 周边

.net 水晶报表 连续打印多份后提示“加载失败”

0
悬赏园豆:10 [待解决问题]

code如下:

private void PrintReport(DataSet dsSource)
{

RptManualAudit rpt = new RptManualAudit();
try
{
rpt.SetDataSource(dsSource);
rpt.PrintToPrinter(1, false, 0, 0);

}
catch (Exception ex)
{
}
finally
{
rpt.Dispose();
}

}

 

 

已经释放了资源,但还是会报加载失败。求各位大侠相助!

djboaer的主页 djboaer | 初学一级 | 园豆:192
提问于:2014-12-11 14:56
< >
分享
所有回答(1)
0

你打印多次后, 是不是在windows的temp目录下有很多个垃圾文件了?

我之前也碰到过, 翻了下记录。 当初是这样解决的。。。 

1. ReportDocumen实例必须为类成员 

private ReportDocument prtp = new ReportDocument(); //不用每次都new

2. 使用完水晶报表必须关闭文件,这样子就不会在windows的临时文件里面产生.

private void Page_Unload(object sender, EventArgs e)
    {
        prtp.Dispose();
    }

 Page_Unload 事件是在页面完全显示的时候运行. 

问天何必 | 园豆:3311 (老鸟四级) | 2014-12-11 17:49

我的是Winform,不是web额。

调用打印是一个foreach循环。

foreach (Object obj in alReports)
{
this.PrintReport((DataSet)obj, 1, false, 0, 0);//调用上面的代码
}

您的意思是,我把RptManualAudit 定义为实例成员,最后再释放掉资源么?这样不也是一直在加载么?

支持(0) 反对(0) djboaer | 园豆:192 (初学一级) | 2014-12-12 10:17
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册