Exemplo n.º 1
0
        /// <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);
            }
        }
Exemplo n.º 2
0
        /// <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);
            }
        }
Exemplo n.º 3
0
        /// <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);
            }
        }
Exemplo n.º 4
0
        /// <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);
            }
        }
Exemplo n.º 5
0
        /// <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);
            }
        }