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