http://210.76.0.132/1/crerr2.jpg

解决方案 »

  1.   

    我的电子信箱是 [email protected]
      

  2.   

    建议:1.自己在论坛中搜索,输入“报表”关键字,选择小类或大类进行搜索,你可以看到很多老帖子都有讨论;2.查看MSDN的相关文档:  2.1:Visual Studio .NET 的标准报表工具的介绍和使用:ms-  help://MS.VSCC/MS.MSDNVS.2052/crystlmn/html/crconcrystalreports.htm  2.2:ReportDocument 类介绍:ms-help://MS.VSCC/MS.MSDNVS.2052/crystlrf/html/crlrfreportdocumentclasstopic.htm
      
      2.3:CrystalReportViewer 类介绍:ms-help://MS.VSCC/MS.MSDNVS.2052/crystlrf/html/crlrfwindowsformscrystalreportviewerclasstopic.htm  2.4:Crystal 语法:ms-help://MS.VSCC/MS.MSDNVS.2052/crystlrf/html/crconcreatingformulaswithcrystalsyntax.htm  2.5:访问 Web 项目中的报表:ms-help://MS.VSCC/MS.MSDNVS.2052/crystlmn/html/crconaccessingreportsinwebprojects.htm3.充分利用http://www.crystaldecisions.com提供的资源,可以通过搜索文章,示例等;  3.1:水晶报表论坛上有很多的技术问题提问,大家不妨学习下:http://support.crystaldecisions.com/forums/   -----------------------------
    给个简单示例给你参考下:
    报表的装载和查看
    一.使用CrystalReportViewer跟水晶报表Crystal Report的绑定浏览;
    1.Solution Explorer/Add/Add New Item…/DataSet,按照提示建立DataSet的XML架构文件(.xsd);
    2.Solution Explorer/Add/Add New Item…/Crystal Report,建立表文件;
    3。然后再建立一个窗体文件 CrystalReport.aspx
       并在文件中建立或从工具箱中拖入一个CrystalReportViewer
    4。在CrystalReport.aspx.cs中写入下列代码:
    // 设置连接信息
    string myConnectionString = "YourConnectString";
    SqlConnection myConnection = new SqlConnection(myConnectionString);
    string mySelectQuery = "select * from TbAutoDispatchBill";
    SqlDataAdapter myDataAdapter = new SqlDataAdapter(mySelectQuery, myConnection);
    //DataSet1为用XML 架构定义语言 (XSD) 描述的DataSet架构
    DataSet1 dsBill = new DataSet1();
    // 连接到数据库、从数据库中获取数据然后断开数据库连接
    myDataAdapter.Fill(dsBill,"TbAutoDispatchBill");//注意这里的表名要求跟数据库的实际表名一致
    //实例化水晶报表
    CrystalReport_Bill CR_Bill = new CrystalReport_Bill();
    //将填充的数据集传递给报表
    CR_Bill.SetDataSource(dsBill);
    //设置报表源,将该报表对象绑定到 Web 窗体查看器
    CrystalReportViewer1.ReportSource=CR_Bill;
      

  3.   

    这是我学水晶报表时作的一个简单的例子,不知有用与否
    代码:
    using CrystalDecisions.Shared ;
    using CrystalDecisions.CrystalReports .Engine ;
    //命名空间的相关说明请查看VS的帮助文档其次假如用户创建的rpt文件名和路径为‘C:\CrystalReport1.rpt’,则实现如下:private void Page_Load(object sender, System.EventArgs e)
    {
               TableLogOnInfo logOnInfo = new TableLogOnInfo ();
               ReportDocument Rd = new ReportDocument();
               Rd.Load (@"C:\CrystalReport1.rpt");
               logOnInfo.ConnectionInfo.ServerName = localhost;
               logOnInfo.ConnectionInfo.DatabaseName = northwind;
               logOnInfo.ConnectionInfo.UserID =sa;
               logOnInfo.ConnectionInfo.Password =sa;
               Rd.Database .Tables [0].ApplyLogOnInfo (logOnInfo);
               CrystalReportViewer1.ReportSource = Rd;
    }对于打印功能,不妨将其导出到PDF文件
    代码:
    /* 以下两个引用是使用水晶报表所必须的,对命名空间的具体说明详见VS.Net帮助文档 */
    using CrystalDecisions.Shared ;
    using CrystalDecisions.CrystalReports.Engine ;Private void print()
    {
    string Path_CptModule = null;//用来暂存水晶报表模板的存放路径
    string Fname = null;//用来暂存水晶报表利用pdf文件进行打印时调用的临时文件ReportDocument crReportDocument = new  ReportDocument();
    ExportOptions crExportOptions = new ExportOptions();
    DiskFileDestinationOptions crDiskFileDestinationOptions = new DiskFileDestinationOptions();

    Path_CptModule = @"C:\CrystalReport1.rpt";
    crReportDocument.Load (Path_CptModule);
    Fname = "c:\\temp_cpt_print";
    crDiskFileDestinationOptions.DiskFileName = Fname;
    crExportOptions = crReportDocument.ExportOptions;
    crExportOptions.DestinationOptions = crDiskFileDestinationOptions;
    crExportOptions.ExportDestinationType = ExportDestinationType.DiskFile;
    crExportOptions.ExportFormatType = ExportFormatType.PortableDocFormat;
    crReportDocument.Export();
    Response.ClearContent();
    Response.ClearHeaders();
    Response.ContentType = "application/pdf";
    Response.WriteFile(Fname);
    Response.Flush();
    Response.Close();
    System.IO.File.Delete(Fname);
    }Good Luck!
      

  4.   

    参考帖子:
    http://expert.csdn.net/Expert/topic/1587/1587976.xml?temp=.6962091