水晶报表10 打印、导出按钮不能用

原创 2007年09月18日 12:56:00
 
最近公司接了一个项目,要给客户做许多报表,并且是中国式的报表,本人就用了c#+水晶报表10进行了开发,但是中间遇到了一个问题,”动态设置水晶报表的数据源后,打印、导出、查找等按钮不能用,即使用水晶报表的工具栏时,出现的不是打印、导出、查找的结果,而是一张空白”出现这个问题挺郁闷的,于是在网上也查找了一番,但是网友们也都遇见到这个问题,都 没有给出解决的办法。无奈之下,本人专门研究了一番,最后费了十牛三虎之力,终于找到了解决的办法,下面列出来,以飨读者,希望能给遇到此问题的朋友一定的帮助。
 
WEB窗体中有两个控件,CrystalReportViewer1     CrystalReportSource1 数据源:Dataset
代码:
protected CrystalDecisions.Web.CrystalReportViewer Crv;
ReportDocument ReportDoc=new ReportDocument() ;   
 if (!IsPostBack)
{
SqlConnection sqlConnData=new SqlConnection(ConfigurationSettings.AppSettings["dsn"]) ;           
sqlConnData.Open();
string str="select * from brigderoad where (station='"+UserStr+"') or (year='"+yearStr+"') ";
//查询特定的表
     SqlDataAdapter MyAdapter=new SqlDataAdapter (str,sqlConnData);
     addressDS ds=new addressDS();
     MyAdapter.Fill (ds,"brigderoad");//绑定到数据源
     string FilePath=Server.MapPath("report/bridgeCrR.rpt"); //指定到特定的报表         
 
     if (!ReportDoc.IsLoaded )
        ReportDoc.Load(FilePath);
     ReportDoc.SetDataSource(ds);
Crv.ReportSource=ReportDoc;  
}
上面就是常见的代码,并且代码不存在错误,那读者要问了,上面没有错误,但是到预览报表时,要打印、导出、查找特定的页面时为什么还是空白页面呢?
哈哈,下面将解决这个问题,请往下看
if (!IsPostBack)
{
 //
}
SqlConnection sqlConnData=new SqlConnection(ConfigurationSettings.AppSettings["dsn"]) ;           
     sqlConnData.Open();
string str="select * from brigderoad where (station='"+UserStr+"') or (year='"+yearStr+"') ";
//查询特定的表
SqlDataAdapter MyAdapter=new SqlDataAdapter (str,sqlConnData);
addressDS ds=new addressDS();
MyAdapter.Fill (ds,"brigderoad");//绑定到数据源
string FilePath=Server.MapPath("report/bridgeCrR.rpt"); //指定到特定的报表         
 
if (!ReportDoc.IsLoaded )
      ReportDoc.Load(FilePath);
ReportDoc.SetDataSource(ds);
Crv.ReportSource=ReportDoc;
 
 
看到了吧,只需要if语句后的代码放在if (!IsPostBack){ //}
的后面就可以了,呵呵,啰唆了那么多,就这么简单。Ispostback指示该页是否正为响应客户端回发而加载,或者它是否正被首次加载和访问,当执行完if (!IsPostBack){ //}之后有比讯把所查询的表重新绑定数据源,这样报表中有了数据,所以水晶报表的工具栏就可以用了。
总结:
 if (!IsPostBack){ //}执行之后要把表重新绑定到数据源,这样才不会错误。 

相关文章推荐

水晶报表文件导出方法小结

近期在做水晶报表时,作者用到了水晶报表文件导出功能。在网上一搜,资料还真多,这些资料不仅多,而且非常的杂乱,让人看得非常不舒服。于是在此将其作了一点汇总和整理,以供大家参考。写的不好,请多包涵。 命...

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

使用CrystalReportViewer打印通讯错误的问题

今天在使用CrystalReportViewer打印Report的时候,总是会跳出:An communication error occurred. Printing will be stopped的...
  • kucool
  • kucool
  • 2007年12月20日 15:32
  • 2647

VS2005 crystalReportviewer 打印问题

在VS2005中使用水晶报表时很简单的事了,因为微软已经把几乎整个水晶报表的工具集成到VS2005了。而且crystalReportviewer 控件有着强大的报表功能,其中包括显示报表,预览,缩印等...
  • kucool
  • kucool
  • 2007年12月19日 14:10
  • 1776

web下vs2008+crystal report 不预览直接打印

下载了一个PrintControl.cab(vs2008用的)然后在webconfig中设置: 代码 Code highlighting produced by Actipro CodeHighlig...

水晶报表10 打印、导出按钮不能用

最近公司接了一个项目,要给客户做许多报表,并且是中国式的报表,本人就用了c#+水晶报表10进行了开发,但是中间遇到了一个问题,”动态设置水晶报表的数据源后,打印、导出、查找等按钮不能用,即使用水晶报表...

水晶报表10 完全手册.part2

  • 2010年08月16日 11:31
  • 14MB
  • 下载

水晶报表之主从多表数据源批量预览及打印开发设计

第一步:创建强类型数据集,添加数据表,一般情况下,设置各个字段类型为字符串,对于图片字段,数据类型为System.Byte[],指定各个数据表之间的关系。如果父表为SickInfo,子表为ChemPr...

[水晶报表]之打印条码

新版的水晶报表很方便的支持条码打印。 需要了解的到网站:http://www.azalea.com/ 看一下示例 看到这样的介绍: Printing barcodes in Crystal Repor...

水晶报表10中文手册

  • 2008年01月16日 15:13
  • 2.07MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:水晶报表10 打印、导出按钮不能用
举报原因:
原因补充:

(最多只允许输入30个字)