227 lines
6.4 KiB
Markdown
227 lines
6.4 KiB
Markdown
# Лабораторная работа 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; }
|
||
}
|
||
``` |