可以在Web Form中使用CrystalReportViewer,它里面有打印的设置,在Viewer里调用CrystalRepor,这样就可以设置它的打印了。

解决方案 »

  1.   

      老兄,能否说详细点?
      
      我这样使用:protected MaUserReport1 rpMa = null;//MaUserReport1为rpt报表private void Button1_Click(object sender, System.EventArgs e)
    {   rpMa = new MaUserReport1();   string strConn = Application["connect_string"].ToString();
       SqlConnection sqlCon1 = new SqlConnection(strConn);
       sqlCon1.Open();
       SqlDataAdapter sd1 = new SqlDataAdapter("select * from ma_user", sqlCon1);
       DataSet1 dst1 = new DataSet1();
       sd1.Fill(dst1, "ma_user");
       rpMa.SetDataSource(dst1);
       rpMa.PrintToPrinter(1, false,0,0);
    }对于在CrystalReportView1中显示数据,用同样的数据推方法显示正常。
    执行打印出现以下错误信息:在需要对象实例的地方发现了空值。 
    说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的更多信息。 异常详细信息: System.NullReferenceException: 在需要对象实例的地方发现了空值。源错误: 执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪信息确定有关异常原因和发生位置的信息。  堆栈跟踪: 
    [NullReferenceException: 在需要对象实例的地方发现了空值。]
       System.Web.UnhandledErrorFormatter.get_ColoredSquare2Content() +538
       System.Web.UnhandledErrorFormatter.PrepareFormatter() +43
       System.Web.ErrorFormatter.GetHtmlErrorMessage(Boolean dontShowSensitiveInfo) +19
       System.Web.HttpResponse.WriteErrorMessage(Exception e, Boolean dontShowSensitiveErrors) +767
       System.Web.HttpResponse.ReportRuntimeError(Exception e, Boolean canThrow) +261
       System.Web.HttpRuntime.FinishRequest(HttpWorkerRequest wr, HttpContext context, Exception e) +196不知何故,或者请你给出一个例子?
     
    --------------------------------------------------------------------------------