protected override List <CustomCell> GetListViewSubItems(MaintenanceDirective item) { var subItems = new List <CustomCell>(); ////////////////////////////////////////////////////////////////////////////////////// // Определение последнего выполнения директивы и KitRequiered // ////////////////////////////////////////////////////////////////////////////////////// DateTime defaultDateTime = DateTimeExtend.GetCASMinDateTime(); DateTime lastComplianceDate = defaultDateTime; DateTime nextComplianceDate = defaultDateTime; Lifelength lastComplianceLifeLength = Lifelength.Zero; //Lifelength nextComplianceLifelength = Lifelength.Null; string lastPerformanceString, firstPerformanceString = "N/A"; Color tcnColor = radGridView1.ForeColor; Color kitColor = radGridView1.BackColor; AtaChapter ata = item.ATAChapter; if (item.LastPerformance != null) { lastComplianceDate = item.LastPerformance.RecordDate; lastComplianceLifeLength = item.LastPerformance.OnLifelength; } if (item.Threshold.FirstPerformanceSinceNew != null && !item.Threshold.FirstPerformanceSinceNew.IsNullOrZero()) { firstPerformanceString = "s/n: " + item.Threshold.FirstPerformanceSinceNew; } if (item.Threshold.FirstPerformanceSinceEffectiveDate != null && !item.Threshold.FirstPerformanceSinceEffectiveDate.IsNullOrZero()) { if (firstPerformanceString != "N/A") { firstPerformanceString += " or "; } else { firstPerformanceString = ""; } firstPerformanceString += "s/e.d: " + item.Threshold.FirstPerformanceSinceEffectiveDate; } if (item.NextPerformanceDate != null && item.NextPerformanceDate > defaultDateTime) { nextComplianceDate = Convert.ToDateTime(item.NextPerformanceDate); } var author = GlobalObjects.CasEnvironment.GetCorrector(item); string kitRequieredString = item.KitsApplicable ? item.Kits.Count + " EA" : "N/A"; string ndtString = item.NDTType.ShortName; string skillString = item.Skill.ShortName; string categoryString = item.Category.ShortName; string remarksString = item.Remarks; string hiddenRemarksString = item.HiddenRemarks; if (lastComplianceDate <= defaultDateTime) { lastPerformanceString = "N/A"; } else { lastPerformanceString = SmartCore.Auxiliary.Convert.GetDateFormat(lastComplianceDate) + " " + lastComplianceLifeLength; } string nextComplianceString = ((nextComplianceDate <= defaultDateTime) ? "" : SmartCore.Auxiliary.Convert.GetDateFormat(nextComplianceDate) + " ") + item.NextPerformanceSource; string nextRemainString = item.Remains != null && !item.Remains.IsNullOrZero() ? item.Remains.ToString() : "N/A"; var repeat = item.Threshold.RepeatInterval.ToString(); if (item.APUCalc) { firstPerformanceString = firstPerformanceString.Replace("FH", "AH"); repeat = repeat.Replace("FH", "AH"); } ////////////////////////////////////////////////////////////////////////////////////// string description = item.Description != "" ? item.Description : "N/A"; string app = item.IsApplicability ? $"APL {item.Applicability}" : $"N/A {item.Applicability}"; string taskNumber = item.MPDTaskNumber != "" ? item.MPDTaskNumber : "N/A"; string taskCheck = item.TaskNumberCheck != "" ? item.TaskNumberCheck : "N/A"; string maintManual = item.MaintenanceManual != "" ? item.MaintenanceManual : "N/A"; string mrb = item.MRB != "" ? item.MRB : "N/A"; string check = item.MaintenanceCheck != null ? item.MaintenanceCheck.Name : "N/A"; DirectiveStatus status = item.Status; if (item.TaskCardNumberFile == null) { tcnColor = Color.MediumVioletRed; } if (item.KitsApplicable && item.Kits.Count == 0) { kitColor = Color.FromArgb(Highlight.Red.Color); } subItems.Add(CreateRow(item.ParentAircraft?.ToString() ?? "", item.ParentAircraft)); subItems.Add(CreateRow(item.ScheduleItem, item.ScheduleItem)); subItems.Add(CreateRow(taskCheck, taskCheck)); subItems.Add(CreateRow(item.TaskCardNumber, item.TaskCardNumber, tcnColor)); subItems.Add(CreateRow(description, description)); subItems.Add(CreateRow(item.Program.ToString(), item.Program)); subItems.Add(CreateRow(item.ProgramIndicator.ShortName, item.ProgramIndicator)); subItems.Add(CreateRow(item.WorkType.ToString(), item.WorkType)); subItems.Add(CreateRow(check, check)); subItems.Add(CreateRow(item.APUCalc ? "Yes" : "No", item.APUCalc)); subItems.Add(CreateRow(firstPerformanceString, firstPerformanceString)); subItems.Add(CreateRow(repeat, item.Threshold.RepeatInterval)); subItems.Add(CreateRow(nextComplianceString, nextComplianceDate)); subItems.Add(CreateRow(nextRemainString, nextRemainString)); subItems.Add(CreateRow(lastPerformanceString, lastComplianceDate)); subItems.Add(CreateRow(item.Zone, item.Zone)); subItems.Add(CreateRow(item.Workarea, item.Workarea)); subItems.Add(CreateRow(item.Access, item.Access)); subItems.Add(CreateRow(status.ToString(), status)); subItems.Add(CreateRow(taskNumber, taskNumber)); subItems.Add(CreateRow(maintManual, maintManual)); subItems.Add(CreateRow(mrb, mrb)); subItems.Add(CreateRow(item.TaskCardNumber, item.TaskCardNumber)); subItems.Add(CreateRow(item.CriticalSystem.ToString(), item.CriticalSystem)); subItems.Add(CreateRow(ata.ToString(), ata)); subItems.Add(CreateRow(kitRequieredString, kitRequieredString, kitColor)); subItems.Add(CreateRow(ndtString, ndtString)); subItems.Add(CreateRow(skillString, skillString)); subItems.Add(CreateRow(categoryString, categoryString)); subItems.Add(CreateRow(item.Elapsed <= 0 ? "" : item.Elapsed.ToString(), item.Elapsed)); subItems.Add(CreateRow(item.ManHours <= 0 ? "" : item.ManHours.ToString(), item.ManHours)); subItems.Add(CreateRow(item.Cost <= 0 ? "" : item.Cost.ToString(), item.Cost)); subItems.Add(CreateRow(app, app)); subItems.Add(CreateRow(remarksString, remarksString)); subItems.Add(CreateRow(hiddenRemarksString, hiddenRemarksString)); subItems.Add(CreateRow(author, author)); return(subItems); }