【问题标题】:Why the crystal report not appear and no show?为什么水晶报表不出现不显示?
【发布时间】:2019-11-28 20:33:54
【问题描述】:

我创建了一个水晶报表和网页,我想在我的网页中打开水晶报表取决于文本框的值,我需要在单击按钮时将值发送到水晶报表以显示我的水晶报表。 我尝试了以下代码,并设置了数据源和数据库连接:

protected void Button1_Click(object sender, EventArgs e)
    {
        rdoc.Load(Server.MapPath("~/RPT/RPT_CASH_RESULT.rpt"));
        SqlCommand cmd = new SqlCommand("GET_ORDER_RESULT_PRINT_CASH", cn);
        cmd.CommandType = CommandType.StoredProcedure;
        cmd.Parameters.AddWithValue("@ORDER_ID", TXTORDERID.Text);
        cmd.Parameters.AddWithValue("@deptid", TXTDEPTID.Text);
        SqlDataAdapter sda = new SqlDataAdapter(cmd);
        DataTable dt = new DataTable();
        sda.Fill(dt);
        rdoc.SetDataSource(dt);
        CrystalReportViewer1.ReportSource = rdoc;
        CrystalReportViewer1.DataBind();

        rdoc.SetDatabaseLogon("DBA", "1234");

    }
}

当点击按钮时,它不显示报告,只有空白屏幕。怎么做才能显示报告的错误在哪里?

我尝试了另一种解决方案,但是当单击打印按钮时,它不显示水晶报告,只显示空白页我尝试了很多在本网站和其他网站上可用的解决方案???

protected void BtnCrystal_Click(object sender, EventArgs e)
        {
            if (Session["patientno"] != null && Convert.ToInt32(Session["patientno"]) > 0)
            {
ReportDocument reportDocument = new ReportDocument();

                ParameterFields paramFields = new ParameterFields();
                ParameterField paramField = new ParameterField();
                ParameterField paramField1 = new ParameterField();
                ParameterDiscreteValue paramDiscreteValue = new ParameterDiscreteValue();
                ParameterDiscreteValue paramDiscreteValue1 = new ParameterDiscreteValue();
                paramField.Name = "@ORDER_ID";
                paramDiscreteValue.Value =Convert.ToInt32(TXTORDERID.Text);
                paramField.CurrentValues.Add(paramDiscreteValue);
                paramFields.Add(paramField);



                paramField1.Name = "@deptid";
                paramDiscreteValue1.Value =Convert.ToInt32(TXTDEPTID.Text);
                paramField1.CurrentValues.Add(paramDiscreteValue1);
                paramFields.Add(paramField1);

                CrystalReportViewer1.ParameterFieldInfo = paramFields;
                reportDocument.Load(Server.MapPath("~/RPT/RPT_CASH_RESULT.rpt"));
                CrystalReportViewer1.ReportSource = reportDocument;
reportDocument.SetDatabaseLogon("DB", "1111","test","DB");
            }

【问题讨论】:

    标签: c# asp.net crystal-reports


    【解决方案1】:

    我终于找到了这个错误的解决方案 为什么将 Crystal Reports 13 发布到 IIS 后出现空白页?

    1. 下载并安装 Crystal Reports 13 for Visual Studio 2017 的运行时。(如果您之前已经执行过此步骤并且您的应用程序在本地运行,则可能需要跳过此步骤)。

    2. 安装运行时后。 Crystal Reports 将在本地计算机的位置安装所需的支持文件: C:\inetpub\wwwroot\aspnet_client\system_web\4_0_30319\crystalreportviewers13

    3. 将整个 Crystal Report Support 文件夹 C:\inetpub\wwwroot\aspnet_client\system_web\4_0_30319\crystalreportviewers13 复制到您网站的 SITE_ROOT\aspnet_client\system_web\4_0_30319 文件夹中。

    4) 如果您的网站根目录中没有 \aspnet_client\system_web\4_0_30319 文件夹。请手动创建它们,然后将 crystalreportviewers13 复制到其中。

    注意:版本号 '4_0_30319' 不固定,可能会因为 asp.net 版本而改变。如果 4_0_30319 不起作用,您可以尝试将此文件夹名称更改为 4_6_1069。

    我使用以下解决方案从水晶报表中传递参数,使用带有参数的存储过程到网站并从 sqlserver 数据库中读取:

    ReportDocument reportDocument = new ReportDocument();
                    ParameterFields paramFields = new ParameterFields();
                    ParameterField paramField = new ParameterField();
                    ParameterDiscreteValue paramDiscreteValue = new ParameterDiscreteValue();
                    ParameterDiscreteValue paramDiscreteValue1 = new ParameterDiscreteValue();
                    ParameterField parameterField1 = new ParameterField();
                    ParameterDiscreteValue parameterDiscreteValue1 = new ParameterDiscreteValue();
                    ParameterFields parameterFields = new ParameterFields();
       parameterField1.Name = "@ORDER_ID";
       parameterDiscreteValue1.Value = (object)this.TXTORDERID.Text.ToString();
                                parameterField1.CurrentValues.Add((ParameterValue)parameterDiscreteValue1);
                                parameterFields.Add(parameterField1);
    
                                ParameterField parameterField2 = new ParameterField();
                                ParameterDiscreteValue parameterDiscreteValue2 = new ParameterDiscreteValue();
                                parameterField2.Name = "@deptid";
                                parameterDiscreteValue2.Value = (object)this.TXTDEPTID.Text.ToString();
                                parameterField2.CurrentValues.Add((ParameterValue)parameterDiscreteValue2);
                                parameterFields.Add(parameterField2);
                                this.CrystalReportViewer1.ParameterFieldInfo = parameterFields;
                                this.CrystalReportViewer1.ReuseParameterValuesOnRefresh = true;
                                this.CrystalReportViewer1.ToolPanelView = ToolPanelViewType.None;
                                reportDocument.Load(this.Server.MapPath("~/RPT/RPT_CASH_RESULT.rpt"));
                                this.CrystalReportViewer1.ReportSource = (object)reportDocument;
                                reportDocument.SetDatabaseLogon("DB", "111");
    
                                ConnectionInfo connectionInfo = new ConnectionInfo();
                                connectionInfo.ServerName = "server";
                                connectionInfo.DatabaseName = "DBname";
                                connectionInfo.Password = "dbpass";
                                connectionInfo.UserID = "DBuser";
                                connectionInfo.Type = ConnectionInfoType.SQL;
                                connectionInfo.IntegratedSecurity = false;
                                for (int index = 0; index < this.CrystalReportViewer1.LogOnInfo.Count; ++index)
                                    this.CrystalReportViewer1.LogOnInfo[index].ConnectionInfo = connectionInfo;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-15
      • 2023-03-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多