xtrareports-400711-desktop-reporting-wpf-reporting-end-user-report-designer-for-wpf-gui-interface-elements-report-gallery.md
The Report Gallery allows you to store and reuse reports and their elements.
Do not confuse the Report Gallery with the Report Explorer that has a similar user interface. The Report Gallery stores shared templates. The Report Explorer displays the current report structure.
The Report Gallery displays report layout templates in the Reports category.
To create a new template, right-click an empty area around the design surface and select Add To Gallery in the context menu. The report’s Name property value defines the template name.
Do one of the following to apply a template to the current report:
Right-click the template in the Report Gallery and select Apply Layout to Report.
Drag and drop the template from the Report Gallery onto the report.
The following dialog warns you that the template overrides the current layout:
When you apply the report template, all the associated styles and components are added to the current report as well.
The Report Gallery’s Bands category contains band templates.
To create a new template, right-click a report band and choose Add To Gallery in the context menu. The band’s Name property value defines the template name.
Use the following ways to apply a band template:
Drag and Drop
Gallery Context Menu
Note that the template stores settings related to the band and its controls (binding information, appearance options, etc). All these settings are restored when you apply the template.
You can combine report controls from the same band into a template. Hold down SHIFT or CTRL and select controls. Then, right-click the selection and choose Add To Gallery in the context menu.
This adds a new template to the Controls section. The template name consists of control names separated by commas.
To apply a control template, drag and drop it from the Report Gallery onto a band.
All the control settings are restored when you apply the template.
Right-click a style in the Report Explorer and select Add To Gallery to create a new template in the Styles category.
Use the following ways to apply a style template:
To add the style to the report’s style sheet, right-click the style in the Report Gallery and select Add to Report Style Sheet.
To apply the style to a specific report control, drag and drop this style from the Report Gallery onto this control. This also adds the selected style to the report style sheet if it does not already contain this style.
Right-click a data source in the Report Explorer and select Add To Gallery to create a new template in the Data Sources category.
Do one of the following to apply a data source template:
Right-click the template in the Report Gallery and select Add to Report Components in the context menu.
Drag and drop the template from the Report Gallery onto the report.
To change the template name, select Rename in the template’s context menu and type a new name.
Right-click a root Gallery node and select Add New Folder in the context menu.
Specify the folder name. Move templates to this folder to combine them into a group.
You can import gallery items from an XML file. Right-click the Import toolbar button, locate a file in the invoked Open dialog and click OK.
To save gallery templates to an XML file, click the Export toolbar button and select a target file in the Save dialog.
The Report Gallery stores templates in the %localappdata%\Developer Express Inc\XtraReports Suite\ReportGallery.xml file. You can implement a custom Report Gallery storage.
Do the following to store the Report Gallery’s templates in another file:
The code below demonstrates how to store templates in the directory that contains the application’s executable file.
using System;
using System.IO;
using DevExpress.XtraReports.Extensions;
// ...
string path = Path.Combine(Path.GetDirectoryName(AppDomain.CurrentDomain.BaseDirectory), "ReportGallery.xml");
reportDesigner.ReportGalleryOptions.Storage = new ReportGalleryDirectoryExtension(path);
Imports System
Imports System.IO
Imports DevExpress.XtraReports.Extensions
' ...
Private path As String = Path.Combine(Path.GetDirectoryName(AppDomain.CurrentDomain.BaseDirectory), "ReportGallery.xml")
reportDesigner.ReportGalleryOptions.Storage = New ReportGalleryDirectoryExtension(path)
Tip
Online Example : How to implement a custom Report Gallery storage
Do the following to store templates in any location (database, cloud, XPO object, etc.) and share them between multiple users:
Create a descendant from the abstract ReportGalleryExtension class.
Set the EnableSynchronization property to true to synchronize items in local Report Gallery instances with items from a shared storage.
Implement the TryLoadGallery method to load the Report Gallery from the storage.
Implement one of the following methods:
Create a storage instance and assign it to the Report Designer’s ReportGalleryOptions.Storage property.
If you enable gallery synchronization, the Refresh button becomes available in the Report Gallery toolbar. Click this button to explicitly synchronize gallery items with the storage.
The following dialog appears when you try to move or rename an item that another user removed:
Click OK to restore this item and add it to the Restored folder.