Вывод отчета по документам в Excel

This commit is contained in:
Данила Мочалов 2023-03-11 20:36:44 +04:00
parent 4a1835cd89
commit 5426d94f47
5 changed files with 20 additions and 20 deletions

View File

@ -29,14 +29,14 @@ namespace LawFirmView
{ {
try try
{ {
var dict = _logic.GetProductComponent(); var dict = _logic.GetDocumentBlanks();
if (dict != null) if (dict != null)
{ {
dataGridView.Rows.Clear(); dataGridView.Rows.Clear();
foreach (var elem in dict) foreach (var elem in dict)
{ {
dataGridView.Rows.Add(new object[] { elem.BlankName, "", "" }); dataGridView.Rows.Add(new object[] { elem.DocumentName, "", "" });
foreach (var listElem in elem.Documents) foreach (var listElem in elem.Blanks)
{ {
dataGridView.Rows.Add(new object[] { "", listElem.Item1, listElem.Item2 }); dataGridView.Rows.Add(new object[] { "", listElem.Item1, listElem.Item2 });
} }

View File

@ -31,25 +31,25 @@ namespace LawFirmBusinessLogic.BusinessLogics
_saveToPdf = saveToPdf; _saveToPdf = saveToPdf;
} }
/// Получение списка компонент с указанием, в каких изделиях используются /// Получение списка компонент с указанием, в каких изделиях используются
public List<ReportDocumentBlankViewModel> GetProductComponent() public List<ReportDocumentBlankViewModel> GetDocumentBlanks()
{ {
var blanks = _blankStorage.GetFullList(); var blanks = _blankStorage.GetFullList();
var documents = _documentStorage.GetFullList(); var documents = _documentStorage.GetFullList();
var list = new List<ReportDocumentBlankViewModel>(); var list = new List<ReportDocumentBlankViewModel>();
foreach (var blank in blanks) foreach (var doc in documents)
{ {
var record = new ReportDocumentBlankViewModel var record = new ReportDocumentBlankViewModel
{ {
BlankName = blank.BlankName, DocumentName = doc.DocumentName,
Documents = new List<(string Document, int Count)>(), Blanks = new List<(string Blank, int Count)>(),
TotalCount = 0 TotalCount = 0
}; };
foreach (var document in documents) foreach (var blank in blanks)
{ {
if (document.DocumentBlanks.ContainsKey(blank.Id)) if (doc.DocumentBlanks.ContainsKey(blank.Id))
{ {
record.Documents.Add((document.DocumentName, document.DocumentBlanks[blank.Id].Item2)); record.Blanks.Add(new (blank.BlankName, doc.DocumentBlanks[blank.Id].Item2));
record.TotalCount += document.DocumentBlanks[blank.Id].Item2; record.TotalCount += doc.DocumentBlanks[blank.Id].Item2;
} }
} }
list.Add(record); list.Add(record);
@ -89,8 +89,8 @@ namespace LawFirmBusinessLogic.BusinessLogics
_saveToExcel.CreateReport(new ExcelInfo _saveToExcel.CreateReport(new ExcelInfo
{ {
FileName = model.FileName, FileName = model.FileName,
Title = "Список бланков", Title = "Список документов",
DocumentBlanks = GetProductComponent() DocumentBlanks = GetDocumentBlanks()
}); });
} }
/// Сохранение заказов в файл-Pdf /// Сохранение заказов в файл-Pdf

View File

@ -33,17 +33,17 @@ namespace LawFirmBusinessLogic.OfficePackage
{ {
ColumnName = "A", ColumnName = "A",
RowIndex = rowIndex, RowIndex = rowIndex,
Text = pc.BlankName, Text = pc.DocumentName,
StyleInfo = ExcelStyleInfoType.Text StyleInfo = ExcelStyleInfoType.Text
}); });
rowIndex++; rowIndex++;
foreach (var (Document, Count) in pc.Documents) foreach (var (Blank, Count) in pc.Blanks)
{ {
InsertCellInWorksheet(new ExcelCellParameters InsertCellInWorksheet(new ExcelCellParameters
{ {
ColumnName = "B", ColumnName = "B",
RowIndex = rowIndex, RowIndex = rowIndex,
Text = Document, Text = Blank,
StyleInfo = ExcelStyleInfoType.TextWithBorder StyleInfo = ExcelStyleInfoType.TextWithBorder
}); });
InsertCellInWorksheet(new ExcelCellParameters InsertCellInWorksheet(new ExcelCellParameters

View File

@ -11,7 +11,7 @@ namespace LawFirmContracts.BusinessLogicContracts
public interface IReportLogic public interface IReportLogic
{ {
/// Получение списка компонент с указанием, в каких изделиях используются /// Получение списка компонент с указанием, в каких изделиях используются
List<ReportDocumentBlankViewModel> GetProductComponent(); List<ReportDocumentBlankViewModel> GetDocumentBlanks();
/// Получение списка заказов за определенный период /// Получение списка заказов за определенный период
List<ReportOrdersViewModel> GetOrders(ReportBindingModel model); List<ReportOrdersViewModel> GetOrders(ReportBindingModel model);
/// Сохранение компонент в файл-Word /// Сохранение компонент в файл-Word

View File

@ -8,9 +8,9 @@ namespace LawFirmContracts.ViewModels
{ {
public class ReportDocumentBlankViewModel public class ReportDocumentBlankViewModel
{ {
public string BlankName { get; set; } = string.Empty; public string DocumentName { get; set; } = string.Empty;
public int TotalCount { get; set; } public int TotalCount { get; set; }
public List<(string Document, int Count)> Documents { get; set; } = new(); public List<(string Blank, int Count)> Blanks { get; set; } = new();
} }
} }