从后面的代码将参数传递给Crystal报表

时间:2013-11-20 11:40:59

标签: c# asp.net visual-studio-2012 crystal-reports

这是我第一次尝试使用Crystal报告,所以请耐心等待。

我有一个ASP页面,我有CrystalReportViewer。并为它创建了一个报告,但我必须将值传递给报告字段而不连接到数据库(请不要问为什么)。以下是我的ASP代码

ASP代码

....
    <%@ Register assembly="CrystalDecisions.Web, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692fbea5521e1304" namespace="CrystalDecisions.Web" tagprefix="CR" %>
    ....
     <asp:Button ID="btnPreview" runat="server" OnClick="btnPreview_Click"
                        Text="Preview" />
        ......          
    <CR:CrystalReportViewer AutoDataBind="True" Height="1202px" ID="CrystalReportViewer1" runat="server" ToolPanelWidth="200px" Width="1104px" HasCrystalLogo="True" />
......

C#代码

using CrystalDecisions.CrystalReports.Engine;
using CrystalDecisions.Shared;
.....
  protected void btnPreview_Click(object sender, EventArgs e)
        {
            var crReport = new ReportDocument();
            crReport.Load(Server.MapPath("SadadReceiptCR.rpt"));

            //A Parameter Field created as static namely "red_number" in the report
            crReport.SetParameterValue("red_number", "Test Value");
            CrystalReportViewer1.ReportSource = crReport;
            CrystalReportViewer1.ShowFirstPage();
        }

问题是CrystalReportViewer点击事件和page_load被调用时,btnPreview没有出现。

我错过了什么(我想我是)

修改:

好的,我做了以下事情:

1-从Windows卸载CR

2-下载.exe并'以管理员身份运行'

3-创建一个新的ASP项目并使用'CrystalReportViewer'

但现在它给了我这个错误:请任何想法。
enter image description here

1 个答案:

答案 0 :(得分:0)

为了让运行时在您的开发机器上正确集成,您必须使用exe安装程序。卸载当前版本的CR运行时,并使用exe安装程序重新安装。