Beispiel #1
0
        private bool Table644(Resolution resolution)
        {
            IRow row = SearchRowFromMark(sheet, mark.table1, false);

            if (row == null)
            {
                throw new Exception("Не найдена метка первой таблицы");
            }
            table = new MyTools.C_TableExcel(row.RowNum, row.FirstCellNum, Styles.s_RLTB_CC_T10_W);
            table.columns.AddRange(DefCol);

            table.columns.Add(new MyTools.C_ColumnExcel("T", 4, 2));
            table.columns.Add(new MyTools.C_ColumnExcel("Q", 5, 4, 0, 1));
            table.columns.Add(new MyTools.C_ColumnExcel("", 6, 2));
            table.columns.Add(new MyTools.C_ColumnExcel("K", 7, 5));

            BaseCalc_Class calc       = new Calc_644(_sample, obj, resolution);
            var            resultCalc = calc.Calc();

            if (resultCalc == null || resultCalc.Length == 0)
            {
                return(false);
            }
            FormulControl(calc);
            Calc644(calc);
            Summ(table.MaxRowValue, "123, 123(1) постановление РФ №644");

            CreateTable(sheet, table);
            ResizeWidth(sheet, MyTools.ETypeFormatBook.Vertical, table);
            ResizeHeight(sheet, table);
            return(true);
        }
        private void LoadTable(SelectionWell selectionWell)
        {
            CreateStyle();
            IRow Row = SearchRowFromMark(sheet, mark.table);

            MyTools.C_TableExcel table = new MyTools.C_TableExcel(Row.RowNum, 0, Styles.s_RLTB_CC_T10_W);
            table.columns.Add(columns.number);
            table.columns.Add(columns.pollution);
            table.columns.Add(columns.unit);

            int colResolution = 3;

            foreach (var one in PollutionBase_Class.AllResolution)
            {
                table.value.Add(new MyTools.C_ValueCell(one.GetResolutionClarify.FullName, 0, colResolution));
                if (colResolution > 3)
                {
                    table.columns.Add(new MyTools.C_ColumnExcel(string.Empty, colResolution, 10));
                }
                colResolution++;
            }
            table.MinRowHeight.Add(1, 1800);
            table.columns.Add(new MyTools.C_ColumnExcel("Нормативные показатели", 3, 10, 0, colResolution - 4));
            table.columns.Add(columns.result);
            table.columns.Add(columns.method);

            var values = selectionWell.ValueSelections.OrderBy(x => x.Pollution.Number).ToArray();
            int row    = 1;

            foreach (var one in values)
            {
                table.value.Add(new MyTools.C_ValueCell(row, row, 0));
                table.value.Add(new MyTools.C_ValueCell(one.Pollution.FullName, row, 1, 0, 0, Styles.s_RLTB_LC_T10_W));
                table.value.Add(new MyTools.C_ValueCell(AdditionnTable.AllUnits.First(x => x.ID == one.Pollution.UnitsID).Name, row, 2));
                colResolution = 3;
                foreach (var res in PollutionBase_Class.AllResolution)
                {
                    var val = PollutionBase_Class.AllValueNorm.FirstOrDefault(x => x.PollutionID == one.Pollution.ID && x.ResolutionID == res.ID);
                    if (val != null)
                    {
                        table.value.Add(new MyTools.C_ValueCell($"{(val.From > 0 ? $"{val.FromRound}-{val.ToRound}" : val.ToRound.ToString())}", row, colResolution));
                    }
                    colResolution++;
                }
                table.value.Add(new MyTools.C_ValueCell(Calc(one), row, 5));
                table.value.Add(new MyTools.C_ValueCell(one.Pollution.Method, row, 6, 0, 0, Styles.s_RLTB_LC_T9_W));
                row++;
            }

            CreateTable(sheet, table);
            ResizeWidth(sheet, MyTools.ETypeFormatBook.My, table, 25400);
            ResizeHeight(sheet, table);
        }
