Кастомизация Viewer готового отчета в FastReport .NET

29.02.2020

Основной инструмент просмотра отчетов FastReport .NET – Viewer. Этот просмотрщик имеет богатый инструментарий для сохранения, экспорта, печати и других манипуляций с отчетом.

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

Этот вопрос возник и у пользователя генератора отчетов Combit List & Label.

Дизайнер отчетов FastReport.Net, как вы знаете, тоже позволяет просматривать отчеты. Для этого он использует все тот же Viewer. И вы можете настроить список доступных экспортов в настройках дизайнера. Меню File->Options->User Interface:

 

Кнопка Exports Menu открывает окно настройки отображения экспортов:

 

Можно настроить отображение как отдельных экспортов, так и целой группы. Для быстрого восстановления изначальных настроек есть кнопка Default Menu. Например, мы убрали из отображения экспорт в формат PDF, Office и XML. И действительно при просмотре отчета мы увидим, что в списке экспортов их больше нет:

 

Но из дизайнера отчетов мы можем настроить только отображение списка экспортов. Как же быть с другими элементами управления? Для этого придется воспользоваться навыками программирования. При создании приложения в котором будет запускаться просмотр отчетов мы можем задать настройки меню просмотрищика. Например, такой код:

1
2
3
4
5
Report report = new Report();
 report.Load("App_Data/Master-Detail.frx");
 report.Prepare();
 FastReport.Utils.Config.PreviewSettings.Buttons = PreviewButtons.Print | PreviewButtons.Design;
 report.ShowPrepared();

Здесь, мы настраиваем отображение кнопок. А именно - явно перечисляем кнопки, которые будут отображены: Print и Design.

В результате мы получим:           

Отличный результат – ничего лишнего. Помимо кнопок, также отображается номер страницы в поле ввода. Его убрать нельзя, иначе без кнопок навигации по страницам невозможно будет переходить на другие страницы.

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

Config.PreviewSettings.Buttons = PreviewButtons.All;

Можно пойти другим путем и не перечислять кнопки, которые нужно отображать, а наоборот перечислить те, которые нужно исключить:

Config.PreviewSettings.Buttons ^= PreviewButtons.Email;

При этом, кнопка отправки электронного письма пропадет, а все остальные будут доступны.

Конечно же, вы можете редактировать список доступных экспортов по аналогии с выше приведенными примерами.

Там же можно настраивать список экспортов через:

Config.PreviewSettings.Exports

И экспорты в облака через:

Config.PreviewSettings.Clouds

20 ноября 2024

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

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

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

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

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

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