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