все сделала, только сдать осталось

This commit is contained in:
Елена Бакальская 2024-11-20 16:45:43 +04:00
parent 394ecca149
commit 3ea68ad50d
3 changed files with 289 additions and 30 deletions

View File

@ -28,6 +28,7 @@
/// </summary>
private void InitializeComponent()
{
components = new System.ComponentModel.Container();
userControlTreeView = new Components.UserControlTreeView();
menuStrip1 = new MenuStrip();
добавитьToolStripMenuItem = new ToolStripMenuItem();
@ -37,6 +38,9 @@
сОзданиеДоктаСТаблицейToolStripMenuItem = new ToolStripMenuItem();
созданиеДоктаСДиаграммойToolStripMenuItem = new ToolStripMenuItem();
справочникToolStripMenuItem = new ToolStripMenuItem();
createWord = new UserComponentsOption19.BigTextWordNoVisibleComponent(components);
createExcelPieDiagram = new Components.ComponentExcelWithPieDiagram(components);
createPdfTable = new WinFormsLibrary1.PDFTable(components);
menuStrip1.SuspendLayout();
SuspendLayout();
//
@ -88,18 +92,21 @@
созданиеПростогоДокументаToolStripMenuItem.Name = "созданиеПростогоДокументаToolStripMenuItem";
созданиеПростогоДокументаToolStripMenuItem.Size = new Size(235, 24);
созданиеПростогоДокументаToolStripMenuItem.Text = "Создание простого документа";
созданиеПростогоДокументаToolStripMenuItem.Click += созданиеПростогоДокументаToolStripMenuItem_Click;
//
// сОзданиеДоктаСТаблицейToolStripMenuItem
//
сОзданиеДоктаСТаблицейToolStripMenuItem.Name = "сОзданиеДоктаСТаблицейToolStripMenuItem";
сОзданиеДоктаСТаблицейToolStripMenuItem.Size = new Size(219, 24);
сОзданиеДоктаСТаблицейToolStripMenuItem.Text = "Создание док-та с таблицей";
сОзданиеДоктаСТаблицейToolStripMenuItem.Click += сОзданиеДоктаСТаблицейToolStripMenuItem_Click;
//
// созданиеДоктаСДиаграммойToolStripMenuItem
//
созданиеДоктаСДиаграммойToolStripMenuItem.Name = "созданиеДоктаСДиаграммойToolStripMenuItem";
созданиеДоктаСДиаграммойToolStripMenuItem.Size = new Size(241, 24);
созданиеДоктаСДиаграммойToolStripMenuItem.Text = "Создание док-та с диаграммой";
созданиеДоктаСДиаграммойToolStripMenuItem.Click += созданиеДоктаСДиаграммойToolStripMenuItem_Click;
//
// справочникToolStripMenuItem
//
@ -119,6 +126,7 @@
Name = "FormMain";
Text = "Главная форма";
Load += FormMain_Load;
KeyDown += FormMain_KeyDown;
menuStrip1.ResumeLayout(false);
menuStrip1.PerformLayout();
ResumeLayout(false);
@ -136,5 +144,8 @@
private ToolStripMenuItem сОзданиеДоктаСТаблицейToolStripMenuItem;
private ToolStripMenuItem созданиеДоктаСДиаграммойToolStripMenuItem;
private ToolStripMenuItem справочникToolStripMenuItem;
private UserComponentsOption19.BigTextWordNoVisibleComponent createWord;
private Components.ComponentExcelWithPieDiagram createExcelPieDiagram;
private WinFormsLibrary1.PDFTable createPdfTable;
}
}

View File

