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);
        }