Virgo_123 Ответов: 0

Crystal report viewer навигация по страницам и следующая страница не работают


using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using CrystalDecisions.CrystalReports.Engine;
using CrystalDecisions.Shared;
using System.Data;
using System.Data.SqlClient;
using System.Configuration;
using System.Web.Security;
using System.Web.Configuration;

namespace testpro
{
public partial class Report2 : System.Web.UI.Page
{
        private ReportDocument report = new ReportDocument();
        SqlConnection cn = new SqlConnection(@"Password=*;Persist Security Info=True;User ID=sa;Initial Catalog=Production;Data Source=Server");
        SqlDataAdapter da;
        ProductionDataSet ds = new ProductionDataSet();
        ReportDocument cryRpt = new ReportDocument();

        protected void Page_Init(object sender, EventArgs e)
        {
        }

        protected void Page_Load(object sender, EventArgs e)
        {
            if (Session["Username"] != null)
            {
                lblWelcome.Text = "Welcome" + "  " + Session["Username"].ToString();
            }

            if ((ViewState["ParametersShown"] != null) &&
                (ViewState["ParametersShown"].ToString() == "True"))
            {
                ShowReport();
            }
        }

        private void SetTableLocation(Tables tables)
        {
            ConnectionInfo connectionInfo = new ConnectionInfo();
            string server = WebConfigurationManager.AppSettings["ReportServer"];
            string user = WebConfigurationManager.AppSettings["ReportUserID"];
            string password = WebConfigurationManager.AppSettings["ReportUserPwd"];
            string database = WebConfigurationManager.AppSettings["ReportDatabase"];
            connectionInfo.ServerName = server;
            connectionInfo.DatabaseName = database;
            connectionInfo.UserID = user;
            connectionInfo.Password = password;

            foreach (CrystalDecisions.CrystalReports.Engine.Table table in tables)
            {
                TableLogOnInfo tableLogOnInfo = table.LogOnInfo;
                tableLogOnInfo.ConnectionInfo = connectionInfo;
                table.ApplyLogOnInfo(tableLogOnInfo);
            }
        }

        protected void btnshow_Click(object sender, EventArgs e)
        {
            try
            {
                ShowReport();
                ViewState["ParametersShown"] = "True";
            }
            catch (Exception ex)
            {
            }
        }

        private void Page_Unload(object sender, System.EventArgs e)
        {
            if (report != null)
            {
                report.Close();
                report.Dispose();
                CrystalReportViewer1.ReportSource = null;
                CrystalReportViewer1.Dispose();
                CrystalReportViewer1 = null;
            }
            GC.Collect();
            GC.WaitForPendingFinalizers();
            GC.Collect();
        }

        public void ShowReport()
        {
            //DateTime SDate = Convert.ToDateTime(TextBox1.Text);
            //DateTime EDate = Convert.ToDateTime(TextBox2.Text);
            //string ssDate = SDate.ToShortDateString();
            //string eeDate = EDate.ToShortDateString();
            string ssDate = TextBox1.Text;
            string eeDate = TextBox2.Text;

            string strLin;
            strLin = "";
            if (chkLine1.Checked == true)
            {
                strLin = strLin + "1";
            }
            if (chkLine2.Checked == true)
            {
                strLin = strLin + ",2";
            }
            if (chkLine3.Checked == true)
            {
                strLin = strLin + ",3";
            }
            if (chkLine4.Checked == true)
            {
                strLin = strLin + ",4";
            }
            if (chkLine5.Checked == true)
            {
                strLin = strLin + ",5";
            }
            if (chkLine6.Checked == true)
            {
                strLin = strLin + ",6";
            }
            string strshift;
            strshift = "'Z'";
            if (chkshift1.Checked == true)
            {
                strshift = strshift + ",'A'";
            }
            if (chkshift2.Checked == true)
            {
                strshift = strshift + ",'B'";
            }

            try
            {
                CrystalReportViewer1.Visible = true;
                CrystalReportViewer1.DisplayGroupTree = false;

                report.Load(Server.MapPath(@"~\CrystalReport6.rpt"));
                // report.SetDatabaseLogon("sa", "", "Server", "Production");
                string strSelection = "1=1 ";

                if (TextBox1.Text != null && TextBox1.Text != "" && TextBox2.Text != null && TextBox2.Text != "")
                {
                    report.SetParameterValue("startDate", TextBox1.Text);
                    report.SetParameterValue("endDate", TextBox2.Text);
                    //strSelection = strSelection + " AND {Command.Date}>='" + ssDate + "' AND {Command.Date}<='" + eeDate + "'";
                }
                if (strLin != "" && strLin != null)
                {
                    report.SetParameterValue("LineID", strLin);
                    // strSelection = strSelection + " AND {Command.LineID} in ("+strLin+")";
                }
                if (chkshift1.Checked == true)
                {
                    report.SetParameterValue("ShiftIDa", "A");
                }
                else { report.SetParameterValue("ShiftIDa", ""); }
                if (chkshift2.Checked == true)
                {
                    report.SetParameterValue("ShiftIDb", "B");
                }
                else
                {
                    report.SetParameterValue("ShiftIDb", "");
                }

                if (TextBox3.Text != "" && TextBox3.Text!= null)
                {
                    report.SetParameterValue("Sapno1", TextBox3.Text);
                   // strSelection = strSelection + " AND {Command.SapNo} in" + (TextBox3.Text) + " ";
                }

                report.RecordSelectionFormula = strSelection;
                SetTableLocation(report.Database.Tables);
                CrystalReportViewer1.ReportSource = report;
            }
            catch (Exception)
            {
                throw;
            }
        }

        protected void Btnlogout_Click(object sender, EventArgs e)
        {
            Session.Abandon();
            FormsAuthentication.SignOut();
            Response.Redirect("Login.aspx");
        }
    }
}


Что я уже пробовал:

Мой отчет состоит из 3-4 страниц. Он показывает страницы 1 и 2 в окне просмотра, но после перехода на страницу 3 он перестает двигаться. Если вы меняете страницу во время поиска, например 3 из 3+, она возвращается на страницу 1. После перехода на страницу 2 он перестает переходить на страницу 1.

Вставка кода Page_Load в Page_Init также не работает нормально для меня. Как я могу решить эту проблему?

Suvendu Shekhar Giri

есть успехи с отладкой?

0 Ответов