Compare commits

...

1 Commits

Author SHA1 Message Date
bekodeg
63577d725c изменения для отчёта 2025-01-17 21:20:54 +04:00
12 changed files with 256 additions and 12 deletions

View File

@ -3,10 +3,12 @@ using PIHelperSh.PdfCreator;
using PIHelperSh.PdfCreator.Enums;
using PIHelperSh.PdfCreator.Models.PieChartModel;
using System.ComponentModel;
using static System.Runtime.InteropServices.Marshalling.IIUnknownCacheStrategy;
namespace Cop.Borovkov.Var3.Components
{
/// <summary>
/// Компонент создающий линейную диаграмму
/// </summary>
public partial class CustomPdfHistogram : Component
{
public CustomPdfHistogram()

View File

@ -1,13 +1,28 @@
namespace Cop.Borovkov.Var3.Models
{
/// <summary>
/// Параметры столбца таблицы
/// </summary>
public record CustomDataTableColumnParameter
{
/// <summary>
/// Заголовок
/// </summary>
public string HeaderName { get; init; } = string.Empty;
/// <summary>
/// Ширина
/// </summary>
public int Width { get; init; } = 0;
/// <summary>
/// Видимость
/// </summary>
public bool Visible { get; init; } = true;
/// <summary>
/// Название свойства
/// </summary>
public string PropertyName { get; init; } = string.Empty;
}
}

View File

@ -3,7 +3,7 @@
namespace Cop.Borovkov.Var3.Models
{
/// <summary>
/// Параметры для создания линейной диограммы
/// Параметры для создания линейной диаграммы
/// </summary>
public record PdfHistigramInfo
{
@ -18,7 +18,7 @@ namespace Cop.Borovkov.Var3.Models
public string DocumentTitle { get; init; } = "Гистограмма";
/// <summary>
/// Заголовок диограммы
/// Заголовок диаграммы
/// </summary>
public string HistogramTitle { get; init; } = "Гистограмма";
@ -31,5 +31,5 @@ namespace Cop.Borovkov.Var3.Models
/// Значения
/// </summary>
public required IEnumerable<PdfHistogramLineInfo> Values { get; init; }
}
}
}

View File

@ -1,7 +1,7 @@
namespace Cop.Borovkov.Var3.Models
{
/// <summary>
/// Параметры для создания таблици в пдф с группировкой по 1 столбцу
/// Параметры для создания таблицы в пдф с группировкой по 1 столбцу
/// </summary>
public class PdfTableWithGroupingInfo<TType> where TType : class
{

View File

@ -15,7 +15,7 @@ namespace PIHelperSh.PdfCreator.Enums
/// <summary>
/// Отступа нет
/// </summary>
[TypeValue<string>("ocm")]
[TypeValue<string>("0cm")]
None,
/// <summary>
/// Отступ небольшой

View File

@ -29,7 +29,7 @@ namespace PIHelperSh.PdfCreator.Models.ImageModels
public int? Height { get; set; } = null;
/// <summary>
/// Выравнивание текста внутри параграфа (по умолчанию - по левой строне)
/// Выравнивание текста внутри параграфа (по умолчанию - по левой стороне)
/// </summary>
public PdfAlignmentType ImageAlignment { get; set; } = PdfAlignmentType.Left;

View File

@ -18,7 +18,7 @@ namespace PIHelperSh.PdfCreator.Models.PieChartModel
public IEnumerable<(string Name, double Value)> Value { get; set; }
/// <summary>
/// Цвет области на диаграме. При null будет использоватсся выдача цветов по умолчанию)
/// Цвет области на диаграме. При null будет использоваться выдача цветов по умолчанию)
/// </summary>
public Color? Color { get; set; } = null;

View File

@ -1,7 +1,7 @@
namespace PIHelperSh.PdfCreator.Models.PieChartModel
{
/// <summary>
/// Модель линейной диограммы
/// Модель линейной диаграммы
/// </summary>
public class PdfHistogramModel : PdfPieChartModel
{

View File

@ -18,7 +18,7 @@ namespace PIHelperSh.PdfCreator.Models.PieChartModel
public double Value { get; set; }
/// <summary>
/// Цвет области на диаграме. При null будет использоватсся выдача цветов по умолчанию)
/// Цвет области на диаграме. При null будет использоваться выдача цветов по умолчанию)
/// </summary>
public Color? Color { get; set; } = null;

View File

@ -14,7 +14,7 @@ namespace PIHelperSh.PdfCreator.Models.TextModels
public class PdfList : IPdfElement
{
/// <summary>
/// Элементы списка (параграфы или иные спсики)
/// Элементы списка (параграфы или иные списки)
/// </summary>
public List<IPdfElement> Content { get; set; } = new();

View File

@ -24,7 +24,7 @@ namespace PIHelperSh.PdfCreator.Models.TextModels
public PdfStyleType Style { get; set; } = PdfStyleType.Basic;
/// <summary>
/// Выравнивание текста внутри параграфа (по умолчанию - по левой строне)
/// Выравнивание текста внутри параграфа (по умолчанию - по левой стороне)
/// </summary>
public PdfAlignmentType ParagraphAlignment { get; set; } = PdfAlignmentType.Left;

227
Report/report.md Normal file
View File

@ -0,0 +1,227 @@
# Лабораторная работа 1
## Компоненты:
### CustomDataTable:
Визуальный компонент вывода таблицы значений
__Публичные Методы__:
- Определить структуру таблицы
```c#
void ConfigureColumns(params CustomDataTableColumnParameter[] columnParameters)
```
CustomDataTableColumnParameter
```c#
/// <summary>
/// Параметры столбца таблицы
/// </summary>
public record CustomDataTableColumnParameter
{
/// <summary>
/// Заголовок
/// </summary>
public string HeaderName { get; init; } = string.Empty;
/// <summary>
/// Ширина
/// </summary>
public int Width { get; init; } = 0;
/// <summary>
/// Видимость
/// </summary>
public bool Visible { get; init; } = true;
/// <summary>
/// Название свойства
/// </summary>
public string PropertyName { get; init; } = string.Empty;
}
```
- Отчистить таблицу
```c#
public void Clear()
```
- Заполнить таблицу
```c#
public void Fill<TType>(IList<TType> insertValues)
```
__Публичные Функции__:
- Получить стоку таблицы в виде объекта
```c#
public TType? GetRow<TType>(int rowIndex) where TType : new()
```
__Свойства__:
- Индекс выбранной строки
```c#
public int SelectedRow
```
### CustomListBox
Визуальный компонент выбора из списка значений
__Публичные Методы__:
- Заполнить список значениями
```c#
public void FillValues(IEnumerable<string> strings)
```
- Очистить список
```c#
public void Clear()
```
__Свойства__:
- Событие возникающие при изменении списка
```c#
public event EventHandler ValueChanged
```
- Обработка ошибок
```c#
public event Action<Exception> AnErrorOccurred
```
- Выбранное значение
```c#
public string Selected
```
### CustomNumericInputField
Визуальный компонент ввода целочисленного значения допускающего null
__Свойства__:
- Событие возникающие при изменении поля ввода
```c#
public event EventHandler NumericInputChanged
```
- Обработка ошибок
```c#
public event Action<Exception> AnErrorOccurred
```
- Значения поля ввода
```c#
public int? Value
```
_Возможно исключение ```InvalidNumericInputValueException```_
# Лабораторная работа 2
## Компоненты:
### CustomPdfTable
Компонент для сохранения таблицы в пдф
__Публичные Методы__:
- Определить структуру таблицы
```c#
public void SaveToPdf(PdfTableInfo tableInfo)
```
PdfTableInfo
```c#
/// <summary>
/// Параметры для создания таблиц в пдф
/// </summary>
public record PdfTableInfo
{
/// <summary>
/// имя файла (включая путь до файла)
/// </summary>
public string FilePath { get; init; } = @"C:\pdfTable.pdf";
/// <summary>
/// название документа(заголовок в документе)
/// </summary>
public string Title { get; init; } = "Таблица";
/// <summary>
/// Список таблиц
/// </summary>
public IEnumerable<string[,]> Tables { get; init; } = [];
}
```
### CustomPdfTableWithGrouping
Компонент создающий таблицу и группирует элементы по 1 столбцу
__Публичные Методы__:
- Сохранить в пдф
```c#
public void SaveToPdf<TType>(PdfTableWithGroupingInfo<TType> tableInfo) where TType : class
```
PdfTableWithGroupingInfo
```c#
/// <summary>
/// Параметры для создания таблицы в пдф с группировкой по 1 столбцу
/// </summary>
public class PdfTableWithGroupingInfo<TType> where TType : class
{
/// <summary>
/// имя файла (включая путь до файла)
/// </summary>
public string FilePath { get; init; } = @"C:\pdfTable.pdf";
/// <summary>
/// название документа(заголовок в документе)
/// </summary>
public string Title { get; init; } = "Таблица";
/// <summary>
/// Высота заголовков
/// </summary>
public float HeaderHeight { get; init; } = 0.5f;
/// <summary>
/// Параметры столбцов
/// </summary>
public IEnumerable<ColumnInfo> Columns { get; init; } = [];
/// <summary>
/// Список таблиц
/// </summary>
public IEnumerable<RowInfo<TType>> Rows { get; init; } = [];
}
```
### CustomPdfHistogram
Компонент создающий линейную диаграмму
__Публичные Методы__:
- Сохранить гистограмму в пдф
```c#
public void SaveToPdf(PdfHistigramInfo histogramInfo)
```
PdfHistigramInfo
```c#
/// <summary>
/// Параметры для создания линейной диаграммы
/// </summary>
public record PdfHistigramInfo
{
/// <summary>
/// Имя файла (включая путь до файла)
/// </summary>
public string FilePath { get; init; } = @"C:\pdfTable.pdf";
/// <summary>
/// Заголовок документа
/// </summary>
public string DocumentTitle { get; init; } = "Гистограмма";
/// <summary>
/// Заголовок диаграммы
/// </summary>
public string HistogramTitle { get; init; } = "Гистограмма";
/// <summary>
/// Расположение легенды
/// </summary>
public PdfLegendPosition LegendPosition { get; init; } = PdfLegendPosition.Bottom;
/// <summary>
/// Значения
/// </summary>
public required IEnumerable<PdfHistogramLineInfo> Values { get; init; }
}
```