Cop.Borovkov.Var3/Report/report.md

227 lines
6.4 KiB
Markdown
Raw Normal View History

2025-01-17 21:20:54 +04:00
# Лабораторная работа 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; }
}
```