From be8383f5b2d530ba766e4558733c2eaa585c3816 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9D=D0=B8=D0=BA=D0=B8=D1=82=D0=B0=20=D0=9F=D0=BE=D1=82?= =?UTF-8?q?=D0=B0=D0=BF=D0=BE=D0=B2?= Date: Wed, 4 Dec 2024 17:59:16 +0400 Subject: [PATCH] =?UTF-8?q?=D0=A0=D0=B5=D0=B0=D0=BB=D0=B8=D0=B7=D0=BE?= =?UTF-8?q?=D0=B2=D0=B0=D0=BB=20=D0=BE=D1=82=D1=87=D0=B5=D1=82=20=D1=81=20?= =?UTF-8?q?=D1=84=D0=BE=D1=82=D0=BE=D0=B3=D1=80=D0=B0=D1=84=D0=B8=D1=8F?= =?UTF-8?q?=D0=BC=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Orders/FormOrdersList.Designer.cs | 10 ++ .../Orders/FormOrdersList.cs | 91 +++++++++++++++++-- .../Orders/FormOrdersList.resx | 9 ++ 3 files changed, 101 insertions(+), 9 deletions(-) diff --git a/InternetShop/InternetShopForms/Orders/FormOrdersList.Designer.cs b/InternetShop/InternetShopForms/Orders/FormOrdersList.Designer.cs index 8f3032a..f9689ad 100644 --- a/InternetShop/InternetShopForms/Orders/FormOrdersList.Designer.cs +++ b/InternetShop/InternetShopForms/Orders/FormOrdersList.Designer.cs @@ -28,6 +28,7 @@ /// private void InitializeComponent() { + components = new System.ComponentModel.Container(); tableComponent = new WinFormsLibrary1.TableComponent(); menuStrip = new MenuStrip(); productsToolStripMenuItem = new ToolStripMenuItem(); @@ -35,6 +36,9 @@ reportOrderImagesExcelToolStripMenuItem = new ToolStripMenuItem(); reportOrdersWordToolStripMenuItem = new ToolStripMenuItem(); reportProductsPDFToolStripMenuItem = new ToolStripMenuItem(); + componentExcelWithImage = new Components.ComponentExcelWithImage(components); + bigTextWordNoVisibleComponent = new UserComponentsOption19.BigTextWordNoVisibleComponent(components); + pdfHistogram = new WinFormsLibrary1.PDFHistogram(components); menuStrip.SuspendLayout(); SuspendLayout(); // @@ -76,18 +80,21 @@ reportOrderImagesExcelToolStripMenuItem.Name = "reportOrderImagesExcelToolStripMenuItem"; reportOrderImagesExcelToolStripMenuItem.Size = new Size(296, 26); reportOrderImagesExcelToolStripMenuItem.Text = "Изображения заказов (Excel)"; + reportOrderImagesExcelToolStripMenuItem.Click += reportOrderImagesExcelToolStripMenuItem_Click; // // reportOrdersWordToolStripMenuItem // reportOrdersWordToolStripMenuItem.Name = "reportOrdersWordToolStripMenuItem"; reportOrdersWordToolStripMenuItem.Size = new Size(296, 26); reportOrdersWordToolStripMenuItem.Text = "Отчет по заказам (Word)"; + reportOrdersWordToolStripMenuItem.Click += reportOrdersWordToolStripMenuItem_Click; // // reportProductsPDFToolStripMenuItem // reportProductsPDFToolStripMenuItem.Name = "reportProductsPDFToolStripMenuItem"; reportProductsPDFToolStripMenuItem.Size = new Size(296, 26); reportProductsPDFToolStripMenuItem.Text = "Отчет по товарам (PDF)"; + reportProductsPDFToolStripMenuItem.Click += reportProductsPDFToolStripMenuItem_Click; // // FormOrdersList // @@ -115,5 +122,8 @@ private ToolStripMenuItem reportOrderImagesExcelToolStripMenuItem; private ToolStripMenuItem reportOrdersWordToolStripMenuItem; private ToolStripMenuItem reportProductsPDFToolStripMenuItem; + private Components.ComponentExcelWithImage componentExcelWithImage; + private UserComponentsOption19.BigTextWordNoVisibleComponent bigTextWordNoVisibleComponent; + private WinFormsLibrary1.PDFHistogram pdfHistogram; } } diff --git a/InternetShop/InternetShopForms/Orders/FormOrdersList.cs b/InternetShop/InternetShopForms/Orders/FormOrdersList.cs index e71e402..5ec495f 100644 --- a/InternetShop/InternetShopForms/Orders/FormOrdersList.cs +++ b/InternetShop/InternetShopForms/Orders/FormOrdersList.cs @@ -1,14 +1,8 @@ -using Components; -using InternetShopContracts.DataBindingModels; using InternetShopContracts.DataSearchModels; using InternetShopContracts.DataViewModels; using InternetShopContracts.LogicsContracts; -using InternetShopDatabase.Models; using InternetShopForms.Orders; using InternetShopForms.Products; -using InternetShopLogics.Logics; -using System.Windows.Forms; -using WinFormsLibrary1; namespace InternetShopForms { @@ -157,7 +151,7 @@ namespace InternetShopForms if (result == DialogResult.Yes) { - if(_orderLogic.Delete(new OrderSearchModel { Id = selectedOrder.Id })) + if (_orderLogic.Delete(new OrderSearchModel { Id = selectedOrder.Id })) { MessageBox.Show(" "); } @@ -174,19 +168,98 @@ namespace InternetShopForms } } + private enum ReportType + { + Word = 0, + Excel = 1, + PDF = 2 + } + + private string GetFileFilter(ReportType reportType) + { + if (reportType == ReportType.Excel) + { + return "Excel files (*.xlsx)|*.xlsx"; + } + else if (reportType == ReportType.PDF) + { + return "PDF files (*.pdf)|*.pdf"; + } + else + { + return "Word files (*.docx)|*.docx"; + } + } + + private string? GetExportFileName(ReportType reportType) + { + using (SaveFileDialog openFileDialog = new SaveFileDialog()) + { + openFileDialog.InitialDirectory = "d:\\tmp"; + openFileDialog.Filter = GetFileFilter(reportType) + "|All files (*.*)|*.*"; + openFileDialog.FilterIndex = 1; + openFileDialog.RestoreDirectory = true; + + if (openFileDialog.ShowDialog() == DialogResult.OK) + { + return openFileDialog.FileName; + } + } + return null; + } + private void CreateWord() { - // todo + string? exportFileName = GetExportFileName(ReportType.Word); + if (string.IsNullOrEmpty(exportFileName)) + { + return; + } } private void CreateExcel() { - // todo + string? exportFileName = GetExportFileName(ReportType.Excel); + if (string.IsNullOrEmpty(exportFileName)) + { + return; + } + var orders = _orderLogic.ReadList(); + try + { + componentExcelWithImage.CreateExcelWithImages(exportFileName, "", orders.Select(x => x.ImagePath).ToArray()); + MessageBox.Show(" ", " ", MessageBoxButtons.OK, MessageBoxIcon.Information); + } + catch (Exception ex) + { + MessageBox.Show(" :\n" + ex.Message, " ", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } private void CreatePDF() { + string? exportFileName = GetExportFileName(ReportType.PDF); + if (string.IsNullOrEmpty(exportFileName)) + { + return; + } // todo } + + private void reportOrderImagesExcelToolStripMenuItem_Click(object sender, EventArgs e) + { + CreateExcel(); + } + + private void reportOrdersWordToolStripMenuItem_Click(object sender, EventArgs e) + { + CreateWord(); + } + + private void reportProductsPDFToolStripMenuItem_Click(object sender, EventArgs e) + { + CreatePDF(); + } } } diff --git a/InternetShop/InternetShopForms/Orders/FormOrdersList.resx b/InternetShop/InternetShopForms/Orders/FormOrdersList.resx index 31084d5..8dd43b1 100644 --- a/InternetShop/InternetShopForms/Orders/FormOrdersList.resx +++ b/InternetShop/InternetShopForms/Orders/FormOrdersList.resx @@ -120,4 +120,13 @@ 17, 17 + + 145, 17 + + + 384, 17 + + + 667, 17 + \ No newline at end of file