logo
small logo
  • Продукты
  • Купить
  • Поддержка
  • Статьи
  • Клиентская панель Поддержка
  • Главная
  • /
  • Статьи
  • /
  • Как создать свой собственный компонент для отчета FastReport .NET
  • Как выбрать топ значений в матрице

    22 апреля 2021 г.

    Статья актуальна до версии 2022.1. В FastReport.NET есть прекрасный инструмент для вывода данных в виде сводной

    Подробнее
  • Копирование бэндов отчета в другой со всем содержимым.

    31 марта 2021 г.

    Иногда возникает необходимость использовать части одного отчета в другом. В простых случаях для этого можно

    Подробнее
  • Отчёт из PostgreSQL в приложении .NET 5 под управлением Astra Linux

    4 декабря 2020 г.

    Сегодня мы поговорим о российской операционной системе Astra Linux. Эта система получила в последнее время

    Подробнее
  • Как использовать Online Designer в ASP .NET Core

    17 января 2018 г.

    Одной из новинок FastReport .NET 2018 стала адаптация OnlineDesigner под фреймворк .NET Core. В целом, онлайн

    Подробнее
  • Как использовать объект WebReport в приложениях ASP .NET Core

    17 января 2018 г.

    Не так давно FastReport порадовал нас новой библиотекой - FastReport Core. Это специальная версия FastReport

    Подробнее

Как создать свой собственный компонент для отчета FastReport .NET

14 мая 2021 г.

Генератор отчетов FastReport .NET обладает широкими возможностями кастомизации, то есть настройкой «под себя». Из кода пользовательского приложения вы можете создавать собственные компоненты генератора отчетов используя библиотеки FastReport. Таким образом можно создать как собственный дизайнер отчетов, так и его просмотрщик.

Также, вы можете подменять диалоговые окна в дизайнере отчетов, например, окно сохранения файла.

Но поистине безграничные возможности кастомизации дарит исходный код генератора отчетов. Вы можете переделать существующий функционал под свои нужды или добавить новый. Сегодня мы как раз-таки и поговорим о том, как добавить свой собственный элемент управления на панель элементов в дизайнере отчетов.

Допустим, в своих отчетах вы часто используете текстовый объект с определенными настройками. Было бы удобно иметь уже настроенный объект “текст” с определенным шрифтом или выделением цветом, чтобы не настраивать каждый раз эти свойства вручную.

Вам нужно будет просто создать свой собственный объект! Для этого достаточно унаследовать свой объект от уже существующего, если нужно расширить его функционал или создать совершенно новый.

Чтобы создать свой собственный компонент для отчета вам необходимы исходные коды генератора отчетов FastReport .NET. Давайте рассмотрим случай создания собственного объекта на основе объекта Text. Для этого нужно добавить новый класс в корень проекта FastReport:

 public class CustomerTextObject : TextObject
 {
 public override void OnBeforeInsert(int flags)
 {
 base.OnBeforeInsert(flags);
 Border.Lines = BorderLines.All;
 }
 }

В этом классе мы переопределили событие перед вставкой объекта, в котором задали значение по умолчанию для границ объекта. Таким образом наш текстовый объект будет сразу иметь включенные границы. Если вам требуется задать какие-либо другие свойства объекта - без проблем. Выставим цвет:

public override void OnBeforeInsert(int flags)
 {
 base.OnBeforeInsert(flags);
 Border.Lines = BorderLines.All;
 TextColor = System.Drawing.Color.Gray;
 }

В случае, если вы хотите создать объект с собственной функциональностью, то наследовать нужно от базового класса ReportComponentBase. Но тогда, помимо свойств объекта, его поведения, вам придется реализовать и отрисовку - метод Draw(). Затем вызвать в нем base.Draw() и добавить рисование объекта.

Давайте взглянем на пример отрисовки объекта Text:

public override void Draw(FRPaintEventArgs e)
 {
 base.Draw(e);
 DrawText(e);
 DrawMarkers(e);
 Border.Draw(e, new RectangleF(AbsLeft, AbsTop, Width, Height));
 DrawDesign(e);
 }

Как видите, здесь вызывается сразу несколько методов: для отрисовки текста, маркеров, границ и редактора.

После создания своего объекта, нужно зарегистрировать его, чтобы он появился на панели элементов в дизайнере отчета. Для этого используем метод FastReport.Utils.RegisteredObjects.Add() в классе AssemblyInitializer.cs.

Пример регистрации созданного нами ранее объекта:

RegisteredObjects.Add(typeof(CustomerTextObject), “ReportPage”, 120, 1);

Все параметры по порядку: имя регистрируемого объекта, имя объекта страницы отчета, идентификатор иконки объекта, порядковый номер объекта на панели инструментов. Иконки хранятся в ресурсах. Вы можете добавить свое изображение в формате bmp в ресурсы или передать его непосредственно в параметр метода вместо идентификатора иконки.

Теперь можно скомпилировать решение и запустить дизайнер отчетов. На панели элементов появился еще один контрол:

Объект в дизайнере отчётов

Мы использовали иконку от объекта Text, поэтому он выглядит также. А теперь добавим его на страницу отчета и введем текст:

Объект “Текст”

Как видим, и рамки, и цвет текста соответствуют нашим установка в коде. Мы с вами создали “кастомный” объект Text, который имеет предустановки границ и цвета текста. Вы можете настроить этим способом любой существующий объект в отчете, или создать свой собственный.

О продукте Скачать Купить
avatar
Dmitriy Fedyashov
Технический писатель
Fast Reports Team: Dmitriy Fedyashov - Technical Writer at Fast Reports
.NET FastReport

Добавить комментарий
logo
  • +7(800)551-75-80
  • info@fastreport.ru
  • Ростов-на-Дону, Россия, 344082, ул.Обороны 24, офис 311
  • Купить
  • Загрузить
  • Документация
  • Отзывы
  • Как деинсталировать
  • Онлайн поддержка
  • FAQ
  • Видео уроки
  • Форум
  • Статьи
  • Наши Новости
  • Пресса о нас
  • Реселлеры
  • ВУЗам
  • Карьера
  • Контакты

© 1998-2022 ООО «Фаст Репортс»

  • Согласие с обработкой персональных данных
  • Не является публичной офертой