Beispiel #3
0
        private bool LoadBase()
        {
            var row = SearchRowFromMark(sheet, mark.table, false);

            if (row == null)
            {
                throw new Exception("Не найдена метка таблицы");
            }

            CreateStyle();

            table = new MyTools.C_TableExcel(row.RowNum, row.FirstCellNum, Styles.s_RLTB_CC_T10_W);

            return(true);
        }
Beispiel #4
0
 /// <summary>Создаю колонки для таблицы</summary>
 /// <param name="cell">Стартовая ячейка</param>
 private MyTools.C_TableExcel CreateColumn(ICell cell)
 {
     MyTools.C_TableExcel result = new MyTools.C_TableExcel(cell.RowIndex, cell.ColumnIndex, Styles.s_RLTB_CC_T10_W);
     result.columns.Add(new MyTools.C_ColumnExcel("Дата отбора проб", 0, 2, 1));
     //result.columns.Add(new MyTools.C_ColumnExcel("Место отбора проб", 1, 6, 1));
     result.columns.Add(new MyTools.C_ColumnExcel("Расход сточных вод (м^3/мес.)".SymbolConverter(), 1, 1, 1));
     result.columns.Add(new MyTools.C_ColumnExcel("Наименование загрязняющих веществ", 2, 6, 1));
     result.columns.Add(new MyTools.C_ColumnExcel("Код загрязн. вещества", 3, 0.6, 1));
     result.columns.Add(new MyTools.C_ColumnExcel("Фактическая концентрация загрязняющих веществ(мг/л)", 4, 4.5, 1));
     result.columns.Add(new MyTools.C_ColumnExcel("Фактическай сброс загрязняющ. веществ(тонн)", 5, 5, 1));
     result.columns.Add(new MyTools.C_ColumnExcel("Норматив допустимого сброса(лимит на сброс)", 6, 0.7, 0, 3));
     result.columns.Add(new MyTools.C_ColumnExcel(string.Empty, 7, 0.7));
     result.columns.Add(new MyTools.C_ColumnExcel(string.Empty, 8, 5));
     result.columns.Add(new MyTools.C_ColumnExcel(string.Empty, 9, 5));
     result.columns.Add(new MyTools.C_ColumnExcel("Сведения декларации о составе и свойствах сточных вод", 10, 1, 0, 1));
     result.columns.Add(new MyTools.C_ColumnExcel(string.Empty, 11, 4));
     result.columns.Add(new MyTools.C_ColumnExcel("Кратность превышения", 12, 0.7, 0, 2));
     result.columns.Add(new MyTools.C_ColumnExcel(string.Empty, 13, 0.7));
     result.columns.Add(new MyTools.C_ColumnExcel(string.Empty, 14, 0.7));
     result.MinHeighColumn = 900;
     return(result);
 }
Beispiel #5
0
        private bool Table621_2(Resolution resolution)
        {
            IRow row = SearchRowFromMark(sheet, mark.table2, false);

            if (row == null)
            {
                throw new Exception("Не найдена метка второй таблицы");
            }
            table = new MyTools.C_TableExcel(row.RowNum, row.FirstCellNum, Styles.s_RLTB_CC_T10_W);
            table.columns.AddRange(DefCol);
            table.columns.Add(new MyTools.C_ColumnExcel("Т", 4, 5, ColumnMarged: 1));
            table.columns.Add(new MyTools.C_ColumnExcel("Q", 6, 4, ColumnMarged: 1));

            if (!Calc621(new Calc_621(_sample, obj, resolution), false))
            {
                return(false);
            }
            Summ(table.MaxRowValue, "8 постановления №621-П");

            CreateTable(sheet, table, false, false);
            return(true);
        }
