Как использовать свои библиотеки с функциями в Designer

06.09.2018

Несмотря на то, что «арсенал» встроенных функций в дизайнере отчетов отнюдь не мал, иногда все же не хватает какой-то специфической. Благодаря наличию скрипта в отчете мы легко можем реализовать нужную функцию. Но что, если эта функция на нужна во многих отчетах? Каждый раз добавлять ее в скрипт отчета? Конечно же нет. Мы можем использовать собрать все любимые функции в библиотеку подключить ее к дизайнеру отчетов.

Желательно, чтобы библиотека размещалась в одной папке с отчетом.

Давайте создадим Class Library проект, в котором будет наша тестовая функция. К примеру – функция преобразования массива в строку. Получился такой класс.

1
2
3
4
5
6
7
8
9
10
namespace ArrayToString
{
 public static class UserDefined
 {
 public static string ArrayToString(List<string> parameters)
 {
 return String.Join(",", parameters);
 }
 }
}

Компилируем библиотеку.

Теперь создадим свое приложение, в котором вызовем генератор отчетов и воспользуемся нашей библиотекой ArrayToString. Это обычное Winforms Application. Добавляем библиотеку FastReport в ссылки проекта. Так как рекомендуется хранить вашу библиотеку в одной папке с исполняемым файлом вашего приложения, то можно добавить ссылку на нее в проект. При этом библиотека будет добавлена в папку с исполняемым файлом при компиляции.

В приложении только форма и кнопка. Для кнопки добавим обработчик события нажатия:

1
2
3
4
5
private void RunBtn_Click(object sender, EventArgs e)
 {
 Report report = new Report();
 report.Design();
 }

Запустим приложение и нажмем кнопку. При этом запустится дизайнер отчетов с пустым отчетом. В свойствах отчета, вы можете добавить ссылку на вашу .net библиотеку.

Теперь создадим простенький шаблон отчета – список категорий товаров:

В бэнд Page Footer добавляем текстовый объект. Скоро вы узнаете зачем он.

Перейдем на вкладку Script. Нам нужно создать список, в который мы будем добавлять названия категорий. Функция из пользовательской библиотеки преобразует список в одну строку, которую мы отобразим в подвале страницы.

Итак, создаем список:

1
2
3
4
public class ReportScript
 {
 public List<string> list = new List<string>();
 }

Вернемся к странице отчета. Для бэнда Data создадим обработчик события AfterPrint:

1
2
3
4
private void Data1_AfterPrint(object sender, EventArgs e)
 {
 list.Add(((String)Report.GetColumnValue("Categories.CategoryName")));
 }

Здесь мы добавляем имя категории каждый раз после отображения бэнда «Данные».

Теперь, добавим обработчик события BeforePrint для текстового объекта в подвале страницы:

1
2
3
4
 private void Text1_BeforePrint(object sender, EventArgs e)
 {
 Text1.Text = ArrayToString.UserDefined.ArrayToString(list);
 }

Здесь, мы присваиваем текстовому объекту строку, возвращаемую пользовательской функцией из добавленной ранее dll-ки. Обратите внимание, что путь к функции полный, с указанием неймспейса и имени класса. Можно сократить имя, если добавить библиотеку ArrayToString в using.

Теперь можно запустить отчет в режиме предварительного просмотра.

Верх страницы:

И низ страницы:

Таким образом, мы получили список категорий товаров в одной строке.

Кстати, вы можете использовать в текстовом объекте в подвале страницы выражение: [ArrayToString.UserDefined.ArrayToString(list)]

Оно абсолютно равнозначно этому:

1
2
3
4
 private void Text1_BeforePrint(object sender, EventArgs e)
 {
 Text1.Text = ArrayToString.UserDefined.ArrayToString(list);
 }

И не нужно создавать обработчик события.

Если вы хотите использовать пользовательскую библиотеку для отчетов в веб проекте, то нужно разместить ее в папке bin.

.NET FastReport Дизайнер Кастомизация .NET FastReport Дизайнер Кастомизация
10 июля 2026

Как настроить Content Security Policy для отчетов FastReport .NET WEB

Узнайте, как настроить Content Security Policy для отчётов FastReport .NET WEB: обзор директив и значений CSP, изменения в архитектуре FastReport, типичные сценарии обхода и способы защиты.
22 июня 2026

Как настроить отчет с Business Objects из кода и дизайнера в FastReport .NET

В этой статье рассматривается реальный пример создания и использования шаблона отчета .frx для подключения к иерархическим бизнес-объектам в FastReport .NET.
21 апреля 2026

Использование водяных знаков в FastReport VCL

В статье подробно рассмотрели функционал добавления водяных знаков в FastReport VCL — как через визуальный интерфейс, так и программно, с помощью кода на Delphi и в скриптах отчётов.

Не является публичной офертой
© 1998-2026 ООО «Быстрые отчеты»