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