Beispiel #6
0
        private void Table621_1(Resolution resolution)
        {
            IRow row = SearchRowFromMark(sheet, mark.table1, false);

            if (row == null)
            {
                throw new Exception("Не найдена метка первой таблицы");
            }
            table = new MyTools.C_TableExcel(row.RowNum, row.FirstCellNum, Styles.s_RLTB_CC_T10_W);
            table.columns.AddRange(DefCol);
            table.columns.Add(new MyTools.C_ColumnExcel("Q", 4, 4));
            table.columns.Add(new MyTools.C_ColumnExcel("Мф\n(ФК-ДК)хQ/1000", 5, 5));
            table.columns.Add(new MyTools.C_ColumnExcel("Н", 6, 4));
            table.columns.Add(new MyTools.C_ColumnExcel("Кп", 7, 1));

            Calc621(new Calc_621(_sample, obj, resolution), true);
            Summ(table.MaxRowValue, "7 постановления №621-П");

            CreateTable(sheet, table);
            ResizeWidth(sheet, MyTools.ETypeFormatBook.Vertical, table);
            ResizeHeight(sheet, table);
        }
Beispiel #7
0
        /// <summary>Отрисовка таблицы</summary>
        public void CreateTable(ICell cell, SelectionWell selectionWell)
        {
            table = CreateColumn(cell);

            for (int i = 1; i < 16; i++)
            {
                table.value.Add(new MyTools.C_ValueCell(i, 1, i - 1));
            }

            table.value.Add(new MyTools.C_ValueCell("мг / л", 0, 6));
            table.value.Add(new MyTools.C_ValueCell("мг / л", 0, 7));
            table.value.Add(new MyTools.C_ValueCell("мг / л", 0, 10));
            table.value.Add(new MyTools.C_ValueCell("тонн", 0, 8));
            table.value.Add(new MyTools.C_ValueCell("тонн", 0, 9));
            table.value.Add(new MyTools.C_ValueCell("тонн", 0, 11));

            ValueSelection[] valueSelections = selectionWell.ValueSelections.Where(x => x.Value > 0).ToArray();

            table.value.Add(new MyTools.C_ValueCell(MyTools.StringDate_From_YMDHMS(selectionWell.YMDHM, MyTools.EInputDate.YMDHM, MyTools.EInputDate.YMD), 2, 0, valueSelections.Length - 1));
            MonthVolume = obj.GetMidMonthVolume(DateControl_Class.SelectYear - 1).Volume;
            table.value.Add(new MyTools.C_ValueCell(MonthVolume, 2, 1, valueSelections.Length - 1));
            int row = 2;

            Declaration declair = selectionWell.Well.Declaration;

            foreach (var valueSelection in valueSelections)
            {
                Pollution pollution = valueSelection.Pollution;
                table.value.Add(new MyTools.C_ValueCell(pollution.FullName.TextToUpper().StringDivision(4), row, 2, style: Styles.s_RLTB_LC_T10_W));
                if (pollution.Key > 0)
                {
                    table.value.Add(new MyTools.C_ValueCell(pollution.Key, row, 3));
                }
                table.value.Add(new MyTools.C_ValueCell(valueSelection.ValueRound.KillZero(), row, 4));
                table.value.Add(new MyTools.C_ValueCell(((decimal)MonthVolume * valueSelection.Value).ToMath(6, 4, 1), row, 5, style: Styles.s_RLTB_RC_T10_W));
                table.value.AddRange(GetResolution(valueSelection, "621", row, 6, 8, 12));
                table.value.AddRange(GetResolution(valueSelection, "644", row, 7, 9, 13));

                DeclarationValue declarationValue = declair != null?declair.DeclarationValues.FirstOrDefault(x => x.PollutionID == pollution.ID) : null;

                if (declarationValue != null)
                {
                    decimal result = 0;
                    if (pollution.HasRange)
                    {
                        table.value.Add(new MyTools.C_ValueCell($"{declarationValue.FromRound.KillZero()}-{declarationValue.ToRound.KillZero()}", row, 10));
                    }
                    else
                    {
                        table.value.Add(new MyTools.C_ValueCell(declarationValue.ToRound.KillZero(), row, 10));
                        result = (decimal)MonthVolume * declarationValue.To;
                        if (result > 0)
                        {
                            table.value.Add(new MyTools.C_ValueCell(result.ToMath(6, 4, 1), row, 11, style: Styles.s_RLTB_RC_T10_W));
                        }
                        result = Math.Round(valueSelection.Value / declarationValue.To, 1);
                        if (result > 1)
                        {
                            table.value.Add(new MyTools.C_ValueCell(result.ToMoney(null, 1), row, 14));
                        }
                    }
                }
                row++;
            }

            CreateTable(cell.Sheet, table);
            ResizeWidth(cell.Sheet, MyTools.ETypeFormatBook.Horizontal, table);
            ResizeHeight(cell.Sheet, table);
        }
