![]() | Вспомогательные методы и классы |
Вспомогательные методы и классы в ряде случаев позволяют упростить взаимодействие с объектами отчёта или системы.
Типовым применением вспомогательных методов и классов является предварительная обработка данных и инкапсулирование многократно используемого исходного кода.
Вспомогательные методы и классы условно поделены следующие виды:
Внутренние - находятся непосредственно в теле отчёта и действуют строго в его рамках, дополняя по необходимости серверные основные и вспомогательные методы;
Серверные – находятся на сервере и при необходимости могут равноценно применяться для всех отчётов системы.
Пример описания внутреннего вспомогательного метода, заменяющего разделитель «\» пути объекта классификатора на указанный пользователем:
public static class Helper { public static string CaptionWithoutSlash(this ClassifierItem item, string delimeter = " - ") { return item.Caption.Replace("\\", delimeter); } }
Соответствующее использование в сценарии отчёта:
// Выводим данные на первый лист var sheet = WorkbookNonExcel.Worksheets.FirstOrDefault(); // Выбираем любую точку учёта var meterPoint = MeterPoint.GetInstances().First(); // Выбираем любую секцию шин var busbar = BusbarSection.GetInstances().First(); // В первую ячейку выводим название точки в формате "ул. Горького - д.1 - №001234" sheet.Cells[0, 0].Value = meterPoint.CaptionWithoutSlash(); // В первую ячейку выводим название секции шин в формате "ПС 35 кВ|РП-1|СШ-1" sheet.Cells[1, 0].Value = busbar.CaptionWithoutSlash("|");
Реализация серверных методов и классов выполняется отдельно, по завершению реализации исходных код помещается в файл *.cs и помещается в зарезервированный для этой цели каталог на сервере приложений.
![]() |
---|
Каталог сервера приложений при установке по умолчанию для размещения серверных вспомогательных методов и классов: C:\Pyramid\ControlService\RDContent\ReportHelpers\ |
Пример описания серверного вспомогательного метода форматирования заголовка таблицы:
public static class Helper { // Настроить формат заголовка таблицы public static void SetFormatForHeader(this ExcelWorksheet sheet, int startRow, int startColumn, int heigh, int width) { // Диапазон ячеек var range = sheet.Cells.GetSubrangeAbsolute(startRow, startColumn, startRow + heigh, startColumn + width); // Рамка вокруг ячеек range.Style.Borders.SetBorders(MultipleBorders.All, Color.Black, LineStyle.Thin); // Жирный шрифт для текста range.Style.Font.Weight = ExcelFont.BoldWeight; // Установить цвет заливки ячеек range.Style.FillPattern.SetSolid(Color.LightSteelBlue); } }
Соответствующее использование в сценарии отчёта:
// Выбрать первый лист в документе Excel var worksheet = WorkbookNonExcel.Worksheets.FirstOrDefault(); // Установить для ячеек формат заголовка worksheet.SetFormatForHeader(7, 0, 3, 10);