当前位置: 代码迷 >> .NET报表 >> 高分求助!(WEB打印的有关问题)
  详细解决方案

高分求助!(WEB打印的有关问题)

热度:10172   发布时间:2013-02-25 00:00:00.0
高分求助!(WEB打印的问题)
VS2005
我用了水晶报表
打印模式为AxtiveX
推模式
报表是别人给我做的,我就是引用
能够预览显示数据
就是在点打印后,弹出对话框  “出现通信错误。将停止打印”
网上有资料说是:“是绑定的问题   报表绑定写在OnInit就OK了”
我不明白什么是OnInit,请高手指点,很急哦,在线等啊!
或者还有其他什么解决办法。

我的打印代码是这样:
private   void   PoReportPrint()
        {
                DataSet   ds   =   this.GetPrintData();

                CrystalReportSource1.ReportDocument.Load(Server.MapPath( "CryMovePathRpt.rpt "));

                CrystalReportSource1.ReportDocument.SetDataSource(ds.Tables[0]);

                if   (ds.Tables[0].Rows.Count   <=   0)
                {
                        Response.Write( " <script   language= 'javascript '> alert( '没有找到相关的记录! '); </script> ");
                        return;
                }

                CrystalReportViewer1.ReportSource   =   CrystalReportSource1;
                CrystalReportViewer1.DataBind();
        }

能帮我改改将非常感谢。。


我连的是ORACLE是数据库
但是建水晶报表是SQL的,这样应该没什么关系吧,字段是一致的



------解决方案--------------------------------------------------------
水晶报表10本身就有打印功能,你还添什么代码呢?莫明其妙.如果你真的需要加一个 "打印 "按钮来打印(我觉得完全是多此一举),可以这样写:
protected void btnPrint_Click(object sender, System.EventArgs e)
{
// 指定打印机名称,这里是网络工作站Gigi上的打印机Hp Jet 6
string strPrinterName;
strPrinterName = @ "VCIT99 ";
// 设置打印页边距
PageMargins margins;
margins = ReportDoc.PrintOptions.PageMargins;
margins.bottomMargin = 250;
margins.leftMargin = 350;
margins.rightMargin = 350;
margins.topMargin = 450;
ReportDoc.PrintOptions.ApplyPageMargins(margins);
//应用打印机名称
ReportDoc.PrintOptions.PrinterName = strPrinterName;
// 打印 // 打印报表。将 startPageN 和 endPageN
// 参数设置为 0 表示打印所有页。
ReportDoc.PrintToPrinter(1, false, 0, 0);

}
------解决方案--------------------------------------------------------
你把綁定數據代碼寫在PageLoad事件中試試,不行的話改為PDF方式試試,如果可以的話參照以下做法:
使用 ActiveX 控制項列印

在 Crystal Reports 的更新版本中,

~JKvkZ国E,bQx\

您可以使用新的 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 " />
  相关解决方案