首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

水晶报表打印和动态数据绑定有关问题,

2012-01-16 
水晶报表打印和动态数据绑定问题,急啊!Vs2005下设计好了水晶报表,并动态赋予SQL语句并能正常显示,可当点击

水晶报表打印和动态数据绑定问题,急啊!
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>

------解决方案--------------------


官方的答案:
Crystal Reports for Visual Studio 2005
列印
您可以藉由兩種方式使用 Crystal Reports for Visual Studio 2005 以列印報表:

藉由 GUI:在 Web 或 Windows Form 上使用 CrystalReportViewer 控制項提供的工具列 [列印] 按鈕。
藉由 SDK:使用 ReportDocument 物件。
從 GUI 中列印

在 Windows 應用程式中,CrystalReportViewer 控制項工具列上的 [列印] 按鈕可以開啟標準的列印對話方塊。

在 Web 應用程式中,CrystalReportViewer 控制項工具列上的 [列印] 按鈕則會開啟模擬列印對話方塊的第二個網頁。Web 伺服器上會產生 PDF,下載之後便顯示在網頁上。(其工作方式非常像「預覽列印」)。

從 SDK 中列印

使用者通常會使用 CrystalReportViewer 控制項工具列中的 [列印] 按鈕,從自己的電腦中列印報表。但如果要設計會在 Web 伺服器上列印報表的 Web 應用程式,可能就要使用 ReportDocument 物件模型來撰寫程式碼,將報表從伺服器直接列印到特定印表機。

使用 ActiveX 控制項列印

在 Crystal Reports 的更新版本中,您可以使用新的 CrystalReportViewer.PrintMode 屬性來指定列印模式。其中包含兩個列舉型別:ActiveX 和 PDF。

當屬性設定為 PrintMode.PDF 時,報表會在 Web 伺服器上匯出為 PDF,然後以資料流傳送到瀏覽器。使用者可以利用選項,直接列印至印表機。這個選項是跨平台相容的。
當屬性設定為 PrintMode.ActiveX 時,ActiveX 列印控制項允許使用者將報表直接列印至本機印表機。
注意 在 Crystal Reports for Visual Studio 2005 中,為符合 Microsoft 安全性需求起見,並沒有將 ActiveX 列印控制項安裝在本機電腦上。而是必須製成 .cab 檔案,讓人從外部 URL 來存取。PrintControl.cab 檔案可以從 Business Objects 技術支援網站下載取得,這時就可以將 cab 檔案放在 Web 伺服器虛擬目錄中,以供 URL 存取之用。
若要在 Crystal Reports for Visual Studio 2005 網站顯示 cab 檔案,請將下列 xml 加入網站的 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://myserver/PrintControl.cab " />
</printControl>
</crystalReports>
</businessObjects>
注意 只有 Internet Explorer 才會支援 ActiveX 控制項。若從非 Internet Explorer 的用戶端 (FireFox、Safari、Mozilla 等) 列印,將會回復到 PDF 匯出對話方塊。

热点排行