簡體   English   中英

為什么水晶報表不出現不顯示?

[英]Why the crystal report not appear and no show?

我創建了一個水晶報表和網頁,我想在我的網頁中打開水晶報表取決於文本框的值,我需要在單擊按鈕時將值發送到水晶報表以顯示我的水晶報表。 我嘗試了以下代碼,並將數據源和連接設置為數據庫:

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");
            }

我終於找到了這個錯誤的解決方案為什么我在將 Crystal Reports 13 發布到 IIS 后得到空白頁?

  1. 下載並安裝適用於 Visual Studio 2017 的 Crystal Reports 13 運行時。(如果您之前已經執行過此操作並且您的應用程序正在本地運行,則可能希望跳過此步驟)。

  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;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM