日期:2014-05-19  浏览次数:20448 次

水晶报表打印和动态数据绑定问题,急啊!
Vs2005下设计好了水晶报表,并动态赋予SQL语句并能
正常显示,可当点击工具栏上的导出按扭时,就恢复了设计时的数据(为了方便设计建立一个空表,当查询时生成一个DataSet),如何解决,代码如下,另外水晶10.2如何实现客户端打印,解决一个就可以,主要是为了打印问题。
odb是定义连接ORACLE的一个类.
初始:
  private   void   ConfigureCrystalReports()
                {
                        ReportDocument   rd   =   new   ReportDocument();
                        string   strFilePath   =   this.Server.MapPath( "PstRep.rpt ");
                        rd.Load(strFilePath);
                        //   DataTable   dt   =   DataSetConfiguration.CustomerDataSet;
                        ds   =   odb.getDataSet( "select   *   from   temp_pst ",   "temp_pst ");
                        rd.SetDataSource(ds);
                                            CrystalReportViewer1.ReportSource   =   rd;
                        CrystalReportViewer1.RefreshReport();
     
                }
动态绑定数据:
  ds   =   odb.getDataSet(hideSQL.Text,   "TEMP_PST ");
                              //   dt   =   db.GetDataTable(strSQL);
                                rd.SetDataSource(ds);
                               
                                CrystalReportViewer1.ReportSource   =   rd;
                                CrystalReportViewer1.DataBind();
                                CrystalReportViewer1.RefreshReport();

------解决方案--------------------
打印:
首先下载printcontrol.cab从:http://
support.businessobjects.com/CRforVS2005/
PrintControl.cab#

然后在web.config中插入:

<configSections>
<sectionGroup name= "businessObjects ">
<sectionGroup name= "crystalReports ">
<section name= "printControl " type= "System.Configuration.NameValueSectionHandler, System, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, Custom=null " />
</sectionGroup>
</sectionGroup>
</configSections>

<businessObjects>
<crystalReports>
<printControl>
<add key= "url " value= "http://localhost/PrintControl.cab " />
</printControl>
</crystalReports>
</businessObjects>

DataBinding:“System.Data.DataRowView”不包含名为“phoneID ”的属性。解决办法