@ -1,8 +1,13 @@
using AppShopInternetOption19.Forms;
using Components;
using ShopContracts.BindingModels;
using ShopContracts.BusinessLogicContracts;
using ShopContracts.SearchModels;
using ShopDataBaseImplements.Models;
using System.Windows.Forms;
using UserComponentsOption19;
using WinFormsLibrary1;
using WinFormsLibrary1.HelperClasses;
namespace AppShopInternetOption19
{
@ -17,17 +22,8 @@ namespace AppShopInternetOption19
InitializeComponent();
_orderLogic = orderLogic;
_orderStatusLogic = orderStatusLogic;
this.KeyPreview = true;
LoadData();
//OrderBindingModel order = new OrderBindingModel
//{
// FIO = "Ïóïêèí âàñèëèé çàëóïêèí",
// OrderDescription = "Description",
// OrderStatus = "íå ãîòîâ",
// OrderSumm = "20",
//};
//_orderLogic.Create(order);
}
private void FormMain_Load(object sender, EventArgs e)
@ -37,16 +33,7 @@ namespace AppShopInternetOption19
private void äîáàâèòüToolStripMenuItem_Click(object sender, EventArgs e)
{
var service = Program.ServiceProvider?.GetService(typeof(FormEdit_Add));
if (!(service is FormEdit_Add form))
{
return;
}
if (form.ShowDialog() == DialogResult.OK)
{
LoadData();
}
Add();
}
private void LoadData()
@ -79,6 +66,43 @@ namespace AppShopInternetOption19
}
private void ðåäàêòèðîâàòüToolStripMenuItem_Click(object sender, EventArgs e)
{
Update();
}
private void óäàëèòüToolStripMenuItem_Click(object sender, EventArgs e)
{
Delete();
}
private void ñïðàâî÷íèêToolStripMenuItem_Click(object sender, EventArgs e)
{
var service = Program.ServiceProvider?.GetService(typeof(FormGuide));
if (!(service is FormGuide form))
{
return;
}
if (form.ShowDialog() == DialogResult.OK)
{
LoadData();
}
}
private void Add()
{
var service = Program.ServiceProvider?.GetService(typeof(FormEdit_Add));
if (!(service is FormEdit_Add form))
{
return;
}
if (form.ShowDialog() == DialogResult.OK)
{
LoadData();
}
}
private void Update()
{
var service = Program.ServiceProvider?.GetService(typeof(FormEdit_Add));
if (!(service is FormEdit_Add form))
@ -94,7 +118,7 @@ namespace AppShopInternetOption19
}
}
private void óäàëèòüToolStripMenuItem_Click(object sender, EventArgs e)
private void Delete()
{
try
{
@ -123,24 +147,239 @@ namespace AppShopInternetOption19
}
LoadData();
}
catch (Exception)
catch (Exception ex)
{
throw;
MessageBox.Show(ex.Message);
}
}
private void ñïðàâî÷íèêToolStripMenuItem_Click(object sender, EventArgs e)
private void CreateWord()
{
var service = Program.ServiceProvider?.GetService(typeof(FormGuide));
if (!(service is FormGuide form))
using (SaveFileDialog saveFileDialog = new SaveFileDialog())
{
return;
saveFileDialog.Filter = "Word Documents (*.docx)|*.docx";
if (saveFileDialog.ShowDialog() == DialogResult.OK)
{
string filePath = saveFileDialog.FileName;
string title = "çàêàçû, êîòîðûå îïëà÷åíû ïîëíîñòüþ çà ñ÷åò ñêèäîê :D";
string[] data;
try
{
var orders = _orderLogic.ReadList(null);
if (orders != null)
{
// Ôèëüòðóåì çàêàçû, ãäå ñóììà çàêàçà ðàâíà null èëè ïóñòîé ñòðîêå
var freeOrders = orders
.Where(x => string.IsNullOrEmpty(x.OrderSumm))
.Select(x => $"ID: {x.Id}, ÔÈÎ: {x.FIO}, Ñòàòóñ çàêàçà: {x.OrderStatus}, Îïèñàíèå çàêàçà: {x.OrderDescription}")
.ToList();
if (freeOrders.Count == 0)
{
MessageBox.Show("Íåò çàêàçîâ, îïëà÷åííûõ ñêèäêàìè.");
return;
}
// Ïðåîáðàçóåì ñïèñîê â ìàññèâ ñòðîê äëÿ ïåðåäà÷è â ìåòîä
data = freeOrders.ToArray();
// Ñîçäàåì äîêóìåíò Word
createWord.CreateAndSaveDocument(filePath, title, data);
MessageBox.Show("Óñïåøíî :D ïðîâåðÿé íàëè÷èå ôàéëà...");
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
}
if (form.ShowDialog() == DialogResult.OK)
}
private void CreateExcel()
{
using (SaveFileDialog saveFileDialog = new SaveFileDialog())
{
LoadData();
saveFileDialog.Filter = "Excel Files (*.xlsx)|*.xlsx";
saveFileDialog.Title = "Ñîõðàíèòü äèàãðàììó â Excel";
if (saveFileDialog.ShowDialog() == DialogResult.OK)
{
string filePath = saveFileDialog.FileName;
try
{
var orders = _orderLogic.ReadList(null);
if (orders == null || !orders.Any())
{
MessageBox.Show("Íåò äàííûõ äëÿ ñîçäàíèÿ äèàãðàììû.");
return;
}
var groupedData = orders
.Where(o => o.OrderSumm != null && o.OrderSumm != "" && o.OrderSumm != string.Empty)
.GroupBy(o => o.OrderStatus)
.Select(g => new ComponentExcelWithPieDiagram.ChartData
{
SeriesName = g.Key,
SeriesValue = g.Count()
})
.ToList();
if (!groupedData.Any())
{
MessageBox.Show("Íåò îïëà÷åííûõ çàêàçîâ.");
return;
}
string title = "Îïëà÷åííûå çàêàçû ïî ñòàòóñàì";
string diagramTitle = "Ðàñïðåäåëåíèå îïëà÷åííûõ çàêàçîâ";
createExcelPieDiagram.CreateExcelWithPieChart(
filePath,
title,
diagramTitle,
ComponentExcelWithPieDiagram.LegendPosition.Left,
groupedData
);
MessageBox.Show("Ôàéë óñïåøíî ñîçäàí.", "Èíôîðìàöèÿ", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
catch (Exception ex)
{
MessageBox.Show($"Îøèáêà ïðè ñîçäàíèè ôàéëà: {ex.Message}", "Îøèáêà", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
}
}
private void CreatePdf()
{
using (SaveFileDialog fileDialog = new SaveFileDialog())
{
fileDialog.Filter = "PDF Files (*.pdf)|*.pdf";
fileDialog.Title = "Ñîõðàíèòü äèàãðàììó â PDF";
if (fileDialog.ShowDialog() == DialogResult.OK)
{
string filePath = fileDialog.FileName;
string fileTitle = "Èíôîðìàöèÿ î çàêàçàõ";
try
{
var orders = _orderLogic.ReadList(null);
if (orders == null || !orders.Any())
{
MessageBox.Show("Íåò äàííûõ");
return;
}
List<string[,]> tables = new List<string[,]>();
string[,] tableData = new string[orders.Count + 1, 5];
// Øàïêà òàáëèöû
tableData[0, 0] = "Èäåíòèôèêàòîð";
tableData[0, 1] = "ÔÈÎ";
tableData[0, 2] = "Ñòàòóñ çàêàçà";
tableData[0, 3] = "Ñóììà çàêàçîâ";
tableData[0, 4] = "Îïèñàíèå";
for (int i = 0; i < orders.Count; i++)
{
var order = orders[i];
tableData[i + 1, 0] = order.Id.ToString();
tableData[i + 1, 1] = order.FIO;
tableData[i + 1, 2] = order.OrderStatus;
tableData[i + 1, 3] = string.IsNullOrWhiteSpace(order.OrderSumm)
? "Îïëà÷åí ñêèäêàìè"
: order.OrderSumm;
tableData[i + 1, 4] = order.OrderDescription;
}
tables.Add(tableData);
PdfDocumentData pdfData = new PdfDocumentData(filePath, fileTitle, tables);
createPdfTable.GeneratePdf(pdfData);
MessageBox.Show("Ôàéë óñïåøíî ñîçäàí.", "Èíôîðìàöèÿ", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
catch (Exception ex)
{
MessageBox.Show($"Îøèáêà ïðè ñîçäàíèè ôàéëà: {ex.Message}", "Îøèáêà", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
}
}
//private class PdfDocumentData
//{
// public string FileName { get; set; }
// public string DocumentTitle { get; set; }
// public List<string[,]> Tables { get; set; }
// public PdfDocumentData(string fileName, string documentTitle, List<string[,]> tables)
// {
// FileName = fileName ?? throw new ArgumentNullException("fileName");
// DocumentTitle = documentTitle ?? throw new ArgumentNullException("documentTitle");
// Tables = tables ?? throw new ArgumentNullException("tables");
// }
//}
private void FormMain_KeyDown(object sender, KeyEventArgs e)
{
if (e.Control)
{
switch (e.KeyCode)
{
case Keys.A:
Add();
e.SuppressKeyPress = true;
break;
case Keys.U:
Update();
e.SuppressKeyPress = true;
break;
case Keys.D:
Delete();
e.SuppressKeyPress = true;
break;
case Keys.S:
CreateWord();
e.SuppressKeyPress = true;
break;
case Keys.C:
CreateExcel();
e.SuppressKeyPress = true;
break;
case Keys.T:
CreatePdf();
e.SuppressKeyPress = true;
break;
}
}
}
private void ñîçäàíèåÏðîñòîãîÄîêóìåíòàToolStripMenuItem_Click(object sender, EventArgs e)
{
CreateWord();
}
private void ñÎçäàíèåÄîêòàÑÒàáëèöåéToolStripMenuItem_Click(object sender, EventArgs e)
{
CreatePdf();
}
private void ñîçäàíèåÄîêòàÑÄèàãðàììîéToolStripMenuItem_Click(object sender, EventArgs e)
{
CreateExcel();
}
}
}

View File

@ -120,4 +120,13 @@
<metadata name="menuStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
<metadata name="createWord.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>153, 17</value>
</metadata>
<metadata name="createExcelPieDiagram.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>444, 17</value>
</metadata>
<metadata name="createPdfTable.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>727, 17</value>
</metadata>
</root>