Вывод отчета по документам в 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
{
var dict = _logic.GetProductComponent();
var dict = _logic.GetDocumentBlanks();
if (dict != null)
{
dataGridView.Rows.Clear();
foreach (var elem in dict)
{
dataGridView.Rows.Add(new object[] { elem.BlankName, "", "" });
foreach (var listElem in elem.Documents)
dataGridView.Rows.Add(new object[] { elem.DocumentName, "", "" });
foreach (var listElem in elem.Blanks)
{
dataGridView.Rows.Add(new object[] { "", listElem.Item1, listElem.Item2 });
}

View File

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

View File

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

View File

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

View File

@ -8,9 +8,9 @@ namespace LawFirmContracts.ViewModels
{
public class ReportDocumentBlankViewModel
{
public string BlankName { get; set; } = string.Empty;
public string DocumentName { get; set; } = string.Empty;
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();
}
}