第一次用水晶报表,捕捉打印函数的异常中,发现了好象叫“登陆失败”这样的提示。(程序我放在公司了,有些代码是借用别人以前的,所以不太说的清楚)。我确定自己的电脑是联有默认打印机的,而且我是为报表设置了打印机的。
我做了数据集,在数据集里填充了数据之后,设置为水晶报表的数据源。打印用了Crystal Report 类的一个接口,具体忘记了叫什么了,好象是Print...(1,true,1,-1)这样的在执行这个函数时,抓到exception。就是好象叫“登陆失败”你们谁碰到这个错误啊???
谢谢了

解决方案 »

  1.   

    看了 一下代码,出现异常的函数是:Crystal Report 类的接口PrinttoPrinter(1,true,1,-1),异常是:登陆失败
      

  2.   

    CrystalDecisions.CrystalReports.Engine.LogOnException:  登录失败。  
     
    ---------------------------------------------------------------  
     
    在报表的cs文件中,加上数据库连接。  
    ---------------------------------------------------------------  
     
    1.TableLogonInfo  
     
    .使用TableLogonInfo  
    Dim  ReportDoc  As  New  ReportDocument()  
    Dim  logonInfo  As  New  TableLogonInfo  
    Dim  table  As  table  
    ReportDoc.Load("C:\Rpts\publish.rpt")  
    For  Each  table  IN  ReportDoc.DataBase.Tables  
                   logonInfo=  table.LogonInfo  
                   with  logonInfo.connectioninfo  
                       .serverName=  "Localhost"  
                       .Databasename=  "pubs"  
                       .UserID=  "sa"  
                       .Password=""  
                   End  With  
                   table.applyLogonInfo(logonInfo)  
    next  table  
    Crviewer.reportsource=  reportDoc  
    2.如果是多個相關表格生成的報表,最好以存儲過程為數據源建立報表
      

  3.   

    请问你是在webform里用接口PrinttoPrinter(1,true,1,-1)吗?
    如果是的话当然有问题,这个接口只在winform里适用。
      

  4.   

    那webform里面 打印水晶报表用什么接口?? BK????
      

  5.   

    string Conn= ConfigurationSettings.AppSettings.Get("Con");
    SqlConnection myconn=new SqlConnection(Conn);
    string sql="select * from PartNumber";

    DataSet ds=new DataSet();
    SqlDataAdapter SDA=new SqlDataAdapter(sql,myconn);
    try
    {
    SDA.Fill(ds,"PartNumber");//将表写入DataSet
    }
    catch
    {
    Response.Write("<script>history.back();alert('查询数据过多或数据问题!');</script>");
    Response.End(); }
    if (ds.Tables[0].Rows.Count>0)
    {
    rptyi.SetDataSource(ds.Tables[0]);
    // 声明变量并获取导出选项。
    ExportOptions exportOpts = new ExportOptions();
    DiskFileDestinationOptions diskOpts = new DiskFileDestinationOptions();
    exportOpts = rptyi.ExportOptions;
    // 设置导出格式。
    exportOpts.ExportFormatType = ExportFormatType.PortableDocFormat;
    exportOpts.ExportDestinationType = ExportDestinationType.DiskFile; // 设置磁盘文件选项。
    string pdfname="cha"+DateTime.Now.ToShortDateString()+"_"+DateTime.Now.ToLongTimeString().Replace(":","-")+"_"+DateTime.Now.Millisecond.ToString()+".pdf";
    diskOpts.DiskFileName = Server.MapPath("PDF/"+pdfname);
    exportOpts.DestinationOptions = diskOpts;
    rptyi.Export();
    rptyi.Dispose();

    Response.Write("<script>window.open('pdf/"+pdfname+"');history.go(-1);</script>");

    }
    else 
    {
    Response.Write("<script>history.back();alert('没有满足您查询条件的数据,请重新输入查询条件!');</script>");
    Response.End();
    }