КУПИТЕ МНЕ ЛИЦЕНЗИЮ ЭКСЕЛЯ

This commit is contained in:
GokaPek 2024-10-31 01:02:35 +04:00
parent 5fdba2649f
commit 2b6207f365
2 changed files with 122 additions and 14 deletions

View File

@ -42,12 +42,26 @@
pdfImg = new Library14Petrushin.PdfImg(components); pdfImg = new Library14Petrushin.PdfImg(components);
wordDiagramComponent = new Library15Gerimovich.WordDiagramComponent(components); wordDiagramComponent = new Library15Gerimovich.WordDiagramComponent(components);
componentTable = new WinFormsLibrary1.ComponentTable(components); componentTable = new WinFormsLibrary1.ComponentTable(components);
saveFileDialog = new SaveFileDialog(); // Инициализация SaveFileDialog saveFileDialogPdf = new SaveFileDialog(); // Инициализация SaveFileDialog
// Настройка SaveFileDialog // Настройка SaveFileDialog
saveFileDialog.Filter = "PDF Files (*.pdf)|*.pdf"; saveFileDialogPdf.Filter = "PDF Files (*.pdf)|*.pdf";
saveFileDialog.Title = "Save PDF Document"; saveFileDialogPdf.Title = "Save PDF Document";
saveFileDialog.FileName = "Products.pdf"; saveFileDialogPdf.FileName = "Products.pdf";
saveFileDialogWord = new SaveFileDialog(); // Инициализация SaveFileDialog
// Настройка SaveFileDialog
saveFileDialogWord.Filter = "Word Files (*.docx)|*.docx";
saveFileDialogWord.Title = "Save Word Document";
saveFileDialogWord.FileName = "Diagram.docx";
saveFileDialogExel = new SaveFileDialog(); // Инициализация SaveFileDialog
// Настройка SaveFileDialog
saveFileDialogExel.Filter = "Excel Files (*.xlsx)|*.xlsx";
saveFileDialogExel.Title = "Save Excel Document";
saveFileDialogExel.FileName = "ProductReport.xlsx";
menuStrip1.SuspendLayout(); menuStrip1.SuspendLayout();
SuspendLayout(); SuspendLayout();

View File

