/// <summary> /// Добавление директив в таблицу данных /// </summary> /// <param name="dataset">Таблица, в которую добавляются данные</param> protected virtual void AddDirectivesToDataSet(DefferedListDataSet dataset) { foreach (DeferredItem t in _reportedDirectives.OfType <DeferredItem>()) { AddDirectiveToDataset(t, dataset); } }
protected virtual void AddForecastToDataSet(DefferedListDataSet destinationDataSet) { if (_forecastData == null) { destinationDataSet.ForecastTable.AddForecastTableRow(0, 0, "", 0, 0, 0, ""); return; } double avgUtilizationCycles = _forecastData.AverageUtilization.Cycles; double avgUtilizationHours = _forecastData.AverageUtilization.Hours; string avgUtilizationType = _forecastData.AverageUtilization.SelectedInterval.ToString(); int forecastCycles = _forecastData.ForecastLifelength.Cycles != null ? (int)_forecastData.ForecastLifelength.Cycles : 0; int forecastHours = _forecastData.ForecastLifelength.Hours != null ? (int)_forecastData.ForecastLifelength.Hours : 0; int forecastDays = _forecastData.ForecastLifelength.Days != null ? (int)_forecastData.ForecastLifelength.Days : 0; string forecastDate = ""; if (_forecastData.SelectedForecastType == ForecastType.ForecastByDate) { forecastDate = SmartCore.Auxiliary.Convert.GetDateFormat(_forecastData.ForecastDate); } else if (_forecastData.SelectedForecastType == ForecastType.ForecastByPeriod) { forecastDate = SmartCore.Auxiliary.Convert.GetDateFormat(_forecastData.LowerLimit) + " - " + SmartCore.Auxiliary.Convert.GetDateFormat(_forecastData.ForecastDate); } else if (_forecastData.SelectedForecastType == ForecastType.ForecastByCheck) { if (_forecastData.NextPerformanceByDate) { forecastDate = _forecastData.NextPerformanceString; } else { forecastDate = $"{_forecastData.CheckName}. {SmartCore.Auxiliary.Convert.GetDateFormat(Convert.ToDateTime(_forecastData.NextPerformance.PerformanceDate))}"; } } destinationDataSet.ForecastTable.AddForecastTableRow(avgUtilizationCycles, avgUtilizationHours, avgUtilizationType, forecastCycles, forecastHours, forecastDays, forecastDate); }
/// <summary> /// Построить источник данных (DataSet) для вывода в отчет /// </summary> /// <returns></returns> protected override DataSet GenerateDataSet() { DefferedListDataSet dataset = new DefferedListDataSet(); AddAircraftToDataset(dataset); AddDirectivesToDataSet(dataset); AddAdditionalDataToDataSet(dataset); AddForecastToDataSet(dataset); return(dataset); }
/// <summary> /// Добавление дополнительной информации /// </summary> /// <param name="destinationDateSet"></param> private void AddAdditionalDataToDataSet(DefferedListDataSet destinationDateSet) { string model = _reportedBaseComponent != null && _reportedBaseComponent.Model != null ? _reportedBaseComponent.Model.ToString() : _reportedAircraft.Model.ToString(); 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, model, reportFooter, reportFooterPrepared, reportFooterLink); }
/// <summary> /// Добавляется элемент в таблицу данных /// </summary> /// <param name="directive">Добавлямая директива</param> /// <param name="destinationDataSet">Таблица, в которую добавляется элемент</param> private void AddDirectiveToDataset(DeferredItem directive, DefferedListDataSet destinationDataSet) { GlobalObjects.PerformanceCalculator.GetNextPerformance(directive); string category = directive.DeferredCategory != null?directive.DeferredCategory.ToString() : "N/A"; string discoveryDate = directive.Threshold.EffectiveDate.ToString(new GlobalTermsProvider()["DateFormat"].ToString()); string nextDate = directive.NextPerformanceDate != null ? ((DateTime)directive.NextPerformanceDate).ToString(new GlobalTermsProvider()["DateFormat"].ToString()) : (directive.LastPerformance != null ? directive.LastPerformance.RecordDate.ToString(new GlobalTermsProvider()["DateFormat"].ToString()) :""); string interval = directive.LastPerformance != null ? (directive.NextPerformanceDate != null ? directive.Threshold.RepeatInterval.Days.ToString() : directive.Threshold.FirstPerformanceSinceEffectiveDate.Days.ToString()) : directive.Threshold.FirstPerformanceSinceEffectiveDate.Days.ToString(); string lastCompliance = directive.LastPerformance != null ? directive.LastPerformance.RecordDate.ToString(new GlobalTermsProvider()["DateFormat"].ToString()) : ""; string status = ""; if (directive.Status == DirectiveStatus.Closed || directive.Status == DirectiveStatus.Open || directive.Status == DirectiveStatus.Repetative || directive.Status == DirectiveStatus.NotApplicable) { status = directive.Status.ShortName; } string condition = directive.Condition.ToString(); string remarks = directive.LastPerformance != null ? directive.LastPerformance.Remarks : ""; destinationDataSet.ItemsTable.AddItemsTableRow(directive.DeferredLogBookRef, directive.DeferredMelCdlItem, directive.Description, category, directive.DeferredExtention, condition, status, discoveryDate, interval, nextDate, lastCompliance, remarks); }
/// <summary> /// Добавляется элемент в таблицу данных /// </summary> /// <param name="destinationDataSet">Таблица, в которую добавляется элемент</param> private void AddAircraftToDataset(DefferedListDataSet 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 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, lineNumber, variableNumber, averageUtilizationHours, averageUtilizationCycles, averageUtilizationType); }