分析器错误信息: 无法从其“ReportSource”属性的字符串表示形式“"<%#"D:\rtss\caseapp\CrystalReport1.rpt"%”创建“System.Object”类型的对象。源错误: 
行 12:  <body MS_POSITIONING="GridLayout">
行 13:  <form id="Form1" method="post" runat="server">
行 14:  <CR:CrystalReportViewer id="CrystalReportViewer1" style="Z-INDEX: 101; LEFT: 8px; POSITION: absolute; TOP: 8px"
行 15:  runat="server" Width="1030px" Height="1089px" ReportSource="<%#"D:\rtss\caseapp\CrystalReport1.rpt"%>">
行 16:  </CR:CrystalReportViewer>
 源文件: D:\RTSS\CaseApp\EditCase2.aspx    行: 14 
这是怎么回事啊?

解决方案 »

  1.   

    分析器错误信息: 无法从其“ReportSource”属性的字符串表示形式“"<%#"D:\rtss\caseapp\CrystalReport1.rpt"%”创建“System.Object”类型的对象。源错误: 
    行 12:  <body MS_POSITIONING="GridLayout">
    行 13:  <form id="Form1" method="post" runat="server">
    行 14:  <CR:CrystalReportViewer id="CrystalReportViewer1" style="Z-INDEX: 101; LEFT: 8px; POSITION: absolute; TOP: 8px"
    行 15:  runat="server" Width="1030px" Height="1089px" ReportSource="<%#"D:\rtss\caseapp\CrystalReport1.rpt"%>">
    行 16:  </CR:CrystalReportViewer>
     源文件: D:\RTSS\CaseApp\EditCase2.aspx    行: 14 
    这是怎么回事啊?
      

  2.   

    Crystal Reports 是世界范围的、事实上的报表标准!  其开发公司Crystal Decisions与世界上主要的大科技公司,如IBM、Microsoft 与SAP等皆有长期的合作关系。Crystal Decisions与超过200家的独立软件厂商都具有OEM的合作关系,将其报告、分析与信息传送解决方案作为其应用程序核心组建,领域包括:服务台(HelpOEM合作伙伴)应用、医疗、通讯、财务、人力资源、ERP、政府、教育与销售自动化。  Crystal Reports支持多种流行的开发平台:Java、.NET、COM SDK,及其多种开发工具:Visual Studio.NET、C# Builder、Delphi……
      不仅提供完善的报表解决方案,而且一劳永逸!  一个独立的报表能够涵盖表现层、商务逻辑层、数据层……  而且自成体系——Crystal Reports 产品家族!
      Crystal Analysis Professional——用于Web的强大的分析工具。
      Crystal Enterprise 9——通过将最佳的企业报表与强大的分析功能相结合,Crystal Enterprise 9提供了一个用户业务智能整合的强健的平台,以及一整套完整的工具集,以满足最终用户的各种需求。
      

  3.   

    2。我的目的是想通过该报表控件从WEB上来对数据库中的表进行修改、插入和删除操作,用CrystalReportViewer能实现吗?水晶报表是用于统计分析的报表,不用于操作数据……
      

  4.   

    通过Pull模式来执行水晶报表
    我们将通过下面的这些步骤来通过Pull模式来执行水晶报表 
    1.首先创建rpt文件,并使用水晶报表设计接口设置一些必须的数据连接。 
    2.拖放一个 CrystalReportViewer控件至aspx页面,设置它的属性指定我们上一步创建的.rpt文件。 
    3. 在代码中调用DataBind方法。
    创建 .rpt 文件:
    1) 在右击”解决方案游览器“,在弹出的菜单中选择”添加“--”添加新项“-->”Crystal Report”  
    2) 在”Crystal Report 库”中选择”作为空白报表“单选按钮,最后单击“确定“。  
    3)这里将弹出水晶报表设计器。  
    4) 右击报表中的”详细资料区”,选择“数据库”->“添加/删除数据库..."
    5) 在弹出的”数据库专家“中,扩展”OLE DB(ADO)“选项,此时会弹出另外一个”OLE DB(ADO)“窗口。
    6) 在 "OLE DB (ADO)" 弹出窗口中,选择 "Microsoft OLE DB Provider for SQL Server" 然后 "Next"
    7) 指定连接的信息
    服务器 : ASPCN (您的机器是什么名字就写什么) 
    用户 ID: sa
    密码:
    数据库 : Pubs
    8) 单击”Next“,最后单击”Finish“按钮。
    9) 这时你就能在”数据库专家“窗口中看到我们选择的数据库。
    10) 扩展”Pubs“数据库,扩展”表“,选择”Stores“表并将其加到”选定的表“区中,单击”OK"按钮。
    11) 现在在”字段资源浏览器“中就会在左边”数据库字段“区中显示你选择的表,以及表中的字段。
    12) 拖放需要的字段进入报表的”详细资料“区。字段名将会自动出现在”页眉“区。如果你想修改头部文字,则可以右击”页眉“区中的文字,选择”编辑文本对象“选项并进行编辑。
    13) 保存,这样我们就有了一个水晶报表文件。
    创建 CrystalReportViewer 控件
    14) 回到前面的WebForm中,拖放一个Crystal Report Viewer控件到页面中去。
    15) 调出Crystal Report Viewer控件的属性窗口,选择“DataBindings"区点击[...]
    16) ”Crystal Report Viewer 数据绑定窗口”中,在右边的“可绑定属性”中选择”ReportSource“,并选择右下角的“自定义绑定表达式”中指定.rpt文件路径。    
    17) 此时你能够从Crystal Report Viewer 控件中看到使用一些虚拟数据组成的报表文件的预览。
      注意:在上面的例子中,CrystalReportViewer可以在设计时直接调用真实的数据,因为此时数据已经保存。在这种情况下,设计时当没有保存数据时,他是不能显示数据的。取而代这的是显示一些虚拟的数据,只有在执行时才会选取真实的数据。
    Code Behind 程序设计
    18) 在Page_Load方法中调用DataBind方法。
    执行你的程序 
    19) 创建并运行你的程序!  
    您现在就可以直接在Web页面中使用水晶报表内置的一些功能,如页面导航,缩放等。
      

  5.   

    我们采用下面的几步使用Push模式执行水晶报表:
    1. 设计一个 DataSet。
    2. 创建一个 .rpt文件同时将其指定给上一步建立的DataSet。
    3. 在aspx页面中拖放一个 CrystalReportViewer 控件同时将其与前面的rpt文件建立联系。
    4. 在代码中访问数据库并把数据存入 DataSet。
    5. 调用 CrystalReportViewer.DataBind 方法显示报表。设计一个DataSet
    1) 右击“解决方案浏览器”,选择“添加”--“添加新项”-->“数据集”  
    2) 从“服务器资源管理器”中的“SQL Server”中拖放“Stores”表(位于PUBS数据库中)。
    3) 此时在数据集中就会有一个Stores表的结构图。 
    - .xsd文件中仅仅包含一个结构图,但是不会有任何数据在里面。
    创建 .rpt 文件 :
    4) 使用上面的介绍过的方法创建此文件,唯一的不同就是使用数据集来代替前面的直接连接数据。
    5)建立.rpt文件之后,右击“详细资料”-->"添加/删除数据库“
    6) 在”数据库专家“窗口中,展开”项目数据“(代替以前的OleDb),展开“ADO.Net数据集”--"DataSet1“,选择”Stores“表。
    7) 将”Stores"表添加到“选定的表”中,点击“OK”
    8) 使用PULL模式下的方法,建立一个WebForm
    建立一个Crystal Report Viewer 控件
    9) 建立一个Crystal Report Viewer 控件,并设定其属性,此处与PULL模式下是一致的。
    Code Behind 代码:
    10) 在Page_Load方法中使用下面的子函数:
    VB.Net代码:
        Sub BindReport()
            Dim myConnection As New SqlClient.SqlConnection() 
            myConnection.ConnectionString= "server= (local)\NetSDK;database=pubs;Trusted_Connection=yes"
            Dim MyCommand As New SqlClient.SqlCommand()
            MyCommand.Connection = myConnection
            MyCommand.CommandText = "Select * from Stores"
            MyCommand.CommandType = CommandType.Text
            Dim MyDA As New SqlClient.SqlDataAdapter()
            MyDA.SelectCommand = MyCommand
            Dim myDS As New Dataset1()
           '这就是我们在设计模式上使用的DataSet     
            MyDA.Fill(myDS, "Stores")   
            '你不得不使用与你前面DataSet相同名字。
            Dim oRpt As New ReportDocument()
             ' 水晶报表绑定
            oRpt.SetDataSource(myDS)
             ' 设定水晶报表的ReportSource
            CrystalReportViewer1.ReportSource = oRpt
        End Sub
    C#代码:
    private void BindReport()
    {
        string strProvider = "Server=(local);DataBase=pubs;UID=sa;PWD=";
        ReportDocument oCR = new ReportDocument();
        Dataset1 ds = new Dataset1();
        SqlConnection MyConn = new SqlConnection(strProvider);
        MyConn.Open();
        string strSel = "Select * from Stores";
        SqlDataAdapter MyAdapter = new SqlDataAdapter(strSel,MyConn);
        MyAdapter.Fill(ds,"stores");
        oCR.SetDataSource(ds);
        this.CrystalReportViewer1.ReportSource = oCR;
    }
     
    注意:在上面的代码中,你得注意一下oRpt是"Strongly Typed"的报表文件。如果你需要使用"UnTyped"报表,你得使用ReportDocument对象,然后再调用报表文件。
     运行你的程序。 
    11) 运行你的程序
    备注:
    Dim oRpt As New ReportDocument()
    1、在菜单“项目”-〉“添加引用”:CrystalDecisions.CrystalReports.Engine
    2、在源代码里添加引用:using CrystalDecisions.CrystalReports.Engine;