diff --git a/MotorPlant/MotorPlantBusinessLogic/MotorPlantBusinessLogic.csproj b/MotorPlant/MotorPlantBusinessLogic/MotorPlantBusinessLogic.csproj index 3616447..83215cb 100644 --- a/MotorPlant/MotorPlantBusinessLogic/MotorPlantBusinessLogic.csproj +++ b/MotorPlant/MotorPlantBusinessLogic/MotorPlantBusinessLogic.csproj @@ -10,12 +10,12 @@ - + - + diff --git a/MotorPlant/MotorPlantBusinessLogic/OfficePackage/AbstractSaveToWord.cs b/MotorPlant/MotorPlantBusinessLogic/OfficePackage/AbstractSaveToWord.cs index f4f676b..a091505 100644 --- a/MotorPlant/MotorPlantBusinessLogic/OfficePackage/AbstractSaveToWord.cs +++ b/MotorPlant/MotorPlantBusinessLogic/OfficePackage/AbstractSaveToWord.cs @@ -27,8 +27,11 @@ WordTextProperties { Bold = true, Size = "24", }) }, { CreateParagraph(new WordParagraph { - Texts = new List<(string, WordTextProperties)> { -(component.EngineName, new WordTextProperties { Size = "24", }) }, + Texts = new List<(string, WordTextProperties)> + { + (component.EngineName, new WordTextProperties { Size = "24", Bold = true}), + ("\t" + component.Price.ToString(), new WordTextProperties { Size = "24"}), + }, TextProperties = new WordTextProperties { Size = "24", diff --git a/MotorPlant/MotorPlantBusinessLogic/ReportLogic.cs b/MotorPlant/MotorPlantBusinessLogic/ReportLogic.cs index 79f6b02..0b33161 100644 --- a/MotorPlant/MotorPlantBusinessLogic/ReportLogic.cs +++ b/MotorPlant/MotorPlantBusinessLogic/ReportLogic.cs @@ -32,28 +32,12 @@ namespace MotorPlantBusinessLogic } public List GetEngineComponents() { - var components = _componentStorage.GetFullList(); - var Engines = _EngineStorage.GetFullList(); - var list = new List(); - foreach (var Engine in Engines) + return _EngineStorage.GetFullList().Select(x => new ReportEngineComponentViewModel { - var record = new ReportEngineComponentViewModel - { - EngineName = Engine.EngineName, - Components = new List<(string Component, int Count)>(), - TotalCount = 0 - }; - foreach (var component in components) - { - if (Engine.EngineComponents.ContainsKey(component.Id)) - { - record.Components.Add(new(component.ComponentName, Engine.EngineComponents[component.Id].Item2)); - record.TotalCount += Engine.EngineComponents[component.Id].Item2; - } - } - list.Add(record); - } - return list; + EngineName = x.EngineName, + Components = x.EngineComponents.Select(x => (x.Value.Item1.ComponentName, x.Value.Item2)).ToList(), + TotalCount = x.EngineComponents.Select(x => x.Value.Item2).Sum() + }).ToList(); } public List GetOrders(ReportBindingModel model) { @@ -77,7 +61,7 @@ namespace MotorPlantBusinessLogic _saveToWord.CreateDoc(new WordInfo { FileName = model.FileName, - Title = "Список ЖИ", + Title = "Список двигателей", Engines = _EngineStorage.GetFullList() }); } @@ -86,7 +70,7 @@ namespace MotorPlantBusinessLogic _saveToExcel.CreateReport(new ExcelInfo { FileName = model.FileName, - Title = "Список ЖИ", + Title = "Список компонентов", EngineComponents = GetEngineComponents() }); } diff --git a/MotorPlant/MotorPlantContracts/ViewModels/ReportOrdersViewModel.cs b/MotorPlant/MotorPlantContracts/ViewModels/ReportOrdersViewModel.cs index 47cd7b7..46ac62f 100644 --- a/MotorPlant/MotorPlantContracts/ViewModels/ReportOrdersViewModel.cs +++ b/MotorPlant/MotorPlantContracts/ViewModels/ReportOrdersViewModel.cs @@ -12,6 +12,6 @@ namespace MotorPlantContracts.ViewModels public DateTime DateCreate { get; set; } public string EngineName { get; set; } = string.Empty; public double Sum { get; set; } - public string Status { get; set; } = string.Empty; + public string Status { get; set; } } } diff --git a/MotorPlant/MotorPlantView/FormMain.Designer.cs b/MotorPlant/MotorPlantView/FormMain.Designer.cs index 9fa23ac..a9cdc92 100644 --- a/MotorPlant/MotorPlantView/FormMain.Designer.cs +++ b/MotorPlant/MotorPlantView/FormMain.Designer.cs @@ -32,10 +32,10 @@ toolStripDropDownButton1 = new ToolStripDropDownButton(); КомпонентыToolStripMenuItem = new ToolStripMenuItem(); ДвигателиToolStripMenuItem = new ToolStripMenuItem(); - отчетыToolStripMenuItem = new ToolStripMenuItem(); - списокКомпонентовToolStripMenuItem = new ToolStripMenuItem(); - компонентыПоДвигателямToolStripMenuItem = new ToolStripMenuItem(); - списокЗаказовToolStripMenuItem = new ToolStripMenuItem(); + ReportsToolStripMenuItem = new ToolStripMenuItem(); + ListComponentsToolStripMenuItem = new ToolStripMenuItem(); + EngineComponentsToolStripMenuItem = new ToolStripMenuItem(); + ListOrdersToolStripMenuItem = new ToolStripMenuItem(); buttonCreateOrder = new Button(); buttonTakeOrderInWork = new Button(); buttonOrderReady = new Button(); @@ -49,7 +49,7 @@ // toolStrip1 // toolStrip1.ImageScalingSize = new Size(20, 20); - toolStrip1.Items.AddRange(new ToolStripItem[] { toolStripDropDownButton1, отчетыToolStripMenuItem }); + toolStrip1.Items.AddRange(new ToolStripItem[] { toolStripDropDownButton1, ReportsToolStripMenuItem }); toolStrip1.Location = new Point(0, 0); toolStrip1.Name = "toolStrip1"; toolStrip1.Size = new Size(969, 25); @@ -68,41 +68,44 @@ // КомпонентыToolStripMenuItem // КомпонентыToolStripMenuItem.Name = "КомпонентыToolStripMenuItem"; - КомпонентыToolStripMenuItem.Size = new Size(145, 22); + КомпонентыToolStripMenuItem.Size = new Size(180, 22); КомпонентыToolStripMenuItem.Text = "Компоненты"; КомпонентыToolStripMenuItem.Click += КомпонентыToolStripMenuItem_Click; // // ДвигателиToolStripMenuItem // ДвигателиToolStripMenuItem.Name = "ДвигателиToolStripMenuItem"; - ДвигателиToolStripMenuItem.Size = new Size(145, 22); + ДвигателиToolStripMenuItem.Size = new Size(180, 22); ДвигателиToolStripMenuItem.Text = "Двигатели"; ДвигателиToolStripMenuItem.Click += ИзделияToolStripMenuItem_Click; // - // отчетыToolStripMenuItem + // ReportsToolStripMenuItem // - отчетыToolStripMenuItem.DropDownItems.AddRange(new ToolStripItem[] { списокКомпонентовToolStripMenuItem, компонентыПоДвигателямToolStripMenuItem, списокЗаказовToolStripMenuItem }); - отчетыToolStripMenuItem.Name = "отчетыToolStripMenuItem"; - отчетыToolStripMenuItem.Size = new Size(60, 25); - отчетыToolStripMenuItem.Text = "Отчеты"; + ReportsToolStripMenuItem.DropDownItems.AddRange(new ToolStripItem[] { ListComponentsToolStripMenuItem, EngineComponentsToolStripMenuItem, ListOrdersToolStripMenuItem }); + ReportsToolStripMenuItem.Name = "ReportsToolStripMenuItem"; + ReportsToolStripMenuItem.Size = new Size(60, 25); + ReportsToolStripMenuItem.Text = "Отчеты"; // - // списокКомпонентовToolStripMenuItem + // ListComponentsToolStripMenuItem // - списокКомпонентовToolStripMenuItem.Name = "списокКомпонентовToolStripMenuItem"; - списокКомпонентовToolStripMenuItem.Size = new Size(228, 22); - списокКомпонентовToolStripMenuItem.Text = "Список компонентов"; + ListComponentsToolStripMenuItem.Name = "ListComponentsToolStripMenuItem"; + ListComponentsToolStripMenuItem.Size = new Size(228, 22); + ListComponentsToolStripMenuItem.Text = "Список компонентов"; + ListComponentsToolStripMenuItem.Click += списокКомпонентовToolStripMenuItem_Click; // - // компонентыПоДвигателямToolStripMenuItem + // EngineComponentsToolStripMenuItem // - компонентыПоДвигателямToolStripMenuItem.Name = "компонентыПоДвигателямToolStripMenuItem"; - компонентыПоДвигателямToolStripMenuItem.Size = new Size(228, 22); - компонентыПоДвигателямToolStripMenuItem.Text = "Компоненты по двигателям"; + EngineComponentsToolStripMenuItem.Name = "EngineComponentsToolStripMenuItem"; + EngineComponentsToolStripMenuItem.Size = new Size(228, 22); + EngineComponentsToolStripMenuItem.Text = "Компоненты по двигателям"; + EngineComponentsToolStripMenuItem.Click += компонентыПоДвигателямToolStripMenuItem_Click; // - // списокЗаказовToolStripMenuItem + // ListOrdersToolStripMenuItem // - списокЗаказовToolStripMenuItem.Name = "списокЗаказовToolStripMenuItem"; - списокЗаказовToolStripMenuItem.Size = new Size(228, 22); - списокЗаказовToolStripMenuItem.Text = "Список заказов"; + ListOrdersToolStripMenuItem.Name = "ListOrdersToolStripMenuItem"; + ListOrdersToolStripMenuItem.Size = new Size(228, 22); + ListOrdersToolStripMenuItem.Text = "Список заказов"; + ListOrdersToolStripMenuItem.Click += списокЗаказовToolStripMenuItem_Click; // // buttonCreateOrder // @@ -200,9 +203,9 @@ private ToolStripDropDownButton toolStripDropDownButton1; private ToolStripMenuItem КомпонентыToolStripMenuItem; private ToolStripMenuItem ДвигателиToolStripMenuItem; - private ToolStripMenuItem отчетыToolStripMenuItem; - private ToolStripMenuItem списокКомпонентовToolStripMenuItem; - private ToolStripMenuItem компонентыПоДвигателямToolStripMenuItem; - private ToolStripMenuItem списокЗаказовToolStripMenuItem; + private ToolStripMenuItem ReportsToolStripMenuItem; + private ToolStripMenuItem ListComponentsToolStripMenuItem; + private ToolStripMenuItem EngineComponentsToolStripMenuItem; + private ToolStripMenuItem ListOrdersToolStripMenuItem; } } \ No newline at end of file diff --git a/MotorPlant/MotorPlantView/FormReportEngineComponents.Designer.cs b/MotorPlant/MotorPlantView/FormReportEngineComponents.Designer.cs index 8bdda7e..b5c0dbe 100644 --- a/MotorPlant/MotorPlantView/FormReportEngineComponents.Designer.cs +++ b/MotorPlant/MotorPlantView/FormReportEngineComponents.Designer.cs @@ -28,69 +28,70 @@ /// private void InitializeComponent() { - SaveButton = new Button(); + ButtonSaveToExcel = new Button(); dataGridView = new DataGridView(); - ComponentColumn = new DataGridViewTextBoxColumn(); - EngineColumn = new DataGridViewTextBoxColumn(); - CountColumn = new DataGridViewTextBoxColumn(); + Component = new DataGridViewTextBoxColumn(); + Engine = new DataGridViewTextBoxColumn(); + Count = new DataGridViewTextBoxColumn(); ((System.ComponentModel.ISupportInitialize)dataGridView).BeginInit(); SuspendLayout(); // - // SaveButton + // buttonSaveToExcel // - SaveButton.Location = new Point(12, 12); - SaveButton.Name = "SaveButton"; - SaveButton.Size = new Size(128, 23); - SaveButton.TabIndex = 0; - SaveButton.Text = "Сохранить в Excel"; - SaveButton.UseVisualStyleBackColor = true; + ButtonSaveToExcel.Location = new Point(12, 12); + ButtonSaveToExcel.Name = "ButtonSaveToExcel"; + ButtonSaveToExcel.Size = new Size(150, 30); + ButtonSaveToExcel.TabIndex = 0; + ButtonSaveToExcel.Text = "Сохранить в Excel"; + ButtonSaveToExcel.UseVisualStyleBackColor = true; + ButtonSaveToExcel.Click += ButtonSaveToExcel_Click; // // dataGridView // + dataGridView.BackgroundColor = SystemColors.ButtonHighlight; dataGridView.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize; - dataGridView.Columns.AddRange(new DataGridViewColumn[] { ComponentColumn, EngineColumn, CountColumn }); - dataGridView.Location = new Point(12, 46); + dataGridView.Columns.AddRange(new DataGridViewColumn[] { Component, Engine, Count }); + dataGridView.Location = new Point(12, 48); dataGridView.Name = "dataGridView"; - dataGridView.Size = new Size(570, 392); + dataGridView.RowTemplate.Height = 25; + dataGridView.Size = new Size(560, 501); dataGridView.TabIndex = 1; // - // ComponentColumn + // Component // - ComponentColumn.HeaderText = "Компонент"; - ComponentColumn.Name = "ComponentColumn"; - ComponentColumn.Width = 200; + Component.HeaderText = "Компонент"; + Component.Name = "Component"; // - // EngineColumn + // Computer // - EngineColumn.HeaderText = "Изделие"; - EngineColumn.Name = "EngineColumn"; - EngineColumn.Width = 200; + Engine.HeaderText = "Двигатель"; + Engine.Name = "Engine"; // - // CountColumn + // Count // - CountColumn.HeaderText = "Количество"; - CountColumn.Name = "CountColumn"; - CountColumn.Width = 200; + Count.HeaderText = "Количество"; + Count.Name = "Count"; // - // FormReportEngineComponents + // FormReportComputerComponents // AutoScaleDimensions = new SizeF(7F, 15F); AutoScaleMode = AutoScaleMode.Font; - ClientSize = new Size(594, 450); + ClientSize = new Size(584, 561); Controls.Add(dataGridView); - Controls.Add(SaveButton); + Controls.Add(ButtonSaveToExcel); Name = "FormReportEngineComponents"; Text = "Компоненты по изделиям"; + Load += FormReportEngineComponents_Load; ((System.ComponentModel.ISupportInitialize)dataGridView).EndInit(); ResumeLayout(false); } #endregion - private Button SaveButton; + private Button ButtonSaveToExcel; private DataGridView dataGridView; - private DataGridViewTextBoxColumn ComponentColumn; - private DataGridViewTextBoxColumn EngineColumn; - private DataGridViewTextBoxColumn CountColumn; + private DataGridViewTextBoxColumn Component; + private DataGridViewTextBoxColumn Engine; + private DataGridViewTextBoxColumn Count; } } \ No newline at end of file diff --git a/MotorPlant/MotorPlantView/FormReportEngineComponents.cs b/MotorPlant/MotorPlantView/FormReportEngineComponents.cs index fa69417..4f59435 100644 --- a/MotorPlant/MotorPlantView/FormReportEngineComponents.cs +++ b/MotorPlant/MotorPlantView/FormReportEngineComponents.cs @@ -17,14 +17,12 @@ namespace MotorPlantView.Forms { private readonly ILogger _logger; private readonly IReportLogic _logic; - public FormReportEngineComponents(ILogger logger, IReportLogic logic) { InitializeComponent(); _logger = logger; _logic = logic; } - private void FormReportEngineComponents_Load(object sender, EventArgs e) { try @@ -35,12 +33,27 @@ namespace MotorPlantView.Forms dataGridView.Rows.Clear(); foreach (var elem in dict) { - dataGridView.Rows.Add(new object[] { elem.EngineName, "", "" }); + dataGridView.Rows.Add(new object[] + { + elem.EngineName, + "", + "" + }); foreach (var listElem in elem.Components) { - dataGridView.Rows.Add(new object[] { "", listElem.Item1, listElem.Item2 }); + dataGridView.Rows.Add(new object[] + { + "", + listElem.Item1, + listElem.Item2, + }); } - dataGridView.Rows.Add(new object[] { "Итого", "", elem.TotalCount }); + dataGridView.Rows.Add(new object[] + { + "Итого:", + "", + elem.TotalCount + }); dataGridView.Rows.Add(Array.Empty()); } } @@ -52,17 +65,19 @@ namespace MotorPlantView.Forms MessageBox.Show(ex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); } } - private void ButtonSaveToExcel_Click(object sender, EventArgs e) { - using var dialog = new SaveFileDialog { Filter = "xlsx|*.xlsx" }; + using var dialog = new SaveFileDialog + { + Filter = "xlsx|*.xlsx" + }; if (dialog.ShowDialog() == DialogResult.OK) { try { _logic.SaveEngineComponentToExcelFile(new ReportBindingModel { - FileName = dialog.FileName + FileName = dialog.FileName, }); _logger.LogInformation("Сохранение списка изделий по компонентам"); MessageBox.Show("Выполнено", "Успех", MessageBoxButtons.OK, MessageBoxIcon.Information); diff --git a/MotorPlant/MotorPlantView/FormReportEngineComponents.resx b/MotorPlant/MotorPlantView/FormReportEngineComponents.resx index b33b3be..c75e919 100644 --- a/MotorPlant/MotorPlantView/FormReportEngineComponents.resx +++ b/MotorPlant/MotorPlantView/FormReportEngineComponents.resx @@ -126,13 +126,4 @@ True - - True - - - True - - - True - \ No newline at end of file diff --git a/MotorPlant/MotorPlantView/FormReportOrders.Designer.cs b/MotorPlant/MotorPlantView/FormReportOrders.Designer.cs index 03c5cd4..53f8bf8 100644 --- a/MotorPlant/MotorPlantView/FormReportOrders.Designer.cs +++ b/MotorPlant/MotorPlantView/FormReportOrders.Designer.cs @@ -28,110 +28,102 @@ /// private void InitializeComponent() { - this.panel = new System.Windows.Forms.Panel(); - this.buttonCreateToPdf = new System.Windows.Forms.Button(); - this.buttonCreateReport = new System.Windows.Forms.Button(); - this.label2 = new System.Windows.Forms.Label(); - this.label1 = new System.Windows.Forms.Label(); - this.dateTimePickerEnd = new System.Windows.Forms.DateTimePicker(); - this.dateTimePickerStart = new System.Windows.Forms.DateTimePicker(); - this.panel.SuspendLayout(); - this.SuspendLayout(); + panel = new Panel(); + buttonToPdf = new Button(); + buttonMake = new Button(); + dateTimePickerTo = new DateTimePicker(); + labelTo = new Label(); + dateTimePickerFrom = new DateTimePicker(); + labelFrom = new Label(); + panel.SuspendLayout(); + SuspendLayout(); // // panel // - this.panel.Controls.Add(this.buttonCreateToPdf); - this.panel.Controls.Add(this.buttonCreateReport); - this.panel.Controls.Add(this.label2); - this.panel.Controls.Add(this.label1); - this.panel.Controls.Add(this.dateTimePickerEnd); - this.panel.Controls.Add(this.dateTimePickerStart); - this.panel.Dock = System.Windows.Forms.DockStyle.Top; - this.panel.Location = new System.Drawing.Point(0, 0); - this.panel.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2); - this.panel.Name = "panel"; - this.panel.Size = new System.Drawing.Size(861, 56); - this.panel.TabIndex = 0; + panel.Controls.Add(buttonToPdf); + panel.Controls.Add(buttonMake); + panel.Controls.Add(dateTimePickerTo); + panel.Controls.Add(labelTo); + panel.Controls.Add(dateTimePickerFrom); + panel.Controls.Add(labelFrom); + panel.Location = new Point(0, 0); + panel.Name = "panel"; + panel.Size = new Size(785, 40); + panel.TabIndex = 0; // - // buttonCreateToPdf + // buttonToPdf // - this.buttonCreateToPdf.Location = new System.Drawing.Point(684, 29); - this.buttonCreateToPdf.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2); - this.buttonCreateToPdf.Name = "buttonCreateToPdf"; - this.buttonCreateToPdf.Size = new System.Drawing.Size(166, 23); - this.buttonCreateToPdf.TabIndex = 5; - this.buttonCreateToPdf.Text = "PDF"; - this.buttonCreateToPdf.UseVisualStyleBackColor = true; - this.buttonCreateToPdf.Click += new System.EventHandler(this.buttonCreateToPdf_Click); + buttonToPdf.Location = new Point(580, 5); + buttonToPdf.Name = "buttonToPdf"; + buttonToPdf.Size = new Size(100, 23); + buttonToPdf.TabIndex = 5; + buttonToPdf.Text = "В Pdf"; + buttonToPdf.UseVisualStyleBackColor = true; + buttonToPdf.Click += buttonToPdf_Click; // - // buttonCreateReport + // buttonMake // - this.buttonCreateReport.Location = new System.Drawing.Point(485, 29); - this.buttonCreateReport.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2); - this.buttonCreateReport.Name = "buttonCreateReport"; - this.buttonCreateReport.Size = new System.Drawing.Size(166, 23); - this.buttonCreateReport.TabIndex = 4; - this.buttonCreateReport.Text = "Сформировать"; - this.buttonCreateReport.UseVisualStyleBackColor = true; - this.buttonCreateReport.Click += new System.EventHandler(this.buttonCreateReport_Click); + buttonMake.Location = new Point(474, 5); + buttonMake.Name = "buttonMake"; + buttonMake.Size = new Size(100, 23); + buttonMake.TabIndex = 4; + buttonMake.Text = "Сформировать"; + buttonMake.UseVisualStyleBackColor = true; + buttonMake.Click += buttonMake_Click; // - // label2 + // dateTimePickerTo // - this.label2.AutoSize = true; - this.label2.Location = new System.Drawing.Point(323, 7); - this.label2.Name = "label2"; - this.label2.Size = new System.Drawing.Size(44, 15); - this.label2.TabIndex = 3; - this.label2.Text = "Конец:"; + dateTimePickerTo.Location = new Point(268, 3); + dateTimePickerTo.Name = "dateTimePickerTo"; + dateTimePickerTo.Size = new Size(200, 23); + dateTimePickerTo.TabIndex = 3; // - // label1 + // labelTo // - this.label1.AutoSize = true; - this.label1.Location = new System.Drawing.Point(76, 4); - this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(52, 15); - this.label1.TabIndex = 2; - this.label1.Text = "Начало:"; + labelTo.AutoSize = true; + labelTo.Location = new Point(239, 9); + labelTo.Name = "labelTo"; + labelTo.Size = new Size(23, 15); + labelTo.TabIndex = 2; + labelTo.Text = "По"; // - // dateTimePickerEnd + // dateTimePickerFrom // - this.dateTimePickerEnd.Location = new System.Drawing.Point(269, 29); - this.dateTimePickerEnd.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2); - this.dateTimePickerEnd.Name = "dateTimePickerEnd"; - this.dateTimePickerEnd.Size = new System.Drawing.Size(164, 23); - this.dateTimePickerEnd.TabIndex = 1; + dateTimePickerFrom.Location = new Point(33, 3); + dateTimePickerFrom.Name = "dateTimePickerFrom"; + dateTimePickerFrom.Size = new Size(200, 23); + dateTimePickerFrom.TabIndex = 1; // - // dateTimePickerStart + // labelFrom // - this.dateTimePickerStart.Location = new System.Drawing.Point(31, 29); - this.dateTimePickerStart.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2); - this.dateTimePickerStart.Name = "dateTimePickerStart"; - this.dateTimePickerStart.Size = new System.Drawing.Size(164, 23); - this.dateTimePickerStart.TabIndex = 0; + labelFrom.AutoSize = true; + labelFrom.Location = new Point(12, 9); + labelFrom.Name = "labelFrom"; + labelFrom.Size = new Size(15, 15); + labelFrom.TabIndex = 1; + labelFrom.Text = "C"; // // FormReportOrders // - this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(861, 338); - this.Controls.Add(this.panel); - this.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2); - this.Name = "FormReportOrders"; - this.Text = "Заказы"; - this.panel.ResumeLayout(false); - this.panel.PerformLayout(); - this.ResumeLayout(false); - + AutoScaleDimensions = new SizeF(7F, 15F); + AutoScaleMode = AutoScaleMode.Font; + ClientSize = new Size(784, 361); + Controls.Add(panel); + Name = "FormReportOrders"; + Text = "Заказы"; + panel.ResumeLayout(false); + panel.PerformLayout(); + ResumeLayout(false); } #endregion private Panel panel; - private DateTimePicker dateTimePickerEnd; - private DateTimePicker dateTimePickerStart; - private Button buttonCreateToPdf; - private Button buttonCreateReport; - private Label label2; - private Label label1; + private Label labelFrom; + private Button buttonToPdf; + private Button buttonMake; + private DateTimePicker dateTimePickerTo; + private Label labelTo; + private DateTimePicker dateTimePickerFrom; } } \ No newline at end of file diff --git a/MotorPlant/MotorPlantView/FormReportOrders.cs b/MotorPlant/MotorPlantView/FormReportOrders.cs index 71af91a..a5b3622 100644 --- a/MotorPlant/MotorPlantView/FormReportOrders.cs +++ b/MotorPlant/MotorPlantView/FormReportOrders.cs @@ -19,7 +19,6 @@ namespace MotorPlantView.Forms private readonly ReportViewer reportViewer; private readonly ILogger _logger; private readonly IReportLogic _logic; - public FormReportOrders(ILogger logger, IReportLogic logic) { InitializeComponent(); @@ -29,15 +28,15 @@ namespace MotorPlantView.Forms { Dock = DockStyle.Fill }; - reportViewer.LocalReport.LoadReportDefinition(new FileStream("C:\\Users\\goldfest\\Desktop\\EngineCompany\\PrecastConcretePlant\\PrecastConcretePlantView\\ReportOrders.rdlc", FileMode.Open)); + var path = Directory.GetParent(Directory.GetCurrentDirectory())?.Parent?.Parent?.ToString() + "\\ReportOrders.rdlc"; + reportViewer.LocalReport.LoadReportDefinition(new FileStream(path, FileMode.Open)); Controls.Clear(); - Controls.Add(reportViewer); Controls.Add(panel); + Controls.Add(reportViewer); } - - private void buttonCreateReport_Click(object sender, EventArgs e) + private void buttonMake_Click(object sender, EventArgs e) { - if (dateTimePickerStart.Value.Date >= dateTimePickerEnd.Value.Date) + if (dateTimePickerFrom.Value.Date >= dateTimePickerTo.Value.Date) { MessageBox.Show("Дата начала должна быть меньше даты окончания", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); return; @@ -46,29 +45,35 @@ namespace MotorPlantView.Forms { var dataSource = _logic.GetOrders(new ReportBindingModel { - DateFrom = dateTimePickerStart.Value, - DateTo = dateTimePickerEnd.Value + DateFrom = dateTimePickerFrom.Value, + DateTo = dateTimePickerTo.Value }); + double sum = 0; + foreach (var order in dataSource) + { + sum += order.Sum; + } var source = new ReportDataSource("DataSetOrders", dataSource); reportViewer.LocalReport.DataSources.Clear(); reportViewer.LocalReport.DataSources.Add(source); - var parameters = new[] { new ReportParameter("ReportParameterPeriod", $"c{dateTimePickerStart.Value.ToShortDateString()} по {dateTimePickerEnd.Value.ToShortDateString()}") }; + var parameters = new[] { new ReportParameter("ReportParameterPeriod", + $"c {dateTimePickerFrom.Value.ToShortDateString()} по {dateTimePickerTo.Value.ToShortDateString()}"), + new ReportParameter("ReportParameterSum", sum.ToString()) + }; reportViewer.LocalReport.SetParameters(parameters); reportViewer.RefreshReport(); - _logger.LogInformation("Загрузка списка заказов на период {From}-{ To}", dateTimePickerStart.Value.ToShortDateString(), dateTimePickerEnd.Value.ToShortDateString()); + _logger.LogInformation("Загрузка списка заказов на период {From}-{ To}", + dateTimePickerFrom.Value.ToShortDateString(), dateTimePickerTo.Value.ToShortDateString()); } catch (Exception ex) { _logger.LogError(ex, "Ошибка загрузки списка заказов на период"); - MessageBox.Show(ex.Message, "Ошибка", MessageBoxButtons.OK, - MessageBoxIcon.Error); + MessageBox.Show(ex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); } - } - - private void buttonCreateToPdf_Click(object sender, EventArgs e) + private void buttonToPdf_Click(object sender, EventArgs e) { - if (dateTimePickerStart.Value.Date >= dateTimePickerEnd.Value.Date) + if (dateTimePickerFrom.Value.Date >= dateTimePickerTo.Value.Date) { MessageBox.Show("Дата начала должна быть меньше даты окончания", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); return; @@ -84,10 +89,11 @@ namespace MotorPlantView.Forms _logic.SaveOrdersToPdfFile(new ReportBindingModel { FileName = dialog.FileName, - DateFrom = dateTimePickerStart.Value, - DateTo = dateTimePickerEnd.Value + DateFrom = dateTimePickerFrom.Value, + DateTo = dateTimePickerTo.Value }); - _logger.LogInformation("Сохранение списка заказов на период { From} -{ To}", dateTimePickerStart.Value.ToShortDateString(), dateTimePickerEnd.Value.ToShortDateString()); + _logger.LogInformation("Сохранение списка заказов на период { From} -{ To}", + dateTimePickerFrom.Value.ToShortDateString(), dateTimePickerTo.Value.ToShortDateString()); MessageBox.Show("Выполнено", "Успех", MessageBoxButtons.OK, MessageBoxIcon.Information); } catch (Exception ex) diff --git a/MotorPlant/MotorPlantView/FormReportOrders.resx b/MotorPlant/MotorPlantView/FormReportOrders.resx index 1af7de1..af32865 100644 --- a/MotorPlant/MotorPlantView/FormReportOrders.resx +++ b/MotorPlant/MotorPlantView/FormReportOrders.resx @@ -1,17 +1,17 @@  - diff --git a/MotorPlant/MotorPlantView/MotorPlantView.csproj b/MotorPlant/MotorPlantView/MotorPlantView.csproj index 63277b7..49be11e 100644 --- a/MotorPlant/MotorPlantView/MotorPlantView.csproj +++ b/MotorPlant/MotorPlantView/MotorPlantView.csproj @@ -2,7 +2,7 @@ WinExe - net8.0-windows7.0 + net8.0-windows enable true enable @@ -14,6 +14,7 @@ runtime; build; native; contentfiles; analyzers; buildtransitive + diff --git a/MotorPlant/MotorPlantView/ReportOrders.rdlc b/MotorPlant/MotorPlantView/ReportOrders.rdlc new file mode 100644 index 0000000..00c941e --- /dev/null +++ b/MotorPlant/MotorPlantView/ReportOrders.rdlc @@ -0,0 +1,633 @@ + + + 0 + + + + System.Data.DataSet + /* Local Connection */ + + 10791c83-cee8-4a38-bbd0-245fc17cefb3 + + + + + + MotorPlantContractsViewModels + /* Local Query */ + + + + Id + System.Int32 + + + DateCreate + System.DateTime + + + EngineName + System.String + + + Sum + System.Decimal + + + Status + System.String + + + + MotorPlantContracts.ViewModels + ReportOrdersViewModel + MotorPlantContracts.ViewModels.ReportOrdersViewModel, MotorPlantContracts, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + + + + + + + + + true + true + + + + + Заказы + + + + + + + + + 2pt + 2pt + 2pt + 2pt + + + + + + + 5.50333cm + + + 5.50333cm + + + 6.82331cm + + + 6.1195cm + + + 5.17229cm + + + + + 1.235cm + + + + + true + true + + + + + Номер + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + Дата создания + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + Изделие + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + Сумма + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + Статус + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + 1.235cm + + + + + true + true + + + + + =Fields!Id.Value + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + =Fields!DateCreate.Value + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + =Fields!EngineName.Value + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + =Fields!Sum.Value + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + =Fields!Status.Value + + + 2pt + 2pt + 2pt + 2pt + + + true + + + + + + + + + + + + + + + + + + + After + + + + + + + DataSetOrders + 2.34103cm + 0.42333cm + 2.47cm + 29.12176cm + 1 + + + + + + true + true + + + + + =Parameters!ReportParameterPeriod.Value + + + + 0.77639cm + 0.70583cm + 21.71934cm + 2 + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + Итого: + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + =Parameters!ReportParameterSum.Value + + + 2pt + 2pt + 2pt + 2pt + + + + 2.81911in +