Для изменения размера нажмите или перетащите

Вспомогательные методы и классы

Вспомогательные методы и классы в ряде случаев позволяют упростить взаимодействие с объектами отчёта или системы.

Типовым применением вспомогательных методов и классов является предварительная обработка данных и инкапсулирование многократно используемого исходного кода.

Вспомогательные методы и классы условно поделены следующие виды:

  • Внутренние - находятся непосредственно в теле отчёта и действуют строго в его рамках, дополняя по необходимости серверные основные и вспомогательные методы;

  • Серверные – находятся на сервере и при необходимости могут равноценно применяться для всех отчётов системы.

Вспомогательные методы

Пример описания внутреннего вспомогательного метода, заменяющего разделитель «\» пути объекта классификатора на указанный пользователем:

C#
public static class Helper 
{
    public static string CaptionWithoutSlash(this ClassifierItem item, string delimeter = " - ")
    {
        return item.Caption.Replace("\\", delimeter);
    }
}

Соответствующее использование в сценарии отчёта:

C#
// Выводим данные на первый лист
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\

Пример описания серверного вспомогательного метода форматирования заголовка таблицы:

C#
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);
    }
}

Соответствующее использование в сценарии отчёта:

C#
// Выбрать первый лист в документе Excel
var worksheet = WorkbookNonExcel.Worksheets.FirstOrDefault();
// Установить для ячеек формат заголовка
worksheet.SetFormatForHeader(7, 0, 3, 10);
См. также