/// <summary> /// Построить источник данных (DataSet) для вывода в отчет /// </summary> /// <returns></returns> protected virtual DataSet GenerateDataSet() { MaintenanceDirectivesDataSet dataset = new MaintenanceDirectivesDataSet(); AddAircraftToDataset(dataset); AddDirectivesToDataSet(dataset); AddAdditionalDataToDataSet(dataset); AddForecastToDataSet(dataset); return(dataset); }
/// <summary> /// Добавление дополнительной информации /// </summary> /// <param name="destinationDateSet"></param> private void AddAdditionalDataToDataSet(MaintenanceDirectivesDataSet destinationDateSet) { string firsttitle = "MPD Item"; string discriptiontitle = "Description"; string secondtitle = "Task Card №"; string reportFooter = new GlobalTermsProvider()["ReportFooter"].ToString(); string reportFooterPrepared = new GlobalTermsProvider()["ReportFooterPrepared"].ToString(); string reportFooterLink = new GlobalTermsProvider()["ProductWebsite"].ToString(); destinationDateSet.AdditionalDataTAble.AddAdditionalDataTAbleRow(_reportTitle, _operatorLogotype, _filterSelection, DateAsOf, firsttitle, secondtitle, discriptiontitle, reportFooter, reportFooterPrepared, reportFooterLink); }
/// <summary> /// Добавление директив в таблицу данных /// </summary> /// <param name="dataset">Таблица, в которую добавляются данные</param> protected virtual void AddDirectivesToDataSet(MaintenanceDirectivesDataSet dataset) { /* List<String> colors = new List<string>(); * for (int i = 0; i < HighlightCollection.Instance.Count; i++ ) * { * colors.Add(HighlightCollection.Instance[i].Color.R.ToString()+" "+ * HighlightCollection.Instance[i].Color.G.ToString()+" "+ * HighlightCollection.Instance[i].Color.B.ToString()); * } * MessageBox.Show(string.Join("\r\n",colors.ToArray()));*/ foreach (MaintenanceDirective t in _reportedDirectives) { AddDirectiveToDataset(t, dataset); } }
/// <summary> /// Добавляется элемент в таблицу данных /// </summary> /// <param name="destinationDataSet">Таблица, в которую добавляется элемент</param> private void AddAircraftToDataset(MaintenanceDirectivesDataSet 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.ShortName; var sinceNewCycles = reportAircraftLifeLenght.Cycles != null ? (int)reportAircraftLifeLenght.Cycles : 0; var registrationNumber = _reportedAircraft.RegistrationNumber; int averageUtilizationHours; int averageUtilizationCycles; string averageUtilizationType; if (_forecast == 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)_forecast.ForecastDatas[0].AverageUtilization.Hours; averageUtilizationCycles = (int)_forecast.ForecastDatas[0].AverageUtilization.Cycles; averageUtilizationType = _forecast.ForecastDatas[0].AverageUtilization.SelectedInterval == UtilizationInterval.Dayly ? "Day" : "Month"; } string lineNumber = _reportedAircraft.LineNumber; string variableNumber = _reportedAircraft.VariableNumber; destinationDataSet.AircraftDataTable.AddAircraftDataTableRow(serialNumber, manufactureDate, reportAircraftLifeLenght.ToHoursMinutesFormat(""), sinceNewCycles, registrationNumber, model, lineNumber, variableNumber, averageUtilizationHours, averageUtilizationCycles, averageUtilizationType); }
protected virtual void AddForecastToDataSet(MaintenanceDirectivesDataSet destinationDataSet) { ForecastData fd = _forecast != null?_forecast.GetForecastDataFrame() : null; double avgUtilizationCycles = fd != null ? fd.AverageUtilization.Cycles : 0; double avgUtilizationHours = fd != null ? fd.AverageUtilization.Hours : 0; string avgUtilizationType = fd != null ? fd.AverageUtilization.SelectedInterval.ToString() : ""; int forecastCycles = fd != null ? fd.ForecastLifelength.Cycles != null ? (int)fd.ForecastLifelength.Cycles : 0 : 0; int forecastHours = fd != null ? fd.ForecastLifelength.Hours != null ? (int)fd.ForecastLifelength.Hours : 0 : 0; int forecastDays = fd != null ? fd.ForecastLifelength.Days != null ? (int)fd.ForecastLifelength.Days : 0 : 0; string forecastDate = _forecast != null ? _forecast.ForecastDate.ToString(new GlobalTermsProvider()["DateFormat"].ToString()) : ""; destinationDataSet.ForecastTable.AddForecastTableRow(avgUtilizationCycles, avgUtilizationHours, avgUtilizationType, forecastCycles, forecastHours, forecastDays, forecastDate); }
/// <summary> /// Добавляется элемент в таблицу данных /// </summary> /// <param name="reportedDirective">Добавлямая директива</param> /// <param name="destinationDataSet">Таблица, в которую добавляется элемент</param> protected override void AddDirectiveToDataset(MaintenanceDirective reportedDirective, MaintenanceDirectivesDataSet destinationDataSet) { if (reportedDirective == null) { return; } string status = ""; Lifelength used = Lifelength.Null; //string remarks = reportedDirective.LastPerformance != null ? reportedDirective.LastPerformance.Remarks : reportedDirective.Remarks; string remarks = reportedDirective.Remarks; string directiveType = reportedDirective.WorkType.ShortName; double cost = reportedDirective.Cost; double mh = reportedDirective.ManHours; if (reportedDirective.Status == DirectiveStatus.Closed) { status = "C"; } if (reportedDirective.Status == DirectiveStatus.Open) { status = "O"; } if (reportedDirective.Status == DirectiveStatus.Repetative) { status = "R"; } if (reportedDirective.Status == DirectiveStatus.NotApplicable) { status = "N/A"; } string effectivityDate = UsefulMethods.NormalizeDate(reportedDirective.Threshold.EffectiveDate); string kits = ""; int num = 1; foreach (AccessoryRequired kit in reportedDirective.Kits) { kits += num + ": " + kit.PartNumber + "\n"; num++; } //расчет остатка с даты производства и с эффективной даты //расчет остатка от выполнения с даты производтсва string firstPerformanceString = ""; string repeatPerformanceToString = reportedDirective.Threshold.RepeatPerformanceToStrings(); if (reportedDirective.LastPerformance != null) { used.Add(Current); used.Substract(reportedDirective.LastPerformance.OnLifelength); if (!reportedDirective.Threshold.RepeatInterval.IsNullOrZero()) { used.Resemble(reportedDirective.Threshold.RepeatInterval); } else if (!reportedDirective.Threshold.FirstPerformanceSinceNew.IsNullOrZero()) { used.Resemble(reportedDirective.Threshold.FirstPerformanceSinceNew); } } else { firstPerformanceString = reportedDirective.Threshold.FirstPerformanceToStrings(); } destinationDataSet.ItemsTable.AddItemsTableRow(reportedDirective.Applicability, remarks, reportedDirective.HiddenRemarks, reportedDirective.Description.Replace("\r\n", " "), reportedDirective.TaskNumberCheck, reportedDirective.Access, directiveType, status, effectivityDate, firstPerformanceString, reportedDirective.LastPerformance != null ? reportedDirective.LastPerformance.ToStrings() : "", reportedDirective.NextPerformance != null ? reportedDirective.NextPerformance.ToStrings() : "", reportedDirective.Remains.ToStrings(), reportedDirective.Condition.ToString(), mh, cost, kits, reportedDirective.Zone, reportedDirective.ATAChapter != null ? reportedDirective.ATAChapter.ShortName : "", reportedDirective.ATAChapter != null ? reportedDirective.ATAChapter.FullName : "", reportedDirective.TaskCardNumber, reportedDirective.Program.ToString(), repeatPerformanceToString, used.ToStrings(), reportedDirective.MaintenanceCheck != null ? reportedDirective.MaintenanceCheck.ToString() : "N/A"); }