Реализовано сохранение компонентов и изделий в excel по требованиям

This commit is contained in:
Никита Потапов 2024-03-24 22:28:06 +04:00
parent e37e94a14f
commit 9f481f8879
6 changed files with 28 additions and 27 deletions

View File

@ -34,19 +34,19 @@ namespace SecuritySystemBusinessLogic.BusinessLogics
var components = _componentStorage.GetFullList();
var secures = _secureStorage.GetFullList();
var list = new List<ReportSecureComponentViewModel>();
foreach (var component in components)
foreach (var secure in secures)
{
var record = new ReportSecureComponentViewModel
{
ComponentName = component.ComponentName,
Secures = new List<Tuple<string, int>>(),
SecureName = secure.SecureName,
Components = new List<Tuple<string, int>>(),
TotalCount = 0
};
foreach (var secure in secures)
foreach (var component in components)
{
if (secure.SecureComponents.ContainsKey(component.Id))
{
record.Secures.Add(new Tuple<string, int>(secure.SecureName, secure.SecureComponents[component.Id].Item2));
record.Components.Add(new Tuple<string, int>(component.ComponentName, secure.SecureComponents[component.Id].Item2));
record.TotalCount += secure.SecureComponents[component.Id].Item2;
}
}
@ -97,7 +97,7 @@ namespace SecuritySystemBusinessLogic.BusinessLogics
_saveToExcel.CreateReport(new ExcelInfo
{
FileName = model.FileName,
Title = "Список компонент",
Title = "Список изделий и компонентов",
SecureComponents = GetSecureComponent()
});
}

View File

@ -31,11 +31,11 @@ namespace SecuritySystemBusinessLogic.OfficePackage
{
ColumnName = "A",
RowIndex = rowIndex,
Text = pc.ComponentName,
Text = pc.SecureName,
StyleInfo = ExcelStyleInfoType.Text
});
rowIndex++;
foreach (var secure in pc.Secures)
foreach (var secure in pc.Components)
{
InsertCellInWorksheet(new ExcelCellParameters
{

View File

@ -2,8 +2,8 @@
{
public class ReportSecureComponentViewModel
{
public string ComponentName { get; set; } = string.Empty;
public string SecureName { get; set; } = string.Empty;
public int TotalCount { get; set; }
public List<Tuple<string, int>> Secures { get; set; } = new();
public List<Tuple<string, int>> Components { get; set; } = new();
}
}

View File

@ -30,8 +30,8 @@
{
buttonSaveToExcel = new Button();
dataGridView = new DataGridView();
ColumnComponent = new DataGridViewTextBoxColumn();
ColumnSecure = new DataGridViewTextBoxColumn();
ColumnComponent = new DataGridViewTextBoxColumn();
ColumnCount = new DataGridViewTextBoxColumn();
((System.ComponentModel.ISupportInitialize)dataGridView).BeginInit();
SuspendLayout();
@ -50,22 +50,15 @@
//
dataGridView.Anchor = AnchorStyles.Top | AnchorStyles.Bottom | AnchorStyles.Left | AnchorStyles.Right;
dataGridView.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize;
dataGridView.Columns.AddRange(new DataGridViewColumn[] { ColumnComponent, ColumnSecure, ColumnCount });
dataGridView.Columns.AddRange(new DataGridViewColumn[] { ColumnSecure, ColumnComponent, ColumnCount });
dataGridView.Location = new Point(0, 47);
dataGridView.Name = "dataGridView";
dataGridView.RowHeadersVisible = false;
dataGridView.RowHeadersWidth = 51;
dataGridView.RowTemplate.Height = 29;
dataGridView.Size = new Size(800, 403);
dataGridView.Size = new Size(845, 403);
dataGridView.TabIndex = 1;
//
// ColumnComponent
//
ColumnComponent.AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
ColumnComponent.HeaderText = "Компонент";
ColumnComponent.MinimumWidth = 6;
ColumnComponent.Name = "ColumnComponent";
//
// ColumnSecure
//
ColumnSecure.AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
@ -73,18 +66,26 @@
ColumnSecure.MinimumWidth = 6;
ColumnSecure.Name = "ColumnSecure";
//
// ColumnComponent
//
ColumnComponent.AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
ColumnComponent.HeaderText = "Компонент";
ColumnComponent.MinimumWidth = 6;
ColumnComponent.Name = "ColumnComponent";
//
// ColumnCount
//
ColumnCount.AutoSizeMode = DataGridViewAutoSizeColumnMode.ColumnHeader;
ColumnCount.HeaderText = "Количество";
ColumnCount.MinimumWidth = 6;
ColumnCount.Name = "ColumnCount";
ColumnCount.Width = 266;
ColumnCount.Width = 119;
//
// FormReportSecureComponents
//
AutoScaleDimensions = new SizeF(8F, 20F);
AutoScaleMode = AutoScaleMode.Font;
ClientSize = new Size(800, 450);
ClientSize = new Size(845, 450);
Controls.Add(dataGridView);
Controls.Add(buttonSaveToExcel);
Name = "FormReportSecureComponents";
@ -98,8 +99,8 @@
private Button buttonSaveToExcel;
private DataGridView dataGridView;
private DataGridViewTextBoxColumn ColumnComponent;
private DataGridViewTextBoxColumn ColumnSecure;
private DataGridViewTextBoxColumn ColumnComponent;
private DataGridViewTextBoxColumn ColumnCount;
}
}

View File

@ -24,8 +24,8 @@ namespace SecuritySystemView.Report
dataGridView.Rows.Clear();
foreach (var elem in dict)
{
dataGridView.Rows.Add(new object[] { elem.ComponentName, "", "" });
foreach (var listElem in elem.Secures)
dataGridView.Rows.Add(new object[] { elem.SecureName, "", "" });
foreach (var listElem in elem.Components)
{
dataGridView.Rows.Add(new object[] { "", listElem.Item1, listElem.Item2 });
}

View File

@ -117,10 +117,10 @@
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="ColumnComponent.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<metadata name="ColumnSecure.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="ColumnSecure.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<metadata name="ColumnComponent.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="ColumnCount.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">