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