/// <summary> /// Добавление дополнительной информации /// </summary> /// <param name="destinationDateSet"></param> private void AddAdditionalDataToDataSet(MaintenanceHistoryDataSet destinationDateSet) { string reportFooter = new GlobalTermsProvider()["ReportFooter"].ToString(); string reportFooterPrepared = new GlobalTermsProvider()["ReportFooterPrepared"].ToString(); string reportFooterLink = new GlobalTermsProvider()["ProductWebsite"].ToString(); destinationDateSet.AdditionalDataTAble.AddAdditionalDataTAbleRow(_reportTitle, OperatorLogotype, _filterSelection?"Schedule":"Unschedule", DateAsOf, reportFooter, reportFooterPrepared, reportFooterLink); }
/// <summary> /// Построить источник данных (DataSet) для вывода в отчет /// </summary> /// <returns></returns> public virtual MaintenanceHistoryDataSet GenerateDataSet() { MaintenanceHistoryDataSet dataset = new MaintenanceHistoryDataSet(); AddAircraftToDataset(dataset); //AddStatusToDataset(dataset); AddDirectivesToDataSet(dataset); AddAdditionalDataToDataSet(dataset); //AddForecastToDataSet(dataset); return(dataset); }
/// <summary> /// Добавляется элемент в таблицу данных /// </summary> /// <param name="destinationDataSet">Таблица, в которую добавляется элемент</param> private void AddAircraftToDataset(MaintenanceHistoryDataSet destinationDataSet) { if (_reportedAircraft == null) { return; } var reportAircraftLifeLenght = GlobalObjects.CasEnvironment.Calculator.GetCurrentFlightLifelength(_reportedAircraft); var manufactureDate = _reportedAircraft.ManufactureDate.ToString(new GlobalTermsProvider()["DateFormat"].ToString()); var serialNumber = ReportedAircraft.SerialNumber; var model = _reportedAircraft.Model.ToString(); var sinceNewHours = reportAircraftLifeLenght.Hours != null ? (int)reportAircraftLifeLenght.Hours : 0; var sinceNewCycles = reportAircraftLifeLenght.Cycles != null ? (int)reportAircraftLifeLenght.Cycles : 0; var registrationNumber = ReportedAircraft.RegistrationNumber; int averageUtilizationHours; int averageUtilizationCycles; string averageUtilizationType; if (_forecastData == null) { var aircraftFrame = GlobalObjects.ComponentCore.GetBaseComponentById(_reportedAircraft.AircraftFrameId); var averageUtilization = GlobalObjects.AverageUtilizationCore.GetAverageUtillization(aircraftFrame); averageUtilizationHours = (int)averageUtilization.Hours; averageUtilizationCycles = (int)averageUtilization.Cycles; averageUtilizationType = averageUtilization.SelectedInterval == UtilizationInterval.Dayly ? "Day" : "Month"; } else { averageUtilizationHours = (int)_forecastData.AverageUtilization.Hours; averageUtilizationCycles = (int)_forecastData.AverageUtilization.Cycles; averageUtilizationType = _forecastData.AverageUtilization.SelectedInterval == UtilizationInterval.Dayly ? "Day" : "Month"; } var lineNumber = (ReportedAircraft).LineNumber; var variableNumber = (ReportedAircraft).VariableNumber; destinationDataSet.AircraftDataTable.AddAircraftDataTableRow(serialNumber, manufactureDate, sinceNewHours, sinceNewCycles, registrationNumber, model, lineNumber, variableNumber, averageUtilizationHours, averageUtilizationCycles, averageUtilizationType); }
/// <summary> /// Добавление директив в таблицу данных /// </summary> /// <param name="destinationDataSet">Таблица, в которую добавляются данные</param> protected virtual void AddDirectivesToDataSet(MaintenanceHistoryDataSet destinationDataSet) { if (_reportedAircraft == null) { return; } var compliance = from item in _reportedDirectives group item by item.NumGroup into compl orderby compl.First().RecordDate descending select compl; foreach (IGrouping <int, MaintenanceCheckRecord> grouping in compliance) { MaintenanceCheckRecord reportedDirective = grouping.First(); string name = grouping.Aggregate("", (current, g) => current + (g.ParentCheck.Name + " ")); Lifelength reportAircraftLifeLenght = GlobalObjects.CasEnvironment.Calculator.GetCurrentFlightLifelength(_reportedBaseComponent); Lifelength used = new Lifelength(reportAircraftLifeLenght); string lastComplianceDate = "", lastComplianceHours = "", lastComplianceCycles = "", lastComplianceDays = ""; string remarks, references = ""; remarks = reportedDirective.Remarks; lastComplianceDate = reportedDirective.RecordDate.ToString(new GlobalTermsProvider()["DateFormat"].ToString()); lastComplianceCycles = reportedDirective.OnLifelength.Cycles != null ? reportedDirective.OnLifelength.Cycles.ToString() : ""; lastComplianceHours = reportedDirective.OnLifelength.Hours != null ? reportedDirective.OnLifelength.Hours.ToString() : ""; lastComplianceDays = reportedDirective.OnLifelength.Days != null ? reportedDirective.OnLifelength.Days.ToString() : ""; var unusedDays = reportedDirective.Unused?.Days.ToString() ?? ""; var unusedHours = reportedDirective.Unused?.Hours.ToString() ?? ""; var unusedCycles = reportedDirective.Unused?.Cycles.ToString() ?? ""; var overusedDays = reportedDirective.Overused?.Days.ToString() ?? ""; var overusedHours = reportedDirective.Overused?.Hours.ToString() ?? ""; var overusedCycles = reportedDirective.Overused?.Cycles.ToString() ?? ""; used.Substract(reportedDirective.OnLifelength); destinationDataSet.ItemsTable.AddItemsTableRow(lastComplianceDate, reportedDirective.NumGroup, reportedDirective.ParentCheck.Schedule ? "SCHEDULE" : "UNSCHEDULE", name, lastComplianceDays, lastComplianceHours, lastComplianceCycles, unusedDays, unusedHours, unusedCycles, overusedDays, overusedHours, overusedCycles, remarks, references); } }