@ -4,6 +4,10 @@ using View;
using System.Windows.Forms; using System.Windows.Forms;
using Data.Models; using Data.Models;
using Library14Petrushin; using Library14Petrushin;
using Library15Gerimovich.OfficePackage.HelperModels;
using Library15Gerimovich;
using WinFormsLibrary1;
using WinFormsLibrary1.Models;
namespace Laba3 namespace Laba3
{ {
@ -11,7 +15,9 @@ namespace Laba3
{ {
private readonly IProductRepository _productRepository; private readonly IProductRepository _productRepository;
private readonly IManufacturerRepository _manufacturerRepository; private readonly IManufacturerRepository _manufacturerRepository;
private SaveFileDialog saveFileDialog; private SaveFileDialog saveFileDialogPdf;
private SaveFileDialog saveFileDialogWord;
private SaveFileDialog saveFileDialogExel;
public MainForm(IProductRepository productRepository, IManufacturerRepository manufacturerRepository) public MainForm(IProductRepository productRepository, IManufacturerRepository manufacturerRepository)
{ {
@ -24,12 +30,12 @@ namespace Laba3
private void InitializeOutputTableResults() private void InitializeOutputTableResults()
{ {
outputTableResults.ConfigureColumns(new List<Library15Gerimovich.ColumnInfo> outputTableResults.ConfigureColumns(new List<ColumnInfo>
{ {
new Library15Gerimovich.ColumnInfo("", 0, false, "Id"), new ColumnInfo("", 0, false, "Id"),
new Library15Gerimovich.ColumnInfo("Name", 150, true, "Name"), new ColumnInfo("Name", 150, true, "Name"),
new Library15Gerimovich.ColumnInfo("ManufacturerNameManufacturerName", 150, true, "ManufacturerName"), new ColumnInfo("ManufacturerNameManufacturerName", 150, true, "ManufacturerName"),
new Library15Gerimovich.ColumnInfo("DeliveryDate", 50, true, "DeliveryDate"), new ColumnInfo("DeliveryDate", 50, true, "DeliveryDate"),
}); });
} }
@ -94,13 +100,13 @@ namespace Laba3
if (images.Count > 0) if (images.Count > 0)
{ {
// Показываем диалоговое окно для выбора пути сохранения // Показываем диалоговое окно для выбора пути сохранения
if (saveFileDialog.ShowDialog() == DialogResult.OK) if (saveFileDialogPdf.ShowDialog() == DialogResult.OK)
{ {
// Создаем компонент PdfImg // Создаем компонент PdfImg
var pdfImg = new Library14Petrushin.PdfImg(); var pdfImg = new Library14Petrushin.PdfImg();
// Путь для сохранения PDF-документа // Путь для сохранения PDF-документа
string fileName = saveFileDialog.FileName; string fileName = saveFileDialogPdf.FileName;
// Заголовок документа // Заголовок документа
string documentTitle = "Product Images"; string documentTitle = "Product Images";
@ -118,12 +124,75 @@ namespace Laba3
private void createCustomTableDocumentToolStripMenuItem_Click(object sender, EventArgs e) private void createCustomTableDocumentToolStripMenuItem_Click(object sender, EventArgs e)
{ {
// Реализация создания документа с настраиваемой таблицей // Получаем все продукты из базы данных
var products = GetAllProducts();
if (products.Count > 0)
{
// Показываем диалоговое окно для выбора пути сохранения
if (saveFileDialogExel.ShowDialog() == DialogResult.OK)
{
// Создаем объекты MergeCell и Column
var mergeCells = new List<MergeCell>
{
new MergeCell("Product Information", new int[] { 0, 1, 2, 3 })
};
var columns = new List<Column>
{
new Column("ID", "Id", 10),
new Column("Name", "Name", 20),
new Column("Manufacturer", "ManufacturerName", 20),
new Column("Delivery Date", "DeliveryDate", 20)
};
// Создаем компонент ComponentTable
var componentTable = new ComponentTable();
// Создаем документ Excel
componentTable.CreateDocument(saveFileDialogExel.FileName, "Product Report", mergeCells, columns, products);
}
}
else
{
MessageBox.Show("No products found in the database.");
}
} }
private void createChartDocumentToolStripMenuItem_Click(object sender, EventArgs e) private void createChartDocumentToolStripMenuItem_Click(object sender, EventArgs e)
{ {
// Реализация создания документа с диаграммой // Получаем данные о количестве продукции каждого производителя
var productCounts = GetProductCountsByManufacturer();
if (productCounts.Count > 0)
{
// Показываем диалоговое окно для выбора пути сохранения
if (saveFileDialogWord.ShowDialog() == DialogResult.OK)
{
// Создаем объект WordDiagramInfo
var diagramInfo = new WordDiagramInfo
{
FileName = saveFileDialogWord.FileName,
Title = "Product Count by Manufacturer",
ChartTitle = "Product Count",
LegendLocation = Library15Gerimovich.OfficePackage.HelperEnums.WordDiagramLegendLocation.Top,
Series = new WordDiagramSeries
{
SeriesName = "Product Count",
Data = productCounts
}
};
// Создаем диаграмму в Word
wordDiagramComponent.CreateDiagram(diagramInfo);
}
}
else
{
MessageBox.Show("No products found in the database.");
}
} }
private void MainForm_KeyDown(object sender, KeyEventArgs e) private void MainForm_KeyDown(object sender, KeyEventArgs e)
@ -174,5 +243,30 @@ namespace Laba3
return images; return images;
} }
private Dictionary<string, double> GetProductCountsByManufacturer()
{
var productCounts = new Dictionary<string, double>();
var products = _productRepository.GetAllProducts();
foreach (var product in products)
{
if (productCounts.ContainsKey(product.ManufacturerName))
{
productCounts[product.ManufacturerName]++;
}
else
{
productCounts[product.ManufacturerName] = 1;
}
}
return productCounts;
}
private List<Product> GetAllProducts()
{
return _productRepository.GetAllProducts().ToList();
}
} }
} }