//Подготовка архивного отчета для чтения значений public void PrepareArchiveReport() { if (_archiveReport == null) { Book.AddEvent("Подготовка архивного отчета", CodeFinal); try { _archiveReport = new ArchiveReport(CodeFinal + "_" + Book.FullThreadName, Name, ReportType.Excel, Book.LastChangeLinks); if (!IsSave && !IsSystem) { foreach (var param in Params.Values) { if (param.IntervalTypes.Count > 0) { var ap = param.ArchiveParam; var arp = new ArchiveReportParam(param.FullCode, Code, ap.DataType, ap.SuperProcess, ap.FirstParam.CalcParamType, param.IntervalTypes); _archiveReport.AddParam(arp); foreach (var cell in param.Cells) { if (arp.Queries.ContainsKey(cell.IntervalType)) { cell.ArchiveQueryValues = arp.Queries[cell.IntervalType]; } } foreach (var shape in param.Shapes) { if (arp.Queries.ContainsKey(shape.IntervalType)) { shape.ArchiveQueryValues = arp.Queries[shape.IntervalType]; } } foreach (var t in param.IntervalTypes) { if (t != IntervalType.Empty && !_intervalTypes.Contains(t)) { _intervalTypes.Add(t); } } } } } using (Book.Start(30)) Archive.PrepareReport(_archiveReport); } catch (Exception ex) { Book.AddError("Ошибка подготовки архивного расчета", ex); } } }
public PrintReport(ArchiveReport report) { AccountId = report.AccountId; Owner = report.Owner; HeatingStateStart = Math.Round(report.HeatingStartDebit - report.HeatingStartCredit, 2); WerStateStart = Math.Round(report.WerStartDebit - report.WerStartCredit, 2); ForHeating = report.HeatingForService - report.HeatingPreviliges; ForWer = report.WerForMonth - report.WerPreviliges; ForWater = report.WaterForMonth; HeatingPayment = Math.Round(report.HeatingBank + report.HeatingCash, 2); double werTotalPayment = Math.Round(report.WerBank + report.WerCash, 2); double werPayment = Math.Round(werTotalPayment - report.WaterForMonth, 2); WerPayment = werTotalPayment == 0.0 ? 0.0 : werPayment < 0.0 ? 0.0 : werPayment; WaterPayment = werTotalPayment == 0.0 ? 0.0 : report.WaterForMonth; HeatingStateEnd = Math.Round(report.HeatingEndDebit - report.HeatingEndCredit, 2); WerStateEnd = Math.Round(report.WerEndDebit - report.WerEndCredit, 2); MonthAndYear = $"{Date.GetShortMonth(Date.GetNumMonth(report.Month))}.{report.Year}"; }