/// <summary>
        /// 分析新的数据
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        void Button1_Click(object sender, EventArgs e)
        {
            //查询结果
            Line             newLine = null;
            List <TrainLine> line1   = null;
            List <TrainLine> line2   = null;
            List <TrainLine> line3   = null;
            List <TrainLine> line4   = null;

            String A0 = this.AStation.Text.Trim();
            String B0 = this.BStation.Text.Trim();

            if (String.IsNullOrEmpty(A0) == false &&
                String.IsNullOrEmpty(B0) == false)
            {
                bool flag = true;
                if (Line.isExistsStation(A0) == false)
                {
                    WebFrame.Util.JAjax.Alert("错误:起始站【" + A0 + "】不存在!");
                    flag = false;
                }

                if (flag)
                {
                    if (Line.isExistsStation(B0) == false)
                    {
                        WebFrame.Util.JAjax.Alert("错误:终点站【" + B0 + "】不存在!");
                        flag = false;
                    }
                }

                if (flag)
                {
                    //将用户当前的选择条件保存到Cookie
                    DataRow dr1 = JControl.GetControlValues(con1);
                    WebFrame.Util.JCookie.SetCookieValues("userFenXiData", dr1, -1);

                    //寻找四类典型的线路
                    String[] middle     = null;
                    String   middleTemp = String.Empty;
                    if (this.middleStation.Text.Trim() != String.Empty)
                    {
                        middleTemp = this.middleStation.Text.Trim().Replace(",", ",");
                        middle     = middleTemp.Split(',');
                    }
                    int shendu = int.Parse(this.sd.SelectedValue);

                    if (ViewState["A0"] != null)
                    {
                        //1--从视图状态中恢复数据
                        if (ViewState["A0"].ToString() == A0 &&
                            ViewState["B0"].ToString() == B0 &&
                            ViewState["shendu"].ToString() == shendu.ToString() &&
                            ViewState["SelTrainID"].ToString() == this.selTrain.Text)
                        {
                            if (ViewState["middle"].ToString() == middleTemp)
                            {
                                line1 = ViewState["Line1"] as List <TrainLine>;
                                line2 = ViewState["Line2"] as List <TrainLine>;
                                line3 = ViewState["Line3"] as List <TrainLine>;
                                line4 = ViewState["Line4"] as List <TrainLine>;
                            }
                        }
                    }

                    //2--从数据库中恢复数据
                    if (line1 == null && this.CheckBox1.Checked == false)
                    {
                        // SearchObjectBU.RestoreSearchResultFromDb(A0, B0, shendu,String.Empty, out newLine);
                    }

                    //4--执行搜索算法得到数据
                    if ((line1 == null && newLine == null) || this.CheckBox1.Checked)
                    {
                        newLine = new Line(A0, B0, shendu, this.selTrain.Text.Trim(), 300, false);
                    }

                    if ((line1 == null && newLine != null) || this.CheckBox1.Checked)
                    {
                        /*------------此处需要修改----------------*/
                        line1 = newLine.GetLayerLine(middle, ETrainType.动车CRH380A, false, 1, false);
                        line2 = newLine.GetLayerLine(middle, ETrainType.动车CRH2A, false, 1, false);
                        line3 = newLine.GetLayerLine(middle, ETrainType.空调车25T, false, 3, false);
                        line4 = newLine.GetLayerLine(middle, ETrainType.绿皮车25B, true, 3, false);
                    }

                    //将数据保存到视图状态
                    ViewState["A0"]         = A0;
                    ViewState["B0"]         = B0;
                    ViewState["shendu"]     = shendu;
                    ViewState["SelTrainID"] = this.selTrain.Text;
                    ViewState["middle"]     = middleTemp;

                    //ViewState["MyLine"] = newLine;
                    ViewState["Line1"] = line1;    //300公里动车的线路
                    ViewState["Line2"] = line2;    //200公里动车的线路
                    ViewState["Line3"] = line3;    //直达线路
                    ViewState["Line4"] = line4;    //普通车的线路

                    Dictionary <String, String> data1 = CommTrain.GetNewFenXiData(0);
                    this.Repeater2.DataSource = data1;
                    this.Repeater2.DataBind();
                    this.SearchInfo.Visible = true;
                    this.NewBindComplete();

                    //将查询结果保存到数据库中(只保存没有指定线路的站点)
                    if (String.IsNullOrEmpty(this.selTrain.Text.Trim()))
                    {
                        //  bool succ = SearchObjectBU.SaveSearchResultToDb(A0, B0, shendu,newLine, this.CheckBox1.Checked,String.Empty);
                    }
                    this.CheckBox1.Checked = false;
                }
            }
            else
            {
                WebFrame.Util.JAjax.Alert("错误:请输入车次的起点和终点");
            }
        }
        /// <summary>
        /// 原方法
        /// </summary>
        //private void CalShouruAndZhiChu()
        //{
        //    DataTable dt1 = new DataTable();
        //    dt1.Columns.Add("yz", typeof(int));
        //    dt1.Columns.Add("yw", typeof(int));
        //    dt1.Columns.Add("rw", typeof(int));
        //    dt1.Columns.Add("sr", typeof(double));
        //    dt1.Columns.Add("zc", typeof(double));
        //    dt1.Columns.Add("sz",typeof(double));


        //    CommTrain train1 = new CommTrain();
        //    TrainLine lineObj = ViewState["Line"] as TrainLine;
        //    int traintype1 = int.Parse(Request.QueryString["TrainType"]);
        //    train1.TrainType = (ECommTrainType)traintype1;
        //    train1.YunXingLiCheng = lineObj.TotalMiles;
        //    int dianche = int.Parse(Request.QueryString["hasDianChe"]);

        //    bool isYearFlag = true;
        //    if (String.IsNullOrEmpty(Request.QueryString["IsYear"]) == false)
        //    {
        //        if (Request.QueryString["IsYear"] == "0") isYearFlag = false;
        //    }
        //    train1.IsYearFlag = isYearFlag;

        //    for (int i = 1; i <= 5; i++)
        //    {
        //        DataRow dr1 = dt1.NewRow();
        //        TextBox t1 = this.yz1.Parent.FindControl("yz" + i) as TextBox;
        //        TextBox t2 = this.yz1.Parent.FindControl("yw" + i) as TextBox;
        //        TextBox t3 = this.yz1.Parent.FindControl("rw" + i) as TextBox;

        //        //设置车厢的编组
        //        train1.YinZuo = int.Parse(t1.Text);

        //        train1.OpenYinWo = int.Parse(t2.Text);
        //        train1.RuanWo = int.Parse(t3.Text);
        //        train1.CheDiShu = int.Parse(Request.QueryString["cds"]);

        //        //将数据保存到Table
        //        dr1["yz"] = int.Parse(t1.Text);
        //        dr1["yw"] = int.Parse(t2.Text);
        //        dr1["rw"] = int.Parse(t3.Text);

        //        if (dianche > 0)
        //        {
        //            train1.FaDianChe = 1;
        //            train1.GongDianType = EGongDianType.非直供电;
        //        }
        //        train1.Line = lineObj;

        //        //计算费用
        //        Label lab1 = this.yz1.Parent.FindControl("sr" + i) as Label;
        //        double s = train1.GetShouRu() / 10000;
        //        if (isYearFlag)
        //        {
        //            lab1.Text = String.Format("{0:n0}", s);
        //        }
        //        else
        //        {
        //            lab1.Text = String.Format("{0:n2}", s);
        //        }
        //        dr1["sr"] = double.Parse(lab1.Text);

        //        String findcond = "";
        //        List<ZhiChuData> zlist = train1.GetZhiChu(findcond);
        //        double z = 0;
        //        foreach (ZhiChuData data1 in zlist)
        //        {
        //            z = z + data1.ZhiChu;
        //        }
        //        //z = z / 10000;

        //        Label lab2 = this.yw1.Parent.FindControl("zc" + i) as Label;
        //        if (isYearFlag)
        //        {
        //            lab2.Text = String.Format("{0:n0}", z);
        //        }
        //        else
        //        {
        //            lab2.Text = String.Format("{0:n2}", z);
        //        }
        //        dr1["zc"] = double.Parse(lab2.Text);


        //        Label lab3 = this.yw1.Parent.FindControl("sz" + i) as Label;
        //        if (isYearFlag)
        //        {
        //            lab3.Text = String.Format("{0:n0}", s * SRate - z);
        //        }
        //        else
        //        {
        //            lab3.Text = String.Format("{0:n2}", s * SRate - z);
        //        }
        //        if (s - z < 0)
        //        { lab3.ForeColor = System.Drawing.Color.Red; }
        //        else
        //        {
        //            lab3.ForeColor = System.Drawing.Color.Empty;
        //        }
        //        dr1["sz"] = double.Parse(lab3.Text);

        //        dt1.Rows.Add(dr1);
        //    }

        //    ViewState["BianZhuData"] = dt1;
        //}
        /// <summary>
        /// 2014 0417
        /// </summary>
        private void CalShouruAndZhiChu()
        {
            DataTable dt1 = new DataTable();

            dt1.Columns.Add("yz", typeof(int));
            dt1.Columns.Add("yw", typeof(int));
            dt1.Columns.Add("rw", typeof(int));
            dt1.Columns.Add("sr", typeof(double));
            dt1.Columns.Add("zc", typeof(double));
            dt1.Columns.Add("sz", typeof(double));


            CommTrain train1     = new CommTrain();
            TrainLine lineObj    = ViewState["Line"] as TrainLine;
            int       traintype1 = int.Parse(Request.QueryString["TrainType"]);

            train1.TrainType      = (ECommTrainType)traintype1;
            train1.YunXingLiCheng = lineObj.TotalMiles;
            int dianche = int.Parse(Request.QueryString["hasDianChe"]);

            bool isYearFlag = true;

            if (String.IsNullOrEmpty(Request.QueryString["IsYear"]) == false)
            {
                if (Request.QueryString["IsYear"] == "0")
                {
                    isYearFlag = false;
                }
            }
            train1.IsYearFlag = isYearFlag;

            for (int i = 1; i <= 5; i++)
            {
                DataRow dr1 = dt1.NewRow();
                TextBox t1  = this.yz1.Parent.FindControl("yz" + i) as TextBox;
                TextBox t2  = this.yz1.Parent.FindControl("yw" + i) as TextBox;
                TextBox t3  = this.yz1.Parent.FindControl("rw" + i) as TextBox;

                //设置车厢的编组
                train1.YinZuo = int.Parse(t1.Text);

                train1.OpenYinWo = int.Parse(t2.Text);
                train1.RuanWo    = int.Parse(t3.Text);
                train1.CheDiShu  = int.Parse(Request.QueryString["cds"]);

                //将数据保存到Table
                dr1["yz"] = int.Parse(t1.Text);
                dr1["yw"] = int.Parse(t2.Text);
                dr1["rw"] = int.Parse(t3.Text);

                if (dianche > 0)
                {
                    train1.FaDianChe    = 1;
                    train1.GongDianType = EGongDianType.非直供电;
                }
                train1.Line = lineObj;

                //计算费用
                Label  lab1 = this.yz1.Parent.FindControl("sr" + i) as Label;
                double s    = train1.GetShouRu() / 10000;
                if (isYearFlag)
                {
                    lab1.Text = String.Format("{0:n0}", s);
                }
                else
                {
                    lab1.Text = String.Format("{0:n2}", s);
                }
                dr1["sr"] = double.Parse(lab1.Text);

                String            findcond = "";
                List <ZhiChuData> zlist    = train1.GetZhiChu(findcond);
                double            z        = 0;
                foreach (ZhiChuData data1 in zlist)
                {
                    z = z + data1.ZhiChu;
                }
                //z = z / 10000;

                Label lab2 = this.yw1.Parent.FindControl("zc" + i) as Label;
                if (isYearFlag)
                {
                    lab2.Text = String.Format("{0:n0}", z);
                }
                else
                {
                    lab2.Text = String.Format("{0:n2}", z);
                }
                dr1["zc"] = double.Parse(lab2.Text);


                Label lab3 = this.yw1.Parent.FindControl("sz" + i) as Label;
                if (isYearFlag)
                {
                    lab3.Text = String.Format("{0:n0}", s * SRate - z);
                }
                else
                {
                    lab3.Text = String.Format("{0:n2}", s * SRate - z);
                }
                if (s - z < 0)
                {
                    lab3.ForeColor = System.Drawing.Color.Red;
                }
                else
                {
                    lab3.ForeColor = System.Drawing.Color.Empty;
                }
                dr1["sz"] = double.Parse(lab3.Text);

                dt1.Rows.Add(dr1);
            }

            ViewState["BianZhuData"] = dt1;
        }
        //// 计算收入和支出  原代码
        //private void NewCalShourAndZhiChu(TrainLine line0, RepeaterItem item)
        //{
        //    bool hasDianChe = false;                 //表示是否有发电车
        //    bool isYearFlag = false;                //表示是否是年分析的模式
        //    if (this.isYearPage.Value == "1")
        //    {
        //        isYearFlag = true;
        //    }

        //    Label lab1 = item.FindControl("traintype") as Label;
        //    ListControl cds = item.FindControl("cds") as ListControl;

        //    int traintype1 = int.Parse(lab1.Text);
        //    if (traintype1 == 21)
        //    {
        //        traintype1 = 2;
        //        hasDianChe = true;
        //    }

        //    //25B和25K有电车(金寿吉新增)
        //    if (traintype1 == 0 || traintype1 == 1)
        //    {
        //        hasDianChe = true;
        //    }

        //    ETrainType train1 = (ETrainType)(traintype1);
        //    double shouru1 = 0.0;
        //    int yz1 = 0, yw1 = 0, rw1 = 0,ca1=0,sy1=0;
        //    int totalPeople = 0;

        //    List<ZhiChuData>[] arrZc = new List<ZhiChuData>[4];
        //    arrZc[0] = new List<ZhiChuData>();
        //    arrZc[1] = new List<ZhiChuData>();
        //    arrZc[2] = new List<ZhiChuData>();
        //    arrZc[3] = new List<ZhiChuData>();
        //    double JnFee = 0;


        //    int totalBianZhu = 18;
        //    if (bz.SelectedIndex == 0)   //表示是自动编组方式
        //    {
        //        totalBianZhu = int.Parse(this.bzs0.SelectedValue);
        //    }


        //    //编组的选项目
        //    if (this.bz.SelectedIndex == 1)
        //    {
        //        yz1 = int.Parse(yz.Text);
        //        yw1 = int.Parse(yw.Text);
        //        rw1 = int.Parse(rw.Text);
        //        ca1 = int.Parse(ca.Text);
        //        sy1 = int.Parse(sy.Text);
        //    }

        //    Line.GetLineShouruAndZhiChu(train1, line0,
        //        cds.SelectedValue,totalBianZhu,
        //        out shouru1,ref yz1,ref yw1,ref rw1,ref ca1,ref sy1,
        //        out totalPeople,
        //        out arrZc[0],out arrZc[1],out arrZc[2],out arrZc[3],
        //        out JnFee,
        //        hasDianChe,isYearFlag,cb.SelectedIndex,"");

        //    //列车的收入
        //    shouru1 = shouru1 / 10000;
        //    Label labShouRu = item.FindControl("shouru") as Label;
        //    if (isYearFlag == false)
        //    {
        //        labShouRu.Text = String.Format("{0:n2}", shouru1);
        //        //labShouRu.Text = shouru1 + "";
        //    }
        //    else
        //    {
        //        labShouRu.Text = String.Format("{0:n0}", shouru1);
        //    }

        //    //计算列车的运输总人数
        //    Label labTotalPeople = item.FindControl("totalpeople") as Label;
        //    labTotalPeople.Text = String.Format("{0}", totalPeople);

        //    //计算列车的总支出和合适的车厢编组
        //    for (int i = 1; i <= 4; i++)
        //    {
        //        Label labZhiChu = item.FindControl("zhichu"+i) as Label;
        //        double sum1 = 0;
        //        String zc1 = String.Empty;
        //        foreach (ZhiChuData d1 in arrZc[i-1])
        //        {
        //            double t1 = d1.ZhiChu;

        //            sum1 = sum1 + t1;
        //            if (zc1 == String.Empty)
        //            {
        //                zc1 = d1.ZhiChu.ToString();
        //            }
        //            else
        //            {
        //                zc1 = zc1 + "," + d1.ZhiChu.ToString();
        //            }
        //        }
        //        zc1 = zc1 + "," + JnFee;

        //         if (isYearFlag == false)
        //        {
        //            labZhiChu.Text = String.Format("{0:n2}", sum1);
        //        }
        //        else
        //        {
        //            labZhiChu.Text = String.Format("{0:n0}", sum1);
        //        }
        //        //labZhiChu.OnClientClick = "javascript:ShowZhiChu('" + zc1 + "');return false;";

        //        //设置收支盈亏
        //        Label labsz = item.FindControl("sz" + i) as Label;
        //        if (isYearFlag == false)
        //        {
        //            labsz.Text = String.Format("{0:n2}", shouru1 * SRate - sum1);
        //        }
        //        else
        //        {
        //            labsz.Text = String.Format("{0:n0}", shouru1 * SRate - sum1);
        //        }

        //        //计算上座率
        //        Label labSzr = item.FindControl("szr"+i) as Label;
        //        if (isYearFlag == false)
        //        {
        //            labSzr.Text = String.Format("{0:n2}%", 100 * sum1 / (shouru1 * SRate));
        //        }
        //        else
        //        {
        //            labSzr.Text = String.Format("{0:n0}%", 100 * sum1 / (shouru1 * SRate));
        //        }
        //    }

        //    //显示列车的合适编组
        //    HyperLink link2 = item.FindControl("link2") as HyperLink;
        //    HyperLink link3 = item.FindControl("link3") as HyperLink;
        //    if (link2 != null)
        //    {
        //        if (int.Parse(lab1.Text) > 3 && lab1.Text != "21")
        //        {
        //            link2.Visible = false;
        //            link3.NavigateUrl = "SeeWordFile2.aspx?IsYear="+this.isYearPage.Value+"&TrainType=" + lab1.Text + "&Line=" + Server.UrlEncode(line0.ToString())
        //                             + "&cds=" + cds.SelectedValue + "&hasDianChe=0&BianZhu=0,0,0,0,0";
        //        }
        //        else
        //        {
        //            if (lab1.Text != "21")
        //            {
        //                if (lab1.Text == "0" || lab1.Text == "1")  //表示 25B和25K
        //                {
        //                    link2.NavigateUrl = "BianZhuFenXi.aspx?IsYear=" + this.isYearPage.Value + "&TrainType=" + lab1.Text + "&Line=" + Server.UrlEncode(line0.ToString())
        //                                        + "&cds=" + cds.SelectedValue + "&hasDianChe=1&BianZhu=" + Server.UrlEncode(String.Format("{0},{1},{2},{3},{4}", yz1, yw1, rw1, ca1, sy1));
        //                }
        //                else
        //                {
        //                    link2.NavigateUrl = "BianZhuFenXi.aspx?IsYear=" + this.isYearPage.Value + "&TrainType=" + lab1.Text + "&Line=" + Server.UrlEncode(line0.ToString())
        //                                        + "&cds=" + cds.SelectedValue + "&hasDianChe=0&BianZhu=" + Server.UrlEncode(String.Format("{0},{1},{2},{3},{4}", yz1, yw1, rw1, ca1, sy1));
        //                }
        //            }
        //            else   //表示非直供电25G
        //            {
        //                link2.NavigateUrl = "BianZhuFenXi.aspx?IsYear="+this.isYearPage.Value+"&TrainType=2&Line=" + Server.UrlEncode(line0.ToString())
        //                                   + "&cds=" + cds.SelectedValue + "&hasDianChe=1&BianZhu=" + Server.UrlEncode(String.Format("{0},{1},{2},{3},{4}", yz1, yw1, rw1,ca1,sy1));
        //            }
        //            link2.ToolTip = String.Format("最优的编组配置为:硬座{0}/ 硬卧{1}/ 软卧{2}/ 餐车{3} /宿营车{4}", yz1, yw1, rw1,ca1,sy1);
        //            link3.NavigateUrl = link2.NavigateUrl.Replace("BianZhuFenXi.aspx", "SeeWordFile.aspx");

        //            if (this.bz.SelectedIndex == 1)
        //            {
        //                link2.NavigateUrl = "javascript:alert('提示:此功能不适合手动编组模式!');";
        //                link2.ToolTip = String.Format("手动编组:硬座{0}/ 硬卧{1}/ 软卧{2}/ 餐车{3}/宿营车{4}", yz1, yw1, rw1, ca1,sy1);
        //            }
        //        }
        //    }


        //    Label bianzhu1 = item.FindControl("bianzhu") as Label;
        //    if (bianzhu1 != null)
        //    {
        //        bianzhu1.Text = String.Format("{0}-{1}-{2}-{3}-{4}", yz1, yw1, rw1,ca1,sy1);
        //    }
        //}

        // 分析线路
        private void SearchLine()
        {
            //查询结果
            Line             newLine = null;
            List <TrainLine> line1   = null;
            List <TrainLine> line2   = null;
            List <TrainLine> line3   = null;
            List <TrainLine> line4   = null;

            String A0 = this.AStation.Text.Trim();
            String B0 = this.BStation.Text.Trim();

            if (String.IsNullOrEmpty(A0) == false &&
                String.IsNullOrEmpty(B0) == false)
            {
                bool flag = true;
                if (Line.isExistsStation(A0) == false)
                {
                    WebFrame.Util.JAjax.Alert("错误:起始站【" + A0 + "】不存在!");
                    flag = false;
                }

                if (flag)
                {
                    if (Line.isExistsStation(B0) == false)
                    {
                        WebFrame.Util.JAjax.Alert("错误:终点站【" + B0 + "】不存在!");
                        flag = false;
                    }
                }

                if (flag)
                {
                    //将用户当前的选择条件保存到Cookie
                    DataRow dr1 = JControl.GetControlValues(con1);
                    WebFrame.Util.JCookie.SetCookieValues("userFenXiData", dr1, -1);

                    //寻找四类典型的线路
                    String[] middle     = null;
                    String   middleTemp = String.Empty;
                    if (this.middleStation.Text.Trim() != String.Empty)
                    {
                        middleTemp = this.middleStation.Text.Trim().Replace(",", ",");
                        middle     = middleTemp.Split(',');
                    }

                    if (ViewState["A0"] != null)
                    {
                        //1--从视图状态中恢复数据
                        if (ViewState["A0"].ToString() == A0 &&
                            ViewState["B0"].ToString() == B0 &&
                            ViewState["middle"].ToString() == middleTemp &&
                            ViewState["fengduanCondition"].ToString() == this.mulLine.Text &&
                            ViewState["onlygg"].ToString() == this.onlygg.Checked.ToString())
                        {
                            line1 = ViewState["Line1"] as List <TrainLine>;
                            line2 = ViewState["Line2"] as List <TrainLine>;
                            line3 = ViewState["Line3"] as List <TrainLine>;
                            line4 = ViewState["Line4"] as List <TrainLine>;
                        }
                    }

                    //2--从数据库中恢复数据
                    if (line1 == null)
                    {
                        SearchObjectBU.RestoreSearchResultFromDb(A0, B0, this.mulLine.Text.Trim(), out newLine);
                        if (newLine == null)
                        {
                            if (this.mulLine.Text.Trim() == String.Empty)
                            {
                                newLine = Line.GetLine(A0, B0, 100, this.selTrain.Text.Trim(), this.onlygg.Checked);
                            }
                            else
                            {
                                newLine = Line.GetLineByFengDuanSearch(this.mulLine.Text.Trim(), this.onlygg.Checked);
                            }
                        }

                        if (newLine != null)
                        {
                            line1 = newLine.GetLayerLine(middle, ETrainType.动车CRH380A, false, 1, this.onlygg.Checked);
                            line2 = newLine.GetLayerLine(middle, ETrainType.动车CRH2A, false, 1, this.onlygg.Checked);
                            line3 = newLine.GetLayerLine(middle, ETrainType.空调车25T, false, 3, this.onlygg.Checked);
                            line4 = newLine.GetLayerLine(middle, ETrainType.绿皮车25B, true, 3, this.onlygg.Checked);

                            //重新调整算法
                            if (line1.Count == 0 || line2.Count == 0)
                            {
                                Line dcnewLine = null;
                                if (this.mulLine.Text.Trim() == String.Empty)
                                {
                                    dcnewLine = Line.GetLine(A0, B0, 100, this.selTrain.Text.Trim(), true);
                                }
                                else
                                {
                                    dcnewLine = Line.GetLineByFengDuanSearch(this.mulLine.Text.Trim(), true);
                                }

                                if (dcnewLine != null)
                                {
                                    line1 = dcnewLine.GetLayerLine(middle, ETrainType.动车CRH380A, false, 1, true);
                                }

                                if (line2.Count == 0 && newLine != null)
                                {
                                    line2 = dcnewLine.GetLayerLine(middle, ETrainType.动车CRH2A, false, 1, true);
                                }
                            }
                        }
                    }

                    //3--将数据保存到视图状态
                    ViewState["A0"]                = A0;
                    ViewState["B0"]                = B0;
                    ViewState["middle"]            = middleTemp;
                    ViewState["fengduanCondition"] = this.mulLine.Text;
                    ViewState["onlygg"]            = this.onlygg.Checked.ToString();

                    //ViewState["MyLine"] = newLine;
                    ViewState["Line1"] = line1;    //300公里动车的线路
                    ViewState["Line2"] = line2;    //200公里动车的线路
                    ViewState["Line3"] = line3;    //直达线路
                    ViewState["Line4"] = line4;    //普通车的线路

                    //4--将查询对象保存到数据库
                    SearchObjectBU.SaveSearchResultToDb(A0, B0, newLine, this.mulLine.Text.Trim());


                    //=========设置车型的选择========================

                    /*
                     * data1.Add("3", "直达25T");
                     * data1.Add("2", "空调25G(直供电)");
                     * data1.Add("21", "空调25G(非直供电)");
                     * data1.Add("1", "空调25K");
                     * data1.Add("0", "绿皮车25B");
                     */
                    int index1 = bz.SelectedIndex;
                    if (index1 == 3)
                    {
                        index1 = 2;
                    }
                    Dictionary <String, String> data1 = CommTrain.GetNewFenXiData(index1);
                    this.Repeater2.DataSource = data1;
                    this.Repeater2.DataBind();
                    this.SearchInfo.Visible = true;
                    this.NewBindComplete();

                    String fullChengBen = String.Empty;
                    if (this.cb.SelectedIndex == 1)
                    {
                        fullChengBen = "全成本";
                    }

                    if (this.isYearPage.Value == "0")
                    {
                        this.t1.Text = fullChengBen + "趟";
                        this.t2.Text = fullChengBen + "趟";
                        this.t3.Text = fullChengBen + "趟";
                        this.t4.Text = fullChengBen + "趟";
                        this.t5.Text = fullChengBen + "趟";
                    }
                    else
                    {
                        this.t1.Text = fullChengBen + "年";
                        this.t2.Text = fullChengBen + "年";
                        this.t3.Text = fullChengBen + "年";
                        this.t4.Text = fullChengBen + "年";
                        this.t5.Text = fullChengBen + "年";
                    }
                }
            }
            else
            {
                WebFrame.Util.JAjax.Alert("错误:请输入车次的起点和终点");
            }
        }
        // 绑定Repeater的数据
        private void NewBindComplete()
        {
            foreach (RepeaterItem item in this.Repeater2.Items)
            {
                Label lab1 = item.FindControl("traintype") as Label;
                Label lab2 = item.FindControl("traintypeText") as Label;

                if (lab1 != null)
                {
                    //设置不同的车底数
                    ListControl cds = item.FindControl("cds") as ListControl;
                    if (cds != null)
                    {
                        cds.Items.Clear();
                        if (lab1.Text == "0" || lab1.Text == "1" ||
                            lab1.Text == "2" || lab1.Text == "3" ||
                            lab1.Text == "21")
                        {
                            for (int i = 1; i <= 6; i++)
                            {
                                ListItem list1 = new ListItem(i + "", i + "");
                                cds.Items.Add(list1);
                            }
                            cds.SelectedValue = "2";
                        }
                        else
                        {
                            cds.Items.Clear();

                            for (double i = 0.3; i <= 2.1; i = i + 0.1)
                            {
                                ListItem list1 = new ListItem(i + "", i + "");
                                cds.Items.Add(list1);
                            }

                            /*
                             * for (int i = 1; i <= 2; i++)
                             * {
                             *  ListItem list1 = new ListItem(i + "", i + "");
                             *  cds.Items.Add(list1);
                             * }*/
                            cds.SelectedValue = "1.0";
                        }
                    }

                    //设置其他的控件
                    ListControl rad1 = item.FindControl("selLine") as ListControl;
                    if (rad1 != null)
                    {
                        List <TrainLine> list1 = null;
                        ETrainType       type1 = ETrainType.绿皮车25B;
                        if (lab1.Text == "21")
                        {
                            type1 = ETrainType.空调车25G;
                        }
                        else
                        {
                            type1 = (ETrainType)(int.Parse(lab1.Text));
                        }

                        //===================================================================

                        /*
                         * //重新调整车型的条件
                         * if (lab1.Text == "0" || lab1.Text == "1"
                         || lab1.Text == "21")                               //普通车
                         ||{
                         || list1 = ViewState["Line4"] as List<TrainLine>;
                         ||}
                         ||else if (lab1.Text == "3" || lab1.Text == "2")           //直达车
                         ||{
                         || list1 = ViewState["Line3"] as List<TrainLine>;
                         ||}
                         ||else if (lab1.Text == "4" || lab1.Text == "5" || lab1.Text == "9" || lab1.Text == "10")           //200公里高速
                         ||{
                         || list1 = ViewState["Line2"] as List<TrainLine>;
                         ||}
                         ||else if (lab1.Text == "6" || lab1.Text == "7" || lab1.Text == "8"
                         || lab1.Text =="11" || lab1.Text =="12")  //300公里高速
                         ||{
                         || list1 = ViewState["Line1"] as List<TrainLine>;
                         ||}*/

                        if (lab1.Text == "0" || lab1.Text == "21")                               //普通车
                        {
                            list1 = ViewState["Line4"] as List <TrainLine>;
                        }
                        else if (lab1.Text == "3" || lab1.Text == "2" || lab1.Text == "1")           //直达车
                        {
                            list1 = ViewState["Line3"] as List <TrainLine>;
                        }
                        else if (lab1.Text == "4" || lab1.Text == "5" || lab1.Text == "9" || lab1.Text == "10")           //200公里高速
                        {
                            list1 = ViewState["Line2"] as List <TrainLine>;
                        }
                        else if (lab1.Text == "6" || lab1.Text == "7" || lab1.Text == "8" ||
                                 lab1.Text == "11" || lab1.Text == "12") //300公里高速
                        {
                            list1 = ViewState["Line1"] as List <TrainLine>;
                        }

                        //调整车底数的默认值
                        if (list1 != null && list1.Count > 0)
                        {
                            TrainLine line0 = list1[0];
                            int       miles = line0.TotalMiles;
                            // String defaultcds = Util.GetDefaultCds(miles, type1)+"";
                            String defaultcds = Util.GetDefaultCds1(miles, type1) + "";

                            if (cds.Items.FindByValue(defaultcds) != null)
                            {
                                cds.SelectedValue = defaultcds;

                                //设置其他的车底数不能用(仅适用于客车)
                                if (lab1.Text == "0" || lab1.Text == "1" ||
                                    lab1.Text == "2" || lab1.Text == "3" ||
                                    lab1.Text == "21")
                                {
                                    for (int i = 0; i < cds.Items.Count; i++)
                                    {
                                        double d1 = double.Parse(cds.Items[i].Value);
                                        if (d1 < double.Parse(defaultcds))
                                        {
                                            cds.Items[i].Enabled = false;
                                        }
                                        else
                                        {
                                            cds.Items[i].Enabled = true;
                                        }
                                    }
                                }
                            }
                        }

                        //设置选中的线路
                        this.SetLineItem(rad1, list1);


                        //计算收入和支持
                        if (rad1.Items.Count > 0)
                        {
                            item.Visible = true;
                            //列车收入和支出
                            this.NewCalShourAndZhiChu(list1[0], item);
                        }
                        else
                        {
                            item.Visible = false;
                        }

                        //设置不同的下拉框
                        DropDownList drop1 = item.FindControl("selTrainType") as DropDownList;
                        if (drop1 != null)
                        {
                            //300公里的动车
                            if (lab1.Text == "6" || lab1.Text == "7" || lab1.Text == "8" || lab1.Text == "11" || lab1.Text == "12")
                            {
                                CommTrain.SetDongCheListControl(drop1, 1);
                                lab2.Visible = false;
                            }
                            else if (lab1.Text == "4" || lab1.Text == "5" || lab1.Text == "9" || lab1.Text == "10") //200公里动车
                            {
                                CommTrain.SetDongCheListControl(drop1, 0);
                                lab2.Visible = false;
                            }
                            else
                            {
                                drop1.Visible = false;
                            }

                            if (drop1.Items.FindByValue(lab1.Text) != null)
                            {
                                drop1.SelectedValue = lab1.Text;
                            }
                        }
                    }
                }
            }
        }
        private void SetSubData(int col, ZhiChuData zc1, int XiaoShou, CommTrain train2)
        {
            switch (zc1.ZhiChuName)
            {
            case "局外线路使用费":
                HtmlInputHidden hid1 = this.f3_3.Parent.FindControl("f" + col + "_3") as HtmlInputHidden;
                if (hid1 != null)
                {
                    hid1.Value = JMath.Round1(zc1.ZhiChu / XiShu, XiaoShou) + "";
                }
                break;

            case "机车牵引费":
                HtmlInputHidden hid2 = this.f3_3.Parent.FindControl("f" + col + "_4") as HtmlInputHidden;
                if (hid2 != null)
                {
                    hid2.Value = JMath.Round1(zc1.ZhiChu / XiShu, XiaoShou) + "";
                }
                break;

            case "售票服务费":
                HtmlInputHidden hid3 = this.f3_3.Parent.FindControl("f" + col + "_5") as HtmlInputHidden;
                if (hid3 != null)
                {
                    hid3.Value = JMath.Round1(zc1.ZhiChu / XiShu, XiaoShou) + "";
                }
                break;

            case "旅客服务费":
                HtmlInputHidden hid4 = this.f3_3.Parent.FindControl("f" + col + "_6") as HtmlInputHidden;
                if (hid4 != null)
                {
                    hid4.Value = JMath.Round1(zc1.ZhiChu / XiShu, XiaoShou) + "";
                }
                break;

            case "列车上水费":
                HtmlInputHidden hid5 = this.f3_3.Parent.FindControl("f" + col + "_7") as HtmlInputHidden;
                if (hid5 != null)
                {
                    hid5.Value = JMath.Round1(zc1.ZhiChu / XiShu, XiaoShou) + "";
                }
                break;

            case "人员工资和工资附加费":
                HtmlInputHidden hid6 = this.f3_3.Parent.FindControl("f" + col + "_8") as HtmlInputHidden;
                if (hid6 != null)
                {
                    hid6.Value = JMath.Round1(zc1.ZhiChu / XiShu, XiaoShou) + "";
                }
                break;

            case "车辆折旧费":
                HtmlInputHidden hid7 = this.f3_3.Parent.FindControl("f" + col + "_9") as HtmlInputHidden;
                if (hid7 != null)
                {
                    hid7.Value = JMath.Round1(zc1.ZhiChu / XiShu, XiaoShou) + "";
                }
                break;

            case "列车日常检修成本":
                HtmlInputHidden hid8 = this.f3_3.Parent.FindControl("f" + col + "_10") as HtmlInputHidden;
                if (hid8 != null)
                {
                    hid8.Value = JMath.Round1(zc1.ZhiChu / XiShu, XiaoShou) + "";
                }
                break;

            case "定期检修成本":
                HtmlInputHidden hid9 = this.f3_3.Parent.FindControl("f" + col + "_11") as HtmlInputHidden;
                if (hid9 != null)
                {
                    hid9.Value = JMath.Round1(zc1.ZhiChu / XiShu, XiaoShou) + "";
                }
                break;

            case "车辆消耗备用品":
                HtmlInputHidden hid10 = this.f3_3.Parent.FindControl("f" + col + "_12") as HtmlInputHidden;
                if (hid10 != null)
                {
                    hid10.Value = JMath.Round1(zc1.ZhiChu / XiShu, XiaoShou) + "";
                }
                break;

            case "空调车用油":
                HtmlInputHidden hid11 = this.f3_3.Parent.FindControl("f" + col + "_13") as HtmlInputHidden;
                if (hid11 != null)
                {
                    hid11.Value = JMath.Round1(zc1.ZhiChu / XiShu, XiaoShou) + "";
                }
                break;

            case "人员其他费用":
                HtmlInputHidden hid12 = this.f3_3.Parent.FindControl("f" + col + "_14") as HtmlInputHidden;
                if (hid12 != null)
                {
                    hid12.Value = JMath.Round1(zc1.ZhiChu / XiShu, XiaoShou) + "";
                }
                break;

            case "购买车辆利息":
                HtmlInputHidden hid13 = this.f3_3.Parent.FindControl("f" + col + "_15") as HtmlInputHidden;
                if (hid13 != null)
                {
                    hid13.Value = JMath.Round1(zc1.ZhiChu / XiShu, XiaoShou) + "";
                }
                break;

            case "轮渡费":
                this.shipfee.Value = train2.GetFee15() + "";
                break;

            case "间接费用分摊":
                this.jianjiefee.Value = train2.GetFee16() + "";
                break;

            default:
                break;
            }
        }
        private void SetData()
        {
            String line1      = Request.QueryString["Line"];
            bool   isYearFlag = true;
            int    XiaoShou   = 0;

            if (String.IsNullOrEmpty(Request.QueryString["IsYear"]) == false)
            {
                if (Request.QueryString["IsYear"] == "0")
                {
                    isYearFlag = false;
                    XiaoShou   = 2;
                }
            }

            int traintype1 = int.Parse(Request.QueryString["TrainType"]);
            int dianche    = int.Parse(Request.QueryString["hasDianChe"]);

            String[] bianzhu    = Request.QueryString["BianZhu"].Split(',');
            bool     hasDianChe = false;

            if (dianche > 0)
            {
                hasDianChe = true;
            }

            this.yz.Value = bianzhu[0];
            this.yw.Value = bianzhu[1];
            this.rw.Value = bianzhu[2];
            this.ca.Value = "1";
            this.sy.Value = "0";

            if (bianzhu.Length >= 4)
            {
                this.ca.Value = bianzhu[3];
            }
            if (bianzhu.Length >= 5)
            {
                this.sy.Value = bianzhu[4];
            }

            String traintypename = ((ETrainType)traintype1).ToString();

            if (traintype1 == 2 || traintype1 == 1)
            {
                if (dianche > 0)
                {
                    traintypename = traintypename + "(非直供电)";
                }
                else
                {
                    traintypename = traintypename + "(直供电)";
                }
            }

            String[]  lineNodes = line1.Replace("-", ",").Split(',');
            TrainLine lineObj   = Line.GetTrainLineByTrainTypeAndLineNoeds((ETrainType)traintype1, hasDianChe, lineNodes);

            this.traintype.Value  = traintypename;
            this.totalmiles.Value = lineObj.TotalMiles + "";

            //设置起始站点
            this.as1.Value = lineObj.Nodes[0].AStation;
            this.bs1.Value = lineObj.Nodes[lineObj.Nodes.Count - 1].BStation;

            //计算支出
            CommTrain train2 = new CommTrain();

            train2.IsYearFlag = isYearFlag;

            if (String.IsNullOrEmpty(Request.QueryString["cds"]) == false)
            {
                train2.CheDiShu = double.Parse(Request.QueryString["cds"]);
            }

            train2.Line = lineObj;
            ECommTrainType commtype = (ECommTrainType)traintype1;

            train2.TrainType      = commtype;
            train2.YunXingLiCheng = lineObj.TotalMiles;
            double JnFee  = 0;
            double ShouRu = 0;

            String findcond;

            if (Session["FindCond"] == null)
            {
                findcond = "";
            }
            else
            {
                findcond = Session["FindCond"].ToString().Trim();
            }

            //1计算四种不同模式的支出
            int yz1 = int.Parse(this.yz.Value);
            int yw1 = int.Parse(this.yw.Value);
            int rw1 = int.Parse(this.rw.Value);
            int ca1 = int.Parse(this.ca.Value);
            int sy1 = int.Parse(this.sy.Value);

            train2.CunZengMoShi = ECunZengMoShi.新人新车;
            List <ZhiChuData> zhichu1 = train2.GetShouRuAndZhiChu(out ShouRu, yz1, yw1, rw1, sy1, ca1, hasDianChe, findcond);

            JnFee = train2.JnFee;
            int col = 3;
            int row = 3;

            foreach (ZhiChuData zc1 in zhichu1)
            {
                if (zc1.ZhiChuName != "电网和接触网使用费")
                {
                    SetSubData(col, zc1, XiaoShou, train2);
                }
            }
            f3_16.Value      = JMath.Round1(JnFee / XiShu, XiaoShou) + "";
            this.jfee1.Value = JMath.Round1(train2.JnFee / XiShu, XiaoShou) + "";
            this.jfee2.Value = JMath.Round1(train2.JnSaleFee / XiShu, XiaoShou) + "";
            this.jfee3.Value = JMath.Round1(train2.JnServerFee / XiShu, XiaoShou) + "";

            //2
            train2.CunZengMoShi = ECunZengMoShi.新人有车;
            List <ZhiChuData> zhichu2 = train2.GetShouRuAndZhiChu(out ShouRu, yz1, yw1, rw1, sy1, ca1, hasDianChe, findcond);

            JnFee = train2.JnFee;
            col   = 4;
            row   = 3;
            foreach (ZhiChuData zc1 in zhichu2)
            {
                if (zc1.ZhiChuName != "电网和接触网使用费")
                {
                    //HtmlInputHidden hid1 = this.f3_3.Parent.FindControl("f" + col + "_" + row) as HtmlInputHidden;
                    //if (hid1 != null) hid1.Value = JMath.Round1(zc1.ZhiChu / XiShu, XiaoShou) + "";
                    // row++;
                    SetSubData(col, zc1, XiaoShou, train2);
                }
            }
            f4_16.Value      = JMath.Round1(JnFee / XiShu, XiaoShou) + "";
            this.jfee4.Value = JMath.Round1(train2.JnFee / XiShu, XiaoShou) + "";
            this.jfee5.Value = JMath.Round1(train2.JnSaleFee / XiShu, XiaoShou) + "";
            this.jfee6.Value = JMath.Round1(train2.JnServerFee / XiShu, XiaoShou) + "";

            //3
            train2.CunZengMoShi = ECunZengMoShi.人新车;
            List <ZhiChuData> zhichu3 = train2.GetShouRuAndZhiChu(out ShouRu, yz1, yw1, rw1, sy1, ca1, hasDianChe, findcond);

            JnFee = train2.JnFee;
            col   = 5;
            row   = 3;
            foreach (ZhiChuData zc1 in zhichu3)
            {
                if (zc1.ZhiChuName != "电网和接触网使用费")
                {
                    SetSubData(col, zc1, XiaoShou, train2);
                }
            }
            f5_16.Value      = JMath.Round1(JnFee / XiShu, XiaoShou) + "";
            this.jfee7.Value = JMath.Round1(train2.JnFee / XiShu, XiaoShou) + "";
            this.jfee8.Value = JMath.Round1(train2.JnSaleFee / XiShu, XiaoShou) + "";
            this.jfee9.Value = JMath.Round1(train2.JnServerFee / XiShu, XiaoShou) + "";

            //4
            train2.CunZengMoShi = ECunZengMoShi.人有车;
            List <ZhiChuData> zhichu4 = train2.GetShouRuAndZhiChu(out ShouRu, yz1, yw1, rw1, sy1, ca1, hasDianChe, findcond);

            JnFee = train2.JnFee;
            col   = 6;
            row   = 3;
            foreach (ZhiChuData zc1 in zhichu4)
            {
                if (zc1.ZhiChuName != "电网和接触网使用费")
                {
                    SetSubData(col, zc1, XiaoShou, train2);
                }
            }
            f6_16.Value       = JMath.Round1(JnFee / XiShu, XiaoShou) + "";
            this.jfee10.Value = JMath.Round1(train2.JnFee / XiShu, XiaoShou) + "";
            this.jfee11.Value = JMath.Round1(train2.JnSaleFee / XiShu, XiaoShou) + "";
            this.jfee12.Value = JMath.Round1(train2.JnServerFee / XiShu, XiaoShou) + "";

            //计算轮渡费和间接分摊费
            //this.shipfee.Value = train2.GetFee15()+"";
            //this.jianjiefee.Value = train2.GetFee16() + "";
        }