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

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

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

20 ноября 2024

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

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

Новые возможности редактора отчетов FastReport VCL

Рассматриваем новые возможности редактора отчетов: выносные линии, подсветка пересекающихся объектов, обновлённые деревья отчетов и данных.
30 октября 2024

Использование стилей при создании отчетов в FastReport VCL

В статье подробно рассматривается одна из новых возможностей FastReport VCL – применение стилей и страниц стилей.