/// <summary> /// Ведомость участков пересечения сухостойных участков леса /// </summary> /// <param name="resultFile">имя выходного файла</param> public static void Create(string resultFile) { WordDocument doc = null; string error = string.Empty; try { List<Egp> egps = presenterEGP.ReadEgpFromDb(); egps = egps.FindAll(x => x.Code == 1); doc = new WordDocument(templateName, false); NumberFormatInfo nfi = new CultureInfo("en-US", false).NumberFormat; for (int i = 0; i < egps.Count; i++) { char[] splinChar = { '-' }; string[] km = egps[i].Name.Split(splinChar); double beginKm = 0; double endKm = 0; try { beginKm = Double.Parse(km[0], nfi); endKm = Double.Parse(km[1], nfi); } catch (Exception) { doc.CloseDocument(); doc.Close(); throw new Exception("Невозможно прочитать километры в таблице EGP"); } string[] row = new string[9]; row[0] = i.ToString() + 1; // № row[1] = egps[i].ObjId.ToString(); // идентификационный номер row[2] = beginKm.ToString(kmStringTemplate); // начало участка - экс. км row[3] = egps[i].StartPointWgs().X.ToString(gradStringTemplate); // начало участка - Х row[4] = egps[i].StartPointWgs().Y.ToString(gradStringTemplate); // начало участка - У row[5] = endKm.ToString(kmStringTemplate); // конец участка - экспл. км row[6] = egps[i].EndPointWgs().X.ToString(gradStringTemplate); // конец участка - Х row[7] = egps[i].EndPointWgs().Y.ToString(gradStringTemplate); // конец участка - У row[8] = (endKm - beginKm).ToString(kmStringTemplate); // протяженность doc.AddDataToTable(1, row); } doc.Save(resultFile); } catch (Exception ex) { error = ex.Message; } finally { if (doc != null) { doc.CloseDocument(); doc.Close(); } if (error != string.Empty) throw new Exception(error); } }
/// <summary> /// Ведомость выявленных на момент проведения обследования форм рельефа, связанных с развитием ЭГП/ареалов СГУ /// </summary> /// <param name="resultFile">имя выходного файла</param> public static void Create(string resultFile) { WordDocument doc = null; string error = string.Empty; try { List<Egp> egps = presenterEGP.ReadEgpFromDb(); egps = egps.FindAll(x => x.Code == 9); doc = new WordDocument(templateName, false); for (int i = 0; i < egps.Count; i++) { string[] row = new string[5]; row[0] = i.ToString() + 1; //todo check - Номер участка с проявлением ЭГП/ареала СГУ row[1] = egps[i].Type; // Название ЭГП/ СГУ row[2] = egps[i].ObjId.ToString(); //Идентификационный номер формы рельефа ЭГП/ареала СГУ row[3] = egps[i].StartPointWgs().X.ToString(gradStringTemplate); //todo check Координаты контура формы рельефа* row[4] = egps[i].StartPointWgs().Y.ToString(gradStringTemplate); doc.AddDataToTable(1, row); } doc.Save(resultFile); } catch (Exception ex) { error = ex.Message; } finally { if (doc != null) { doc.CloseDocument(); doc.Close(); } if (error != string.Empty) throw new Exception(error); } }
/// <summary> /// Категории опасности участков с проявлениями экзогенных геологических процессов /// </summary> /// <param name="resultFile">Имя выходного файла</param> public static void Create(string resultFile) { WordDocument doc = null; string error = string.Empty; try { List<Egp> egps = presenterEGP.ReadEgpFromDb(); doc = new WordDocument(templateName, false); NumberFormatInfo nfi = new CultureInfo("en-US", false).NumberFormat; for (int i = 0; i < egps.Count; i++) { char[] splinChar = { '-' }; string[] km = egps[i].Name.Split(splinChar); double beginKm = 0; double endKm = 0; try { beginKm = Double.Parse(km[0], nfi); endKm = Double.Parse(km[1], nfi); } catch (Exception) { doc.CloseDocument(); doc.Close(); throw new Exception("Невозможно прочитать километры в таблице EGP"); } string[] row = new string[13]; row[0] = i.ToString() + 1; row[1] = egps[i].Code.ToString(); row[2] = egps[i].Type; row[3] = egps[i].Category.ToString(); row[4] = beginKm.ToString(); row[5] = egps[i].StartPointWgs().X.ToString(); row[6] = egps[i].StartPointWgs().Y.ToString(); row[7] = egps[i].Start.Z.ToString(); row[8] = endKm.ToString(); row[9] = egps[i].EndPointWgs().X.ToString(); row[10] = egps[i].EndPointWgs().Y.ToString(); row[11] = egps[i].End.Z.ToString(); row[12] = (endKm - beginKm).ToString(); doc.AddDataToTable(1, row); } doc.Save(resultFile); } catch (Exception ex) { error = ex.Message; } finally { if (doc != null) { doc.CloseDocument(); doc.Close(); } if (error != string.Empty) throw new Exception(error); } }
/// <summary> /// Общие данные по количеству участков с экзогенными геологическими процессами /// </summary> /// <param name="resultFile">имя выходного файла</param> public static void Create(string resultFile) { WordDocument doc = null; string error = string.Empty; try { List<Egp> egps = presenterEGP.ReadEgpFromDb(); egps.Sort(CompareEGP); doc = new WordDocument(templateName, false); NumberFormatInfo nfi = new CultureInfo("en-US", false).NumberFormat; int cat1, cat2, cat3; cat1 = cat2 = cat3 = 0; string currentName, previousName; currentName = previousName = string.Empty; for (int i = 0; i <= egps.Count; i++) { if (i != egps.Count) currentName = egps[i].Type; if ((currentName != previousName && i != 0) || i == egps.Count) { string[] row = new string[5]; row[0] = previousName; //Геологический процесс row[1] = cat1.ToString(); // 1 категория row[2] = cat2.ToString(); // 2 категория row[3] = cat3.ToString(); // 3 категория row[4] = (cat1 + cat2 + cat3).ToString(); // общее число doc.AddDataToTable(1, row); cat1 = cat2 = cat3 = 0; } if (i != egps.Count) { switch (egps[i].Category) { case 1: cat1++; break; case 2: cat2++; break; default: cat3++; break; } previousName = currentName; } } doc.Save(resultFile); } catch (Exception ex) { error = ex.Message; } finally { if (doc != null) { doc.CloseDocument(); doc.Close(); } if (error != string.Empty) throw new Exception(error); } }
/// <summary> /// Общие данные по протяженности участков с экзогенными геологическими процессами /// </summary> /// <param name="resultFile">имя выходного файла</param> public static void Create(string resultFile) { WordDocument doc = null; string error = string.Empty; try { List<Egp> egps = presenterEGP.ReadEgpFromDb(); egps.Sort(CompareEGP); doc = new WordDocument(templateName, false); NumberFormatInfo nfi = new CultureInfo("en-US", false).NumberFormat; double cat1, cat2, cat3; cat1 = cat2 = cat3 = 0; string currentName, previousName; currentName = previousName = string.Empty; for (int i = 0; i <= egps.Count; i++) { if (i != egps.Count) currentName = egps[i].Type; if ((currentName != previousName && i != 0) || i == egps.Count) { string[] row = new string[5]; row[0] = previousName; //Геологический процесс row[1] = cat1.ToString(kmStringTemplate); // 1 категория - протяженность row[2] = cat2.ToString(kmStringTemplate); // 2 категория - протяженность row[3] = cat3.ToString(kmStringTemplate); // 3 категория - протяженность row[4] = (cat1 + cat2 + cat3).ToString(kmStringTemplate); // общее число doc.AddDataToTable(1, row); cat1 = cat2 = cat3 = 0; } if (i != egps.Count) { char[] splitChar = { '-' }; string[] km = egps[i].Name.Split(splitChar); double beginKm = 0; double endKm = 0; try { beginKm = Double.Parse(km[0], nfi); endKm = Double.Parse(km[1], nfi); } catch (Exception) { doc.CloseDocument(); doc.Close(); throw new Exception("Невозможно прочитать километры в таблице EGP"); } double delta = endKm - beginKm; switch (egps[i].Category) { case 1: cat1 += delta; break; case 2: cat2 += delta; break; default: cat3 += delta; break; } previousName = currentName; } } doc.Save(resultFile); } catch (Exception ex) { error = ex.Message; } finally { if (doc != null) { doc.CloseDocument(); doc.Close(); } if (error != string.Empty) throw new Exception(error); } }