Промежуточное.

This commit is contained in:
ElEgEv 2023-10-10 00:38:20 +04:00
parent e79648acd7
commit 8750c3a305
2 changed files with 12 additions and 8 deletions

View File

@ -10,6 +10,7 @@ using System.Text;
using System.Threading.Tasks;
using VisualComponentsLib.Components.SupportClasses;
using Spire.Doc.Formatting;
using System.CodeDom;
namespace VisualComponentsLib.Components
{
@ -52,10 +53,10 @@ namespace VisualComponentsLib.Components
//создание таблицы
private void AddTable<T> (SetDataTable<T> setDataTable)
{
/*if (!CheckData(setDataTable.DataList))
if (!CheckData(setDataTable.DataList))
{
throw new Exception("Не все ячейки заполнены");
}*/
}
using (var document = WordprocessingDocument.Open(setDataTable.FilePath, true))
{
@ -157,6 +158,11 @@ namespace VisualComponentsLib.Components
}
));
if (string.IsNullOrEmpty(val.Name))
{
throw new Exception("Некорректное заполнение заголовка таблицы");
}
tc.Append(new Paragraph(new Run(new Text(val.Name))));
_tr.Append(tc);
@ -165,11 +171,11 @@ namespace VisualComponentsLib.Components
}
table.Append(_tr);
//увеличиваем счётчик на 1, т. к. в списке только два значения
indexHeaderHeigh++;
indexHeaderWidth = 0;
int numberColunm = 0;
//генерация тела таблицы
for (var i = 1; i < setDataTable.DataList.Count; i++)
@ -206,8 +212,6 @@ namespace VisualComponentsLib.Components
#endregion
doc.Body.Append(header);
doc.Body.Append(table);
@ -224,7 +228,7 @@ namespace VisualComponentsLib.Components
foreach (var value in data.GetType().GetProperties())
{
//для простоты проверки приводим значение каждого поля к типу string
if(string.IsNullOrEmpty(dataList.GetType().GetField(value.Name).GetValue(data).ToString()))
if(string.IsNullOrEmpty(value.GetValue(data).ToString()))
{
return false;
}

View File

@ -26,12 +26,12 @@ namespace VisualComponentsLib.Components.SupportClasses
List<double> widthCol, List<T> dataList)
{
FilePath = filePath;
FileHeader = fileHeader;
FileHeader = fileHeader;
HeightRow = heightRow;
WidthCol = widthCol;
DataList = dataList;
//DataList = DataList.GroupBy(field => field.GetType().GetProperties().First().Name).Select(field => field.ToList());
DataList.GroupBy(field => dataList[0].GetType().GetProperties().First()).Select(field => field.ToList());
}
////группировка элементов списка по первому полю