Дизайнер отчетов изобилует большим количеством функциональных возможностей, которые многие пользователи не используют. Иногда многообразие иконок и меню только отвлекает. Поэтому многие пользователи хотели бы иметь упрощенную версию дизайнера отчетов с только необходимыми им функциями. Такой, кастомизированный дизайнер отчетов можно предоставлять конечным пользователям, встраивая его в свое приложение.
В этой статье мы рассмотрим, как создать пользовательские элементы управления дизайнером ответов, то есть пользовательскую панель инструментов с нужными функциональными кнопками. Сделать это достаточно просто. Дело в том, что компонент дизайнера отчетов предоставляет нам своего рода API, для вызова некоторых его функций, таких как: создание, загрузка и сохранение отчета, печать, просмотр отчета и многие другие.
Поэтому, все что нам нужно – добавить компонент дизайнера отчетов и создать собственную панель инструментов.
Добавим на форму компонент ToolStrip. И создадим на панели 7 кнопок:
- New – создать новый отчет;
- Open – открыть существующий шаблон отчета для редактирования;
- Save – сохранить шаблон отчета;
- Preview – предварительный просмотр отчета;
- Undo – отменить последнее редактирование;
- Redo – вернуть отмененное редактирование;
- Close – закрыть программу.
Подключаем библиотеку 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 – настройки полигона.
А теперь запустим наше приложение:
На первый взгляд обычный дизайнер отчетов. Но обратите внимание на верхнюю панель инструментов – она не стандартная. На нее мы вынесли только нужные нам функции.