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; }
|
|||
|
}
|
|||
|
```
|