private void PrintButton_DisplayerRequested(object sender, ReferenceEventArgs e) { MonthlyUtilizationBuilder reportBuilder = new MonthlyUtilizationBuilder(currentAircraft); reportBuilder.Flights = monthlyUtilizationViewer.SortedFlights; e.TypeOfReflection = ReflectionTypes.DisplayInNew; e.DisplayerText = ((Aircraft)currentAircraft).RegistrationNumber + " Monthly Utilization Report"; e.RequestedEntity = new DispatcheredMonthlyUtilizationReport(reportBuilder); //e.Cancel = true; }
private void HeaderControlButtonPrintDisplayerRequested(object sender, ReferenceEventArgs e) { if (CurrentAircraft != null) { e.DisplayerText = CurrentAircraft.RegistrationNumber + ". " + ReportText + " Report"; } else { e.DisplayerText = ReportText + " Report"; e.Cancel = true; return; } e.TypeOfReflection = ReflectionTypes.DisplayInNew; if (sender == itemPrintReportMonthlyUtilization) { #if KAC MonthlyUtilizationBuilderKAC reportBuilder = new MonthlyUtilizationBuilderKAC(CurrentAircraft, dateTimePickerDateFrom.Value, dateTimePickerDateTo.Value, _initialDirectiveArray.TotalHoursClear, _initialDirectiveArray.TotalCyclesClear); #else MonthlyUtilizationBuilder reportBuilder = new MonthlyUtilizationBuilder(CurrentAircraft, dateTimePickerDateFrom.Value, dateTimePickerDateTo.Value, GlobalObjects.CasEnvironment.Calculator.GetTotalHours(_initialDirectiveArray), GlobalObjects.CasEnvironment.Calculator.GetTotalCycles(_initialDirectiveArray)); #endif reportBuilder.Flights = _initialDirectiveArray.OrderByDescending(f => f.FlightDate.AddMinutes(f.FlightTime.TotalMinutes)).ToList(); e.TypeOfReflection = ReflectionTypes.DisplayInNew; e.DisplayerText = CurrentAircraft.RegistrationNumber + " Monthly Utilization Report"; e.RequestedEntity = new ReportScreen(reportBuilder); GlobalObjects.AuditRepository.WriteReportAsync(GlobalObjects.CasEnvironment.IdentityUser, "MonthlyUtilizationListScreen (Monthly Utilization)"); } else if (sender == itemPrintReportOperationTime) { _workPackages = GlobalObjects.WorkPackageCore.GetWorkPackagesLite(CurrentAircraft, WorkPackageStatus.Closed, _maintenanceChecks.Select(m => (IDirective)m).ToList()); var records = _maintenanceChecks.SelectMany(mc => mc.PerformanceRecords) .Where(pr => pr.RecordDate.Date >= dateTimePickerDateFrom.Value.Date && pr.RecordDate.Date <= dateTimePickerDateTo.Value.Date) .ToList(); var lastCCheckRecord = _maintenanceChecks.SelectMany(mc => mc.PerformanceRecords) .Where(pr => pr.RecordDate.Date <= dateTimePickerDateTo.Value.Date) .OrderByDescending(pr => pr.RecordDate) .FirstOrDefault(); var maintenanceCheckRecordGroups = new List <MaintenanceCheckRecordGroup>(); foreach (MaintenanceCheckRecord record in records) { //Поиск коллекции групп, в которую входят группы с нужными критериями //по плану, группировка и основному ресурсу if (record.ParentCheck.Grouping) { MaintenanceCheckRecordGroup recordGroup = maintenanceCheckRecordGroups .FirstOrDefault(g => g.Schedule == record.ParentCheck.Schedule && g.Grouping == record.ParentCheck.Grouping && g.Resource == record.ParentCheck.Resource && g.GroupComplianceNum == record.NumGroup); if (recordGroup != null) { //Коллекция найдена //Поиск в ней группы чеков с нужным типом recordGroup.Records.Add(record); } else { //Коллекции с нужными критериями нет //Созадние и добавление recordGroup = new MaintenanceCheckRecordGroup(record.ParentCheck.Schedule, record.ParentCheck.Grouping, record.ParentCheck.Resource, record.NumGroup); recordGroup.Records.Add(record); maintenanceCheckRecordGroups.Add(recordGroup); } } else { MaintenanceCheckRecordGroup recordGroup = new MaintenanceCheckRecordGroup(record.ParentCheck.Schedule, record.ParentCheck.Grouping, record.ParentCheck.Resource); recordGroup.Records.Add(record); maintenanceCheckRecordGroups.Add(recordGroup); } } OperationTimeReportBuilder reportBuilder = new OperationTimeReportBuilder(CurrentAircraft, maintenanceCheckRecordGroups, GlobalObjects.ComponentCore.GetAicraftBaseComponents(CurrentAircraft.ItemId), lastCCheckRecord, _workPackages, dateTimePickerDateFrom.Value.Date, dateTimePickerDateTo.Value.Date); e.TypeOfReflection = ReflectionTypes.DisplayInNew; e.DisplayerText = CurrentAircraft.RegistrationNumber + " Operation Time Report"; e.RequestedEntity = new ReportScreen(reportBuilder); GlobalObjects.AuditRepository.WriteReportAsync(GlobalObjects.CasEnvironment.IdentityUser, "MonthlyUtilizationListScreen (Operation Time)"); } else { e.Cancel = true; } }
/// <summary> /// Создается отчет по ВС /// </summary> /// <param name="builder"></param> public DispatcheredMonthlyUtilizationReport(MonthlyUtilizationBuilder builder) : this() { reportBuilder = builder; crystalReportViewer1.ReportSource = reportBuilder.GenerateReport(); }