会不会你的CRYSTALREPORT引擎没有安装好?

解决方案 »

  1.   

    只有一个是这样,其他的都可以
    我的程序是将crystalreport导出为pdf文件的
    可是其他的都可以,为何就这个不行呢?!
      

  2.   

    专家们,帮帮忙啊!
    源代码如下:
    using System;
    using System.Collections;
    using System.ComponentModel;
    using System.Data;
    using System.Data.SqlClient;
    using System.Drawing;
    using System.Web;
    using System.Web.SessionState;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.HtmlControls;
    using CrystalDecisions.CrystalReports.Engine;
    using CrystalDecisions.Shared;
    using ExportPdf;
    using DataCenter;
    namespace testcry
    {
    /// <summary>
    /// WebForm1 的摘要说明。
    /// </summary>
    public class rhs26_result_pdf : System.Web.UI.Page
    {
    public rhs26 opt=new rhs26();
    private void Page_Load(object sender, System.EventArgs e)
    {
    // 在此处放置用户代码以初始化页面
    Server.ScriptTimeout=9600;
    if(!IsPostBack)
    {
    string dfrom1=rhs26_query.bdateParam;
    string efrom1=rhs26_query.edateParam;
    string type=rhs26_query.areaParam;
    string brn=rhs26_query.brnParam;
    string sea=rhs26_query.seaParam;
    string bps=rhs26_query.bpercentParam;
    string eps=rhs26_query.epercentParam;
    string group=rhs26_query.groupParam;
    string flag=rhs26_query.sale0Param;
    string detail=rhs26_query.area1Param;
    string ma=rhs26_query.maParam;

    SqlConnection sqlConnStr=new SqlConnection("server=192.168.1.98;database=tsales;uid=tsales_dba;password=ctoppy;Timeout=9600");
    string s_sql = "exec wwwsales_image1_new1 '"+type+"','"+detail+"','"+brn+"','"+sea+"','"+group+"','"+dfrom1+"','"+efrom1+"','"+flag+"','"+bps+"','"+eps+"','"+ma+"'";
    SqlDataAdapter dataAdapter = new SqlDataAdapter (s_sql,sqlConnStr);
    DataSet1 dataSet = new DataSet1();
    dataAdapter.SelectCommand.CommandTimeout=9600;
    // 连接到数据库、从数据库中获取数据然后断开数据库连接
    dataAdapter.Fill (dataSet,"wwwsales_image1;1");
    opt.SetDataSource(dataSet);
    ReportClass OPT1 =new ReportClass();
    OPT1 = opt;
    ExportOptions R_option=new ExportOptions();
    R_option = opt.ExportOptions;
    R_option.ExportDestinationType =ExportDestinationType.DiskFile;
    R_option.ExportFormatType =ExportFormatType.PortableDocFormat;
    R_option.ExportDestinationType =ExportDestinationType.DiskFile;
    DiskFileDestinationOptions diskopts=new DiskFileDestinationOptions();
    string pdfname="rhs26_"+DateTime.Now.ToShortDateString()+"_"+DateTime.Now.ToLongTimeString().Replace(":","-")+"_"+DateTime.Now.Millisecond.ToString()+".pdf";
    diskopts.DiskFileName =Server.MapPath("pdfdata/"+pdfname);
    R_option.DestinationOptions = diskopts;
    ParameterValues paramValues=new ParameterValues();
    ParameterDiscreteValue discreteVal = new ParameterDiscreteValue();
    discreteVal.Value=type;
    paramValues.Add(discreteVal);
    //设置第二个参数字段的名字及值,paramField及discreteVal变量
    //被设置为新置,这样,以前的设置就不会被覆盖,第三、第四,...,
    //以此类推
    discreteVal=new ParameterDiscreteValue();
    discreteVal.Value=detail;
    paramValues.Add(discreteVal);
    //
    discreteVal=new ParameterDiscreteValue();
    discreteVal.Value=brn;
    paramValues.Add(discreteVal);
    //
    discreteVal=new ParameterDiscreteValue();
    discreteVal.Value=sea;
    paramValues.Add(discreteVal);
    //
    discreteVal=new ParameterDiscreteValue();
    discreteVal.Value=group;
    paramValues.Add(discreteVal);
    //
    discreteVal=new ParameterDiscreteValue();
    discreteVal.Value =dfrom1;
    paramValues.Add(discreteVal);
    //
    discreteVal=new ParameterDiscreteValue();
    discreteVal.Value=efrom1;
    paramValues.Add(discreteVal);
    //
    discreteVal=new ParameterDiscreteValue();
    discreteVal.Value=flag;
    paramValues.Add(discreteVal);

    //
    discreteVal=new ParameterDiscreteValue();
    discreteVal.Value=bps;
    paramValues.Add(discreteVal);
    //
    discreteVal=new ParameterDiscreteValue();
    discreteVal.Value=eps;
    paramValues.Add(discreteVal);
    //
    discreteVal=new ParameterDiscreteValue();
    discreteVal.Value=ma;
    paramValues.Add(discreteVal);
    discreteVal.Kind =DiscreteOrRangeKind.DiscreteValue;
    ParameterValues paramValue=new ParameterValues();
    for(int i=0;i<=paramValues.Count-1;i++)
    {
    paramValue.Clear();
    paramValue.Add(paramValues[i]);
    OPT1.DataDefinition.ParameterFields[i].ApplyCurrentValues(paramValue);
    }
    OPT1.Export();
    sqlConnStr.Close();
    Response.Redirect("pdfreader.asp?pdfname="+pdfname);
    }
    } #region Web Form Designer generated code
    override protected void OnInit(EventArgs e)
    {
    //
    // CODEGEN:该调用是 ASP.NET Web 窗体设计器所必需的。
    //
    InitializeComponent();
    base.OnInit(e);
    }

    /// <summary>
    /// 设计器支持所需的方法 - 不要使用代码编辑器修改
    /// 此方法的内容。
    /// </summary>
    private void InitializeComponent()
    {    
    this.Load += new System.EventHandler(this.Page_Load); }
    #endregion
    }
    }
      

  3.   

    错误提示详细信息:
    “/testcry”应用程序中的服务器错误。
    --------------------------------------------------------------------------------文件 C:\WINNT\TEMP\temp_d7952db1-64cc-4d14-9df1-ef2bba754d1d.rpt 内出错:导出 DLL: 检测到错误 
    说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: CrystalDecisions.CrystalReports.Engine.ExportException: 文件 C:\WINNT\TEMP\temp_d7952db1-64cc-4d14-9df1-ef2bba754d1d.rpt 内出错:导出 DLL: 检测到错误源错误: 执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪信息确定有关异常原因和发生位置的信息。  堆栈跟踪: 
    [ExportException: 文件 C:\WINNT\TEMP\temp_d7952db1-64cc-4d14-9df1-ef2bba754d1d.rpt 内出错:
    导出 DLL: 检测到错误]
       .K(String 
    , EngineExceptionErrorID  ) +386
       .F(Int16 , Int32 ) +491
       CrystalDecisions.CrystalReports.Engine.FormatEngine.Export(ExportRequestContext reqContext) +469
       CrystalDecisions.CrystalReports.Engine.FormatEngine.Export() +114
       CrystalDecisions.CrystalReports.Engine.ReportDocument.Export() +74
       testcry.rhs26_result_pdf.Page_Load(Object sender, EventArgs e) in E:\wwwroot\testcry\rhs26_result_pdf.aspx.cs:116
       System.Web.UI.Control.OnLoad(EventArgs e) +67
       System.Web.UI.Control.LoadRecursive() +29
       System.Web.UI.Page.ProcessRequestMain() +724 
      

  4.   

    问题可能出现在
    dataAdapter.Fill (dataSet,"wwwsales_image1;1");
    我想可能是这个原因,你报表中使用的数据源的名称不是wwwsales_image1;1
    而你dataset中的表的名称是wwwsales_image1;1
      

  5.   

    我的问题是:有时侯有,有时候又正常,这我就搞不明白了!
    同时再请教高手:怎么在code里控制输入框的输入,如只让输入数字等.