Кастомизация дизайнера отчетов

31.05.2020

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

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

Поэтому, все что нам нужно – добавить компонент дизайнера отчетов и создать собственную панель инструментов.

Добавим на форму компонент ToolStrip. И создадим на панели 7 кнопок:

  • New – создать новый отчет;
  • Open – открыть существующий шаблон отчета для редактирования;
  • Save – сохранить шаблон отчета;
  • Preview – предварительный просмотр отчета;
  • Undo – отменить последнее редактирование;
  • Redo – вернуть отмененное редактирование;
  • Close – закрыть программу.

Custom designer menu

Подключаем библиотеку FastReport.dll к проекту. И для формы создаем обработчик события Load:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
public DesignerControl designer; //Объявляем переменную для компонента дизайнер отчетов
 
 private void Form1_Load(object sender, EventArgs e)
 {
 designer = new DesignerControl(); //Создаем экземпляр дизайнера отчетов
 this.Controls.Add(designer); //Добавляем компонент на форму
 
 Report report = new Report(); //Создаем объект отчета
 designer.Report = report; //Передаем созданный пустой отчет в дизайнер отчетов
 designer.RefreshLayout(); //Обновляем дизайнер
 designer.Dock = DockStyle.Fill; //Задаем размещение компонента дизайнера
 designer.ShowMainMenu = false; //Отключаем меню в дизайнере
 }
 
 //Кнопка создания нового отчета
 private void ToolStripButton1_Click(object sender, EventArgs e)
 {
 designer.cmdNew.Invoke();
 }
//Кнопка открытия отчета
 private void OpenBtn_Click(object sender, EventArgs e)
 {
 designer.cmdOpen.Invoke();
 }
//Кнопка сохранения отчета
 private void SaveBtn_Click(object sender, EventArgs e)
 {
 designer.cmdSave.Invoke();
 }
//Кнопка просмотра отчета
 private void PreviewBtn_Click(object sender, EventArgs e)
 {
 designer.cmdPreview.Invoke();
 }
//Кнопка завершения программы
 private void CloseBtn_Click(object sender, EventArgs e)
 {
 this.Dispose();
 }
//Кнопка отмены последнего изменения
 private void UndoBtn_Click(object sender, EventArgs e)
 {
 designer.cmdUndo.Invoke();
 }
//Кнопка возврата последнего изменения
 private void RedoBtn_Click(object sender, EventArgs e)
 {
 designer.cmdRedo.Invoke();
 }

Как вы заметили, для каждой кнопки из созданной панели инструментов мы создали событие клика. В соответствии с назначением кнопок, мы вызываем нужную команду дизайнера.

Список доступных команд:

  • cmdNew – создание нового отчета;
  • cmdNewPage – создание новой страницы отчета;
  • cmdNewDialog – создание диалоговой формы отчета;
  • cmdOpen – открытие существующего шаблона отчета для редактирования;
  • cmdSave – сохранение шаблона отчета;
  • cmdSaveAs – сохранение шаблона отчета с указанием пути;
  • cmdSaveAll – сохранение всех изменений;
  • cmdClose – закрытие отчета в дизайнере;
  • cmdCloseAll – закрытие всех отчетов в дизайнере;
  • cmdPreview – просмотр отчета;
  • cmdPrinterSetup – установки печати;
  • cmdPageSetup – установки страницы отчета (ориентация, размеры и др.);
  • cmdAddData – добавить источник данных в отчет;
  • cmdSortDataSources – сортировать источники данных;
  • cmdChooseData – выбор источника данных;
  • cmdUndo – отмена последнего редактирования отчета;
  • cmdRedo – возврат последнего редактирования отчета;
  • cmdCut – вырезать в буфер обмена;
  • cmdCopy – копировать в буфер обмена;
  • cmdPaste вставить из буфера обмена;
  • cmdFormatPainter – задать формат рисовщика;
  • cmdDelete – удалить объект отчета;
  • cmdCopyPage – копировать страницу отчета;
  • cmdDeletePage – удалить страницу отчета;
  • cmdSelectAll – выделить все объекты на странице;
  • cmdGroup – сгруппировать объекты;
  • cmdUngroup – разгруппировать объекты отчета;
  • cmdEdit – редактировать настройки страницы отчета;
  • cmdFind – отображает окно поиска;
  • cmdReplace – отображает окно замены;
  • cmdBringToFront – объект дизайнера на передний план;
  • cmdSendToBack - объект дизайнера на задний план;
  • cmdInsert – проверяет включена ли опция вставки;
  • cmdInsertBand – вставить бэнд;
  • cmdRecentFiles – добавляет файл в список недавних файлов;
  • cmdSelectLanguage – выбрать язык локализации дизайнера;
  • cmdViewStartPage – включить стартовую страницу при открытии дизайнера;
  • cmdReportSettings – задать настройки отчета;
  • cmdOptions – задать настройки дизайнера;
  • cmdReportStyles – задать стиль отчета;
  • cmdHelpContents – показать веб страницу помощи;
  • cmdAbout – отобразить страницу About;
  • cmdWelcome – отобразить приветственную страницу;
  • cmdPolySelectMove, cmdPolySelectPointer, cmdPolySelectAddPoint, cmdPolySelectBezier, cmdPolySelectRemovePoint – настройки полигона.

А теперь запустим наше приложение:

Custom Report Designer

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

.NET FastReport Дизайнер Отчет Кастомизация .NET FastReport Дизайнер Отчет Кастомизация
10 февраля 2025

Как попробовать FastReport .NET WEB перед покупкой

Протестировав WEB пак перед покупкой, вы сможете сделать осознанный выбор: подходит ли вам FastReport .NET для ваших задач.
22 января 2025

Как подключить РЕД БД к генератору отчетов FastReport .NET

Пошаговая инструкция по подключению РЕД БД к генератору отчётов FastReport .NET. Эффективные методы и рекомендации для создания отчётов на основе данных из базы.
20 ноября 2024

Локализация и смена языков в FastReport VCL

FastReport VCL поддерживает 40 языков для локализации интерфейса и позволяет изменять язык на лету через меню или код, без перекомпиляции.