Пример #1
0
        public string GetGData(CPipeData Data, DataRow Dr)
        {
            string gData = "";

            //포장정보가 없으면 skip
            if (Data.Data3 == null)
            {
                return("");
            }
            //포장 정보가 없으면 SKIP
            if (Data.Data3.Rows.Count <= 0)
            {
                return("");
            }

            foreach (DataRow item in Data.Data3.Rows)
            {
                if (item["포장측점"].ToString().Trim() == "")
                {
                    continue;
                }
                string[] arr = item["포장측점"].ToString().Split('+');

                double spot = (Convert.ToDouble(arr[0]) * 20) + Convert.ToDouble(arr[1]);

                double start = Convert.ToDouble(Dr["시작거리"]);
                double end   = Convert.ToDouble(Dr["누가거리"]);

                if (start <= spot && end > spot)
                {
                    gData += CMaxerSector.SetData(spot, Convert.ToDouble(Dr["하류지반고"]), item["포장구간"].ToString().ToUpper());
                }
            }
            return(gData);
        }
Пример #2
0
        private DataRow GetExtention(DataTable dt, DataRow maxer_item)
        {
            double extention = 0;

            double startpos = 0;
            double endpos   = 0;
            double 관경       = 0;
            double 상류지반고    = 0;
            double 하류지반고    = 0;
            string 구간       = "";

            foreach (DataRow item in dt.Rows)
            {
                if (item["manhole_tp"].ToString() == "P")
                {
                    if (item["맨홀"].ToString() == maxer_item["관로"].ToString())
                    {
                        startpos = Convert.ToDouble(item["누가거리"].ToString());
                        관경       = Convert.ToDouble(item["관경"].ToString());
                        상류지반고    = Convert.ToDouble(item["지반고"].ToString());
                        구간       = item["구간"].ToString();
                        break;
                    }
                }
            }

            foreach (DataRow item in dt.Rows)
            {
                if (item["manhole_tp"].ToString() == "P")
                {
                    if (item["맨홀"].ToString() == maxer_item["다음관로"].ToString())
                    {
                        endpos = Convert.ToDouble(item["누가거리"].ToString());
                        하류지반고  = Convert.ToDouble(item["지반고"].ToString());
                        break;
                    }
                }
            }

            DataTable tmpdt = m_dt_maxer.Clone();

            tmpdt.Clear();
            DataRow Dr = tmpdt.NewRow();

            Dr["연장"]    = endpos - startpos;
            Dr["관경"]    = 관경;
            Dr["상류지반고"] = 상류지반고;
            Dr["하류지반고"] = 하류지반고;
            Dr["상류관저고"] = 상류지반고 - 1 - (관경 / 1000);
            Dr["하류관저고"] = 하류지반고 - 1;
            Dr["시작거리"]  = startpos;
            Dr["끝거리"]   = endpos;
            Dr["포장"]    = CMaxerSector.SetData(0, 0, 구간);


            return(Dr);
        }
Пример #3
0
        /// <summary>
        /// 구간 정보 데이터를 막서 데이터에 추가한다.
        /// </summary>
        /// <param name="Dr"> m_dt_maxer_tmp</param>
        /// <returns></returns>
        private DataRow Get구간Data(DataRow Dr)
        {
            DataTable tmpdt = m_dt_maxer.Clone();

            tmpdt.Clear();
            DataRow tmpdr = tmpdt.NewRow();


            foreach (DataRow g_item in m_dt_구간.Rows)
            {
                string[] strData = g_item["포장측점"].ToString().Split('+');

                double dist1 = Convert.ToDouble(strData[0]) * 20;
                double dist2 = Convert.ToDouble(strData[1]);

                double dist  = Math.Round(dist1 + dist2, 2);
                string str_g = "";

                double start_dist = Convert.ToDouble(Dr["시작거리"].ToString());

                if (dist >= start_dist && dist <= Convert.ToDouble(Dr["끝거리"].ToString()))
                {
                    //X=70.30,42.66,0.06

                    if (Convert.ToDouble(Dr["시작거리"].ToString()) == 0)
                    {
                        str_g = CMaxerSector.SetData(dist, Convert.ToDouble(Dr["하류지반고"].ToString()), g_item["포장구간"].ToString());// string.Format("X={0}, {1}, {2};", dist, g_item["INV"].ToString(), Convert.ToDouble(g_item["SIZE"].ToString()) / 1000);
                    }
                    else
                    {
                        str_g = CMaxerSector.SetData(Math.Round(dist - start_dist, 2), Convert.ToDouble(Dr["하류지반고"].ToString()), g_item["포장구간"].ToString());//string.Format("X={0}, {1}, {2};", dist2, g_item["INV"].ToString(), Convert.ToDouble(g_item["SIZE"].ToString()) / 1000);
                    }
                    tmpdr["포장"] = tmpdr["포장"].ToString().Trim() + str_g;
                }
            }

            return(tmpdr);
        }