IConnectionProviderService Interface
If implemented, enables you to restore a data connection on deserializing a report.
Namespace: DevExpress.DataAccess.Wizard.Services
Assembly: DevExpress.DataAccess.v24.2.dll
Declaration
Related API Members
The following members return IConnectionProviderService objects:
Library | Related API Members |
---|---|
Cross-Platform Class Library | IConnectionProviderFactory.Create() |
WinForms Controls | ConfigureConnectionContext.ConnectionProviderService |
EditQueryContext.ConnectionProviderService | |
ManageRelationsContext.ConnectionProviderService | |
QueryBuilderEditQueryContext.ConnectionProviderService | |
RebuildResultSchemaContext.ConnectionProviderService |
Remarks
Use the IConnectionProviderService
interface to restore the data connections of a report and its child detail report bands.
The following code shows how to implement the IConnectionProviderService
interface:
using DevExpress.DataAccess.ConnectionParameters;
using DevExpress.DataAccess.Sql;
using DevExpress.DataAccess.Wizard.Services;
// ...
public class CustomConnectionProviderService : IConnectionProviderService {
public SqlDataConnection LoadConnection(string connectionName) {
// Specify custom connection parameters.
return new SqlDataConnection(connectionName,
new MsSqlConnectionParameters("localhost", "dataBaseName", "userName", "password", MsSqlAuthorizationType.Windows));
}
}
The IConnectionProviderService.LoadConnection method is invoked for each connection that is serialized in the report definition file. Use the connectionName parameter to specify connection options and return an SqlDataConnection object.
Use the implemented interface in an application that invokes a report‘s Print Preview or End-User Report Designer:
Windows Forms
The following code adds a custom connection provider service to the report’s PrintingSystem and displays the Print Preview:
using DevExpress.DataAccess.Wizard.Services; using DevExpress.XtraReports.UI; // ... XtraReport report = new XtraReport(); report.LoadLayout("XtraReport1.repx"); (report as IServiceContainer).AddService(typeof(IConnectionProviderService), new CustomConnectionProviderService()); ReportPrintTool pt = new ReportPrintTool(report); pt.ShowPreviewDialog();
The following code invokes the implemented IConnectionProviderService interface in the End-User Report Designer‘s DesignPanelLoaded event handler and launches the End-User Report Designer:
using DevExpress.DataAccess.Wizard.Services; using DevExpress.XtraReports.UI; // ... XtraReport report = new XtraReport(); report.LoadLayout("XtraReport1.repx"); ReportDesignTool tool = new ReportDesignTool(report); tool.DesignRibbonForm.DesignMdiController.DesignPanelLoaded += DesignMdiController_DesignPanelLoaded; tool.ShowRibbonDesignerDialog(); private void ReplaceService(IServiceContainer container, Type serviceType, object serviceInstance) { if (container.GetService(serviceType) != null) container.RemoveService(serviceType); container.AddService(serviceType, serviceInstance); } private void DesignMdiController_DesignPanelLoaded(object sender, DevExpress.XtraReports.UserDesigner.DesignerLoadedEventArgs e) { ReplaceService(e.DesignerHost, typeof(IConnectionProviderService), new CustomConnectionProviderService()); }
WPF
The following code adds a custom connection provider service to the report’s PrintingSystem and displays the Document Preview:
using DevExpress.DataAccess.Wizard.Services; using DevExpress.XtraReports.UI; // ... XtraReport report = new XtraReport(); report.LoadLayout("XtraReport1.repx"); report.PrintingSystem.AddService(typeof(IConnectionProviderService), new CustomConnectionProviderService()); documentPreviewControl.DocumentSource = report; report.CreateDocument();
The following code registers the implemented IConnectionProviderService interface and launches the End-User Report Designer:
<Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:dxrud="http://schemas.devexpress.com/winfx/2008/xaml/reports/userdesigner" x:Class="TestDesigner.MainWindow" Title="MainWindow" Height="350" Width="525"> <dxrud:ReportDesigner Name="ReportDesigner"> <dxrud:ReportDesigner.ServicesRegistry> <dxda:TypeEntry ServiceType="{x:Type dxdaw:IConnectionStorageService}" ConcreteType="{x:Type local:ConnectionStorageService}" /> <dxda:TypeEntry ServiceType="{x:Type dxdaw:IConnectionProviderService}" ConcreteType="{x:Type local:ConnectionProviderService}" /> </dxrud:ReportDesigner.ServicesRegistry> </dxrud:ReportDesigner> </Window>
Web Report Viewer and Designer
See the IDataSourceWizardConnectionStringsProvider interface description for instructions on how to store data connections.