/// <summary> /// Добавление директив в таблицу данных /// </summary> /// <param name="dataset">Таблица, в которую добавляются данные</param> protected virtual void AddDirectivesToDataSet(WorkscopeDataSet dataset) { foreach (BaseEntityObject t in _reportedDirectives) { AddDirectiveToDataset(t, dataset); } }
/// <summary> /// Добавление дополнительной информации /// </summary> /// <param name="destinationDateSet"></param> private void AddAdditionalDataToDataSet(WorkscopeDataSet 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, _dateAsOf, reportFooter, reportFooterPrepared, reportFooterLink); }
/// <summary> /// Построить источник данных (DataSet) для вывода в отчет /// </summary> /// <returns></returns> protected virtual DataSet GenerateDataSet() { WorkscopeDataSet dataset = new WorkscopeDataSet(); AddAircraftToDataset(dataset); AddDirectivesToDataSet(dataset); AddAdditionalDataToDataSet(dataset); AddForecastToDataSet(dataset); return(dataset); }
/// <summary> /// Добавляется элемент в таблицу данных /// </summary> /// <param name="destinationDataSet">Таблица, в которую добавляется элемент</param> private void AddAircraftToDataset(WorkscopeDataSet destinationDataSet) { if (_reportedAircraft == null) { return; } Lifelength 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 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 (_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"; } var lineNumber = _reportedAircraft.LineNumber; var variableNumber = _reportedAircraft.VariableNumber; destinationDataSet.AircraftDataTable.AddAircraftDataTableRow(serialNumber, manufactureDate, sinceNewHours, sinceNewCycles, registrationNumber, model, lineNumber, variableNumber, averageUtilizationHours, averageUtilizationCycles, averageUtilizationType); }
protected virtual void AddForecastToDataSet(WorkscopeDataSet 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="item">Добавлямая директива</param> /// <param name="destinationDataSet">Таблица, в которую добавляется элемент</param> private void AddDirectiveToDataset(BaseEntityObject item, WorkscopeDataSet destinationDataSet) { if (item == null) { return; } string status; string applicabilityString; string hiddenRemarks; string description; string itemString; string lastPerformanceString; string nextPerformanceString; string conditionString; string zone; string ataShort; string ataFull; string taskCardNumber; string programmString; string maintenanceCheckString; string remarks; string directiveType; double cost; double mh; string effectivityDate; string kits; string remainString; string firstPerformanceString; string repeatPerformanceToString; IBaseEntityObject parent; if (item is NextPerformance) { parent = ((NextPerformance)item).Parent; } else if (item is AbstractPerformanceRecord) { parent = ((AbstractPerformanceRecord)item).Parent; } else { parent = item; } if (parent == null) { return; } if (parent is Directive) { Directive directive = (Directive)parent; status = directive.Status.ToString(); lastPerformanceString = directive.LastPerformance != null?directive.LastPerformance.ToStrings() : ""; nextPerformanceString = directive.NextPerformance != null?directive.NextPerformance.ToStrings() : ""; conditionString = directive.Condition.ToString(); zone = ""; programmString = ""; maintenanceCheckString = "N/A"; remarks = ""; directiveType = directive.WorkType.ToString(); cost = directive.Cost; mh = directive.ManHours; effectivityDate = UsefulMethods.NormalizeDate(directive.Threshold.EffectiveDate); kits = directive.Kits != null && directive.Kits.Count > 0 ? directive.Kits.Count + " kits" : ""; firstPerformanceString = directive.Threshold.FirstPerformanceToStrings(); repeatPerformanceToString = directive.Threshold.RepeatPerformanceToStrings(); remainString = directive.Remains.ToString(); StringBuilder stringBuilder = new StringBuilder(); applicabilityString = directive.Applicability; hiddenRemarks = directive.HiddenRemarks; description = directive.Description; stringBuilder.AppendLine(directive.DirectiveType.ShortName); stringBuilder.AppendLine(directive.Title); if (!string.IsNullOrEmpty(directive.Paragraph)) { stringBuilder.AppendLine("\n§ " + directive.Paragraph); } AtaChapter ata = directive.ATAChapter; ataShort = ata.ShortName; ataFull = ata.ToString(); taskCardNumber = directive.EngineeringOrders; stringBuilder.AppendLine(directive.EngineeringOrders); itemString = stringBuilder.ToString(); } else if (parent is BaseComponent) { var bd = (BaseComponent)parent; var ata = bd.ATAChapter ?? (AtaChapter)GlobalObjects.CasEnvironment.GetDictionary <AtaChapter>().GetItemById(-1); ataShort = ata.ShortName; ataFull = ata.ToString(); applicabilityString = ""; hiddenRemarks = bd.HiddenRemarks; description = ""; status = ""; lastPerformanceString = ""; nextPerformanceString = bd.NextPerformance != null?bd.NextPerformance.ToStrings() : ""; conditionString = bd.Condition.ToString(); zone = ""; programmString = ""; maintenanceCheckString = "N/A"; remarks = bd.Remarks; directiveType = MaintenanceDirectiveTaskType.Discard.ToString(); cost = bd.Cost; mh = bd.ManHours; effectivityDate = UsefulMethods.NormalizeDate(bd.Threshold.EffectiveDate); taskCardNumber = ""; kits = bd.Kits != null && bd.Kits.Count > 0 ? bd.Kits.Count + " kits" : ""; firstPerformanceString = bd.Threshold.FirstPerformanceToStrings(); repeatPerformanceToString = bd.Threshold.RepeatPerformanceToStrings(); remainString = bd.Remains.ToString(); StringBuilder stringBuilder = new StringBuilder(); stringBuilder.AppendLine("Compnt."); stringBuilder.AppendLine(bd.PartNumber); stringBuilder.AppendLine(bd.Description); itemString = stringBuilder.ToString(); } else if (parent is Component) { var d = (Component)parent; var ata = d.ATAChapter ?? (AtaChapter)GlobalObjects.CasEnvironment.GetDictionary <AtaChapter>().GetItemById(-1); ataShort = ata.ShortName; ataFull = ata.ToString(); applicabilityString = ""; hiddenRemarks = d.HiddenRemarks; description = d.Description; status = ""; lastPerformanceString = ""; nextPerformanceString = d.NextPerformance != null?d.NextPerformance.ToStrings() : ""; conditionString = d.Condition.ToString(); zone = ""; programmString = ""; maintenanceCheckString = "N/A"; remarks = d.Remarks; directiveType = MaintenanceDirectiveTaskType.Discard.ToString(); cost = d.Cost; mh = d.ManHours; effectivityDate = UsefulMethods.NormalizeDate(d.Threshold.EffectiveDate); taskCardNumber = ""; kits = d.Kits != null && d.Kits.Count > 0 ? d.Kits.Count + " kits" : ""; firstPerformanceString = d.Threshold.FirstPerformanceToStrings(); repeatPerformanceToString = d.Threshold.RepeatPerformanceToStrings(); remainString = d.Remains.ToString(); StringBuilder stringBuilder = new StringBuilder(); stringBuilder.AppendLine("Compnt."); stringBuilder.AppendLine("P/N:" + d.PartNumber); stringBuilder.AppendLine("S/N:" + d.SerialNumber); itemString = stringBuilder.ToString(); } else if (parent is ComponentDirective) { var dd = (ComponentDirective)parent; var ata = dd.ParentComponent.ATAChapter ?? (AtaChapter)GlobalObjects.CasEnvironment.GetDictionary <AtaChapter>().GetItemById(-1); ataShort = ata.ShortName; ataFull = ata.ToString(); applicabilityString = ""; hiddenRemarks = dd.HiddenRemarks; description = ""; status = dd.Status.ToString(); lastPerformanceString = dd.LastPerformance != null?dd.LastPerformance.ToStrings() : ""; nextPerformanceString = dd.NextPerformance != null?dd.NextPerformance.ToStrings() : ""; conditionString = dd.Condition.ToString(); zone = ""; programmString = ""; maintenanceCheckString = "N/A"; remarks = dd.Remarks; directiveType = dd.DirectiveType.ToString(); cost = dd.Cost; mh = dd.ManHours; effectivityDate = UsefulMethods.NormalizeDate(dd.Threshold.EffectiveDate); taskCardNumber = ""; kits = dd.Kits != null && dd.Kits.Count > 0 ? dd.Kits.Count + " kits" : ""; firstPerformanceString = dd.Threshold.FirstPerformanceToStrings(); repeatPerformanceToString = dd.Threshold.RepeatPerformanceToStrings(); remainString = dd.Remains.ToString(); StringBuilder stringBuilder = new StringBuilder(); stringBuilder.AppendLine("Compnt."); if (dd.ParentComponent != null) { Component d = dd.ParentComponent; stringBuilder.AppendLine("P/N:" + d.PartNumber); stringBuilder.AppendLine("S/N:" + d.SerialNumber); description = d.Description; } itemString = stringBuilder.ToString(); } else if (parent is MaintenanceCheck) { return; //MaintenanceCheck mc = (MaintenanceCheck)parent; //AtaChapter ata = (AtaChapter)GlobalObjects.CasEnvironment.Dictionaries[typeof(AtaChapter)].GetItemById(-1); //ataShort = ata.ShortName; //ataFull = ata.ToString(); //applicabilityString = ""; //hiddenRemarks = ""; //description = ""; //status = ""; //lastPerformanceString = mc.LastPerformance != null ? mc.LastPerformance.ToStrings() : ""; //nextPerformanceString = mc.NextPerformance != null ? mc.NextPerformance.ToStrings() : ""; //conditionString = mc.Condition.ToString(); //zone = ""; //programmString = ""; //maintenanceCheckString = ""; //remarks = ""; //directiveType = ""; //cost = mc.Cost; //mh = mc.ManHours; //effectivityDate = UsefulMethods.NormalizeDate(mc.Threshold.EffectiveDate); //taskCardNumber = ""; //kits = mc.Kits != null && mc.Kits.Count > 0 ? mc.Kits.Count + " kits" : ""; //firstPerformanceString = mc.Threshold.FirstPerformanceToStrings(); //repeatPerformanceToString = mc.Threshold.RepeatPerformanceToStrings(); //remainString = mc.Remains.ToString(); //StringBuilder stringBuilder = new StringBuilder(); //stringBuilder.AppendLine("Check"); //stringBuilder.AppendLine(mc.ToString()); //itemString = stringBuilder.ToString(); } else if (parent is MaintenanceDirective) { MaintenanceDirective md = (MaintenanceDirective)parent; AtaChapter ata = md.ATAChapter; ataShort = ata.ShortName; ataFull = ata.ToString(); applicabilityString = md.Applicability; hiddenRemarks = md.HiddenRemarks; description = md.Description; status = md.Status.ToString(); lastPerformanceString = md.LastPerformance != null?md.LastPerformance.ToStrings() : ""; nextPerformanceString = md.NextPerformance != null?md.NextPerformance.ToStrings() : ""; conditionString = md.Condition?.ToString(); zone = md.Zone; programmString = md.Program.ToString(); if (md.MaintenanceCheck != null) { maintenanceCheckString = md.MaintenanceCheck.ToString(); } else if (_workPackage != null) { MaintenanceCheckBindTaskRecord record = _workPackage.MaintenanceCheckBindTaskRecords.FirstOrDefault(br => br.TaskType == SmartCoreType.MaintenanceDirective && br.TaskId == md.ItemId); if (record != null) { maintenanceCheckString = record.ParentCheck != null?record.ParentCheck.ToString() : "N/A"; } else { maintenanceCheckString = "N/A"; } } else { maintenanceCheckString = "N/A"; } remarks = md.Remarks; directiveType = md.WorkType.ToString(); cost = md.Cost; mh = md.ManHours; effectivityDate = UsefulMethods.NormalizeDate(md.Threshold.EffectiveDate); taskCardNumber = md.TaskCardNumber; kits = md.Kits != null && md.Kits.Count > 0 ? md.Kits.Count + " kits" : ""; firstPerformanceString = md.Threshold.FirstPerformanceToStrings(); repeatPerformanceToString = md.Threshold.RepeatPerformanceToStrings(); remainString = md.Remains.ToString(); StringBuilder stringBuilder = new StringBuilder(); stringBuilder.AppendLine("MPD"); stringBuilder.AppendLine(md.TaskNumberCheck); stringBuilder.AppendLine(md.TaskCardNumber); itemString = stringBuilder.ToString(); } else if (parent is NonRoutineJob) { NonRoutineJob job = (NonRoutineJob)parent; AtaChapter ata = job.ATAChapter; ataShort = ata.ShortName; ataFull = ata.ToString(); applicabilityString = ""; hiddenRemarks = ""; description = job.Description; status = ""; lastPerformanceString = ""; nextPerformanceString = ""; conditionString = job.Condition.ToString(); zone = ""; programmString = ""; maintenanceCheckString = "N/A"; remarks = ""; directiveType = ""; cost = job.Cost; mh = job.ManHours; effectivityDate = ""; taskCardNumber = ""; kits = job.Kits != null && job.Kits.Count > 0 ? job.Kits.Count + " kits" : ""; firstPerformanceString = ""; repeatPerformanceToString = ""; remainString = job.Remains.ToString(); StringBuilder stringBuilder = new StringBuilder(); stringBuilder.AppendLine("NRC"); stringBuilder.AppendLine(job.Title); itemString = stringBuilder.ToString(); } else { return; } destinationDataSet.ItemsTable.AddItemsTableRow(applicabilityString, remarks, hiddenRemarks, description, itemString, "", directiveType, status, effectivityDate, firstPerformanceString, lastPerformanceString, nextPerformanceString, remainString, conditionString, mh, cost, kits, zone, ataShort, ataFull, taskCardNumber, programmString, repeatPerformanceToString, "", maintenanceCheckString); }