Beispiel #8
0
            protected override bool Do()
            {
                summa = 0;
                IRow row = SearchRowFromMark(sheet, "{таблица}", false);

                if (row == null)
                {
                    throw new Exception("Не найдена метка первой таблицы");
                }
                table = new MyTools.C_TableExcel(row.RowNum, row.FirstCellNum, Styles.s_RLTB_CC_T10_W);
                table.columns.Add(new MyTools.C_ColumnExcel("№\nп/п", 0, 1));
                table.columns.Add(new MyTools.C_ColumnExcel("Наименование предприятия", 1, 50));
                table.columns.Add(new MyTools.C_ColumnExcel("ИНН", 2, 10));
                table.columns.Add(new MyTools.C_ColumnExcel("Сумма с\nучётом НДС", 3, 10));
                shows = new List <ThisShow>();
                int sam = 0;

                var samples = Helpers.LogicHelper.SampleLogic.Find(DateControl_Class.SelectMonth, 1);

                samples = samples.Where(x => x.SelectionWells.Any()).ToArray();
                var count = samples.Count();

                foreach (var sample in samples)
                {
                    Action(count, ++sam);

                    var sw = sample.SelectionWells.First();

                    Client  client = sw.Objecte.Client;
                    Objecte obj    = client.Objects.First(x => x.ID == sw.ObjectID);
                    switch (name)
                    {
                    case "621":
                    {
                        calc = new Calc_621(sample, obj, PollutionBase_Class.AllResolution.First(x => x.CurtName.Contains(name)));
                        break;
                    }

                    case "644":
                    {
                        calc = new Calc_644(sample, obj, PollutionBase_Class.AllResolution.First(x => x.CurtName.Contains(name)));
                        break;
                    }
                    }
                    calc.Calc();
                    if (calc.Answer == null || calc.Answer.Sum(x => x.Value.SummNDS) < AdditionnTable.GetPeriod.MinLimits)
                    {
                        continue;
                    }
                    shows.Add(new ThisShow(client.Detail.FullName, client.INN, calc.Answer.Sum(x => x.Value.SummNDS), obj.OrderDistrict));
                }
                int index = 0;

                if (shows.Count == 0)
                {
                    MessageBox.Show("Не найдены превышения!");
                    return(false);
                }
                //shows = shows.OrderBy(x => x.Order).ThenByDescending(x => x.Summa).ToList();
                shows = shows.OrderByDescending(x => x.Summa).ToList();
                foreach (var one in shows)
                {
                    table.value.Add(new MyTools.C_ValueCell(index + 1, index, 0, style: Styles.s_RLTB_RC_T10_W));
                    table.value.Add(new MyTools.C_ValueCell(one.Name.StringDivision(70), index, 1, style: Styles.s_RLTB_LC_T10_W));
                    table.value.Add(new MyTools.C_ValueCell(one.INN, index, 2, style: Styles.s_RLTB_LC_T10_W));
                    table.value.Add(new MyTools.C_ValueCell(one.Summa.ToMoney(), index, 3, style: Styles.s_RLTB_RC_T10_W));
                    summa += one.Summa;
                    index++;
                }
                CreateTable(sheet, table);
                ResizeWidth(sheet, MyTools.ETypeFormatBook.Vertical, table);
                ResizeHeight(sheet, table);
                return(true);
            }