/// <summary> /// Получение/формирование параметров отчёта, DataSource (список сущностей для таблицы), пути файла и заголовка /// </summary> /// <inheritdoc /> public void AdditionalInitializeComponent() { _reportFile = Common.GetReportFilePath(ReportFileName); // Путь к файлу отчёта // Запрос параметров отчёта в отдельном окне const bool isPeriod = true; const bool isMounthOrYeath = false; const bool isWarehouse = false; const bool isWorkGuild = false; const bool isDate = true; const bool isDatePeriod = false; const bool isMonthYear = false; const bool isProduct = false; const bool isCompany = true; const bool isTypeProduct = false; const bool isFormaPayment = false; const bool isAbroad = false; const string message = "Выберите период выборки и компанию"; var parametersWindow = new ReportParametersWindow(isPeriod, isMounthOrYeath, isWarehouse, isWorkGuild, isDate, isDatePeriod, isMonthYear, isProduct, isCompany, isTypeProduct, isFormaPayment, isAbroad, message) { Owner = Common.GetOwnerWindow() }; parametersWindow.ShowDialog(); if (!parametersWindow.DialogResult.HasValue || parametersWindow.DialogResult != true) { return; } DateTime startDate; DateTime endDate; var period = parametersWindow.SelectedPeriod(); if (period != "p") { // Получение введённых пользователем параметров var nullableLoadDateTime = parametersWindow.SelectedDateTime(); if (nullableLoadDateTime == null) { const string errorMessage = "Дата не указана"; const MessageBoxButton buttons = MessageBoxButton.OK; const MessageBoxImage messageType = MessageBoxImage.Error; MessageBox.Show(errorMessage, PageLiterals.HeaderValidation, buttons, messageType); return; } var loadDateTime = (DateTime)nullableLoadDateTime; endDate = loadDateTime.AddDays(-1); startDate = period == "m" ? new DateTime(endDate.Year, endDate.Month, 1) : new DateTime(endDate.Year, 1, 1); } else { // Получение введённых пользователем параметров var nullableStartDateTime = parametersWindow.SelectedDateTimeStart(); var nullableEndDateTime = parametersWindow.SelectedDateTimeEnd(); if (nullableStartDateTime == null || nullableEndDateTime == null) { const string errorMessage = "Дата не указана"; const MessageBoxButton buttons = MessageBoxButton.OK; const MessageBoxImage messageType = MessageBoxImage.Error; MessageBox.Show(errorMessage, PageLiterals.HeaderValidation, buttons, messageType); return; } endDate = ((DateTime)nullableEndDateTime).AddDays(-1); startDate = (DateTime)nullableStartDateTime; } var company = parametersWindow.SelectedCompany(); // Формирование одиночных строковых параметров отчёта _reportParameters = new[] { new ReportParameter("StartDate", startDate.ToShortDateString()), new ReportParameter("EndDate", endDate.ToShortDateString()) }; try { var resultReportList = ShipmentByCompanyService.GetShipmentByCompany(startDate, endDate, company); const string dataSourceName = "ShipmentByCompany"; _reportDataSource = new ReportDataSource(dataSourceName, resultReportList); ReportViewer.Load += ReportViewer_Load; // Подписка на метод загрузки и отображения отчёта } catch (StorageException ex) { Common.ShowDetailExceptionMessage(ex); } }
/// <summary> /// Получение/формирование параметров отчёта, DataSource (список сущностей для таблицы), пути файла и заголовка /// </summary> /// <inheritdoc /> public void AdditionalInitializeComponent() { _reportFile = Common.GetReportFilePath(ReportFileName); // Путь к файлу отчёта // Запрос параметров отчёта в отдельном окне const bool isPeriod = false; const bool isMounthOrYeath = false; const bool isWarehouse = false; const bool isWorkGuild = false; const bool isDate = false; const bool isDatePeriod = true; const bool isMonthYear = false; const bool isProduct = false; const bool isCompany = false; const bool isTypeProduct = false; const bool isFormaPayment = false; const bool isAbroad = false; const string message = "Выберите дату"; var parametersWindow = new ReportParametersWindow(isPeriod, isMounthOrYeath, isWarehouse, isWorkGuild, isDate, isDatePeriod, isMonthYear, isProduct, isCompany, isTypeProduct, isFormaPayment, isAbroad, message) { Owner = Common.GetOwnerWindow() }; parametersWindow.ShowDialog(); if (!parametersWindow.DialogResult.HasValue || parametersWindow.DialogResult != true) { return; } // Получение введённых пользователем параметров var nullableStartDateTime = parametersWindow.SelectedDateTimeStart(); var nullableEndDateTime = parametersWindow.SelectedDateTimeEnd(); if (nullableStartDateTime == null || nullableEndDateTime == null) { const string errorMessage = "Дата не указана"; const MessageBoxButton buttons = MessageBoxButton.OK; const MessageBoxImage messageType = MessageBoxImage.Error; MessageBox.Show(errorMessage, PageLiterals.HeaderValidation, buttons, messageType); return; } var endDate = (DateTime)nullableEndDateTime; var startDate = (DateTime)nullableStartDateTime; try { var resultReportList = ShipmentInRussiaService.GetShipmentInRussia(startDate, endDate); var summRusPerriod = 0M; var summUsdPerriod = 0M; foreach (var item in resultReportList) { summRusPerriod += item.Cost * item.Count; summUsdPerriod += item.CostUsd * item.Count; } // Формирование одиночных строковых параметров отчёта _reportParameters = new[] { new ReportParameter("StartDate", startDate.ToShortDateString()), new ReportParameter("EndDate", endDate.ToShortDateString()), new ReportParameter("SummUsdYear", resultReportList.Count != 0 ? $"{resultReportList[0].YearSummaUsd:N2}" : "0"), new ReportParameter("SummRusYear", resultReportList.Count != 0 ? $"{resultReportList[0].YearSumma:N2}" : "0"), new ReportParameter("SummRusPeriod", $"{summRusPerriod:N2}"), new ReportParameter("SummUsdPeriod", $"{summUsdPerriod:N2}") }; const string dataSourceName = "ShipmentInRussia"; _reportDataSource = new ReportDataSource(dataSourceName, resultReportList); ReportViewer.Load += ReportViewer_Load; // Подписка на метод загрузки и отображения отчёта } catch (StorageException ex) { Common.ShowDetailExceptionMessage(ex); } }