Skip to main content
A newer version of this page is available. .

Lesson 2 - Connect a Document to Data

  • 6 minutes to read

This tutorial describes the steps required to connect a Snap document to data and provide a document data source with a master-detail relation. To start this tutorial, run the Snap application created in Lesson 1 - Create a Snap Application.

The tutorial consists of the following sections.

Connect to Data

This tutorial uses a connection to the sample Northwind database (the nwind.mdb file included in the product installation located by default at C:\Users\Public\Documents\DevExpress Demos 18.2\Components\Data).

To connect a Snap report to data, do the following.

Click Data | Add New Data Source on the Snap application’s ribbon toolbar.

snap-data-connection-wizard-command-ribbon-toolbar

Alternatively, right-click an empty area in the Data Explorer and click Add Data Source in the invoked menu.

Howto-Bind-Snap-Report-to-Data06

The Data Source Wizard is invoked. Proceed with the following steps in the wizard.

  1. On the first page of the invoked Data Source wizard, specify a name for the new data source and click Next.

    Howto-Bind-Snap-Report-to-Data01

  2. On the next page, select a data source type (Database) and click Next.

    Howto-Bind-Snap-Report-to-Data01a

  3. If a data connection has already been specified in the application, the next wizard page allows you to select whether to use one of the existing connections, or create a new one.

    DataSourceWizard-03

  4. On the next page, select a data provider, specify the required connection settings and click Next.

    Howto-Bind-Snap-Report-to-Data02

    Select from the following supported data source types.

    Relational Database System

    Supported Versions

    .NET Framework Data Provider

    .NET Standard 2.0 Data Provider

    Microsoft SQL Server

    2005 or higher

    2005 Express or higher

    Azure SQL Database

    System.Data.SqlClient.dll

    System.Data.dll (Included in .NET Framework)

    System.Data.SqlClient.dll

    Microsoft Access

    Access 2000 or higher

    Access 2007 or higher

    System.Data.dll (Included in .NET Framework)

     

    Microsoft SQL Server CE

    3.5, 4.0

    System.Data.SqlServerCe.dll (Included in .NET Framework)

     

    Oracle Database

    9i or higher

    Oracle.ManagedDataAccess.dll

    System.Data.OracleClient.dll

    Oracle.DataAccess.dll

    Oracle.ManagedDataAccess.Core.dll

    Amazon Redshift

    n/a

    Npgsql.dll

    Npgsql.dll

    Google BigQuery

    Only legacy SQL functions and operations are supported

    DevExpress.DataAccess.BigQuery.dll

    DevExpress.DataAccess.BigQuery.dll

    Teradata

    13.0 or higher

    Teradata.Client.Provider.dll

    Teradata.Client.Provider.dll

    SAP Sybase Advantage

    Advantage Database Server 9.1 or higher

    Advantage.Data.Provider.dll

     

    SAP Sybase ASE

    Sybase Adaptive Server 12.0 or higher

    Sybase.AdoNet4.AseClient.dll

     

    SAP SQL Anywhere

    11 or higher

    Sap.Data.SQLAnywhere.dll

     

    IBM DB2

    9.5 or higher

    IBM.Data.DB2.dll

    IBM.Data.DB2.Core.dll

    Firebird

    1.5 or higher, Dialect 3

    FirebirdSql.Data.FirebirdClient.dll

    FirebirdSql.Data.Firebird.dll

    FirebirdSql.Data.FirebirdClient.dll

    MySQL

    4.1 or higher

    MySql.Data.dll

    MySql.Data.dll

    Pervasive PSQL

    9.x or higher

    Pervasive.Data.SqlClient.dll

     

    PostgreSQL

    7.x or higher

    Npgsql.dll

    Npgsql.dll

    VistaDB

    4, 5

    VistaDB.5.NET40.dll

     

    SQLite

    3.x

    System.Data.SQLite.dll

    Microsoft.Data.SQLite.dll

    System.Data.SQLite.Core.dll

    Microsoft.Data.Sqlite.Core.dll

    XML file

    n/a

    Built-in support

    Built-in support

    Depending on the selected data provider, it may be necessary to specify additional connection options (such as authentication type and database name) on this page.

    Alternatively, you can select Custom connection string and specify the connection string.

    DSW-custom-connection-string

    Use the XpoProvider parameter to identify a data source provider. See connection string examples in the table below.

    Relational Database System

    Connection String Sample See Note

    Microsoft SQL Server *

    XpoProvider=MSSqlServer;Data Source=(local);User ID=username;Password=password;Initial Catalog=database;Persist Security Info=true

    *The MS SQL Server data provider is automatically specified if you set the “Initial Catalog” parameter and do not use the word “Provider” (for instance, the “XpoProvider” parameter) in the connection string.

    Microsoft Access

    XpoProvider=MSAccess;Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\mydatabase.mdb;User Id=admin;Password=;

    XpoProvider=MSAccess;Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\mydatabase.accdb;User Id=admin;Password=;

    Microsoft SQL Server CE

    XpoProvider=MSSqlServerCE;Data Source=MyDatabase.sdf;Password=MyPassword

    Oracle Database

    XpoProvider=Oracle;Data Source=TORCL;User ID=MyUserName;Password=MyPassword

    XpoProvider=ODP;Data Source=TORCL;User ID=MyUserName;Password=MyPassword

    XpoProvider=ODPManaged;Data Source=TORCL;User ID=MyUserName;Password=MyPassword

    Amazon Redshift

    XpoProvider=Amazon Redshift;Server=127.0.0.1;User ID=MyUserName;Password=MyPassword;Database=MyDatabase;Encoding=UNICODE

    Google BigQuery

    XpoProvider=BigQuery;ProjectID=myProject;DataSetId=myDataSet;OAuthClientId=myClientId;OAuthClientSecret=mySecret;OAuthRefreshToken=myRefreshToken

    XpoProvider=BigQuery;ProjectId=project;DatasetId=dataset;ServiceAccountEmail=example@gmail.com;PrivateKeyFileName=key.p12

    Teradata

    XpoProvider=Teradata;Data Source=myServerAddress;User ID=myUsername;Password=myPassword;

    SAP Sybase Advantage

    XpoProvider=Advantage;Data Source=\myserver\myvolume\mypat\mydd.add;ServerType=local;User ID=ASSSYS;TrimTrailingSpaces=true

    SAP Sybase ASE

    XpoProvider=Ase;Port=5000;Data Source=MyAseServer;User ID=MyUserName;Password=MyPassword;Initial Catalog=MyDatabase;Persist Security Info=true

    SAP SQL Anywhere

    XpoProvider=Asa;eng=server;uid=user;pwd=password;dbn=database;persist security info=true;

    IBM DB2

    XpoProvider=DB2;Server=server:port;Database=database;UID=user;PWD=password;

    Firebird

    XpoProvider=Firebird;DataSource=localhost;User=SYSDBA;Password=masterkey;Database=MyDatabase.fdb;ServerType=0;Charset=NONE

    MySQL

    XpoProvider=MySql;Server=MyServerAddress;User ID=MyUserName;Password=MyPassword;Database=MyDatabase;Persist Security Info= true;Charset=utf8

    Pervasive PSQL

    XpoProvider=Pervasive;Server=MyServerAddress;UID=MyUserName;PWD=MyPassword;ServerDSN=MyDatabase

    PostgreSQL

    XpoProvider=Postgres;Server=127.0.0.1;User ID=MyUserName;Password=MyPassword;Database=MyDatabase;Encoding=UNICODE

    VistaDB

    XpoProvider=VistaDB;Data Source=C:\mydatabase.vdb4

    XpoProvider=VistaDB5;Data Source=C:\mydatabase.vdb5

    SQLite

    XpoProvider=SQLite;Data Source=filename

    XML file

    XpoProvider=InMemoryDataStore;data source=D:\Contacts.xml;read only=True

    Note

    The connection strings demonstrated above are examples. You can specify alternative variants.

    To proceed to the next wizard page, click Next.

  5. On the next page, you are prompted to save the connection string including or excluding the user name and a password. Choose any option and click Next.
  6. This page allows you to select a query or a stored procedure.

    Click Run Query Builder… to invoke the Query Builder window.

    Howto-Bind-Snap-Report-to-Data03new

    Important

    Manual SQL editing is not allowed by default. Enabling custom SQL queries may lead to inadvertent or unauthorized modifications to your data/database structure. Before you decide to allow manual SQL editing, we recommend you to follow best practices and implement the appropriate end-user read/write permissions at the database level.

    If for some reason you have to enable custom SQL editing, set the SnapControl.Options.DataSourceWizardOptions.SqlWizardSettings.EnableCustomSql option to true.

    Note that only SELECT statements are allowed in the text. To override this restriction, handle the SnapControl.ValidateCustomSql event.

  7. In the invoked Query Builder window, double-click the Categories item in the list of available tables on the left to add it to the tables included into the query.

    Enable the check box for the Categories table, to include all of its fields in the view.

    Howto-Bind-Snap-Report-to-Data03anew

    Click OK to close the Query Builder and return to the Data Source Wizard.

  8. When the query is ready, click Finish to save it.

    Howto-Bind-Snap-Report-to-Data04new

After the data source has been added to the report, its data members and data fields are displayed in the Data Explorer.

Howto-Bind-Snap-Report-to-Data05new

Create a Master-Detail Relation

This section of the tutorial illustrates how to add a master-detail relation to the document’s data source.

  1. Right-click the NWind Data Source node in the Data Explorer window and select Manage Queries… in the invoked context menu.

    Howto-Bind-Snap-Report-to-Data06

  2. The Manage Queries dialog is displayed. It lists the available queries and allows you to edit them, delete or add a new query. Click the ellipsis to the right of the query name to invoke the Query Editor dialog for the selected query.

    Howto-Bind-Snap-Report-to-Data06a

  3. Click Run Query Builder.. to invoke the Query Builder window.

    Howto-Bind-Snap-Report-to-Data04new

  4. Double-click the Products item in the list of available tables on the left to include it in the list of data tables to be used.

    Howto-Bind-Snap-Report-to-Data07

    Enable the check box for the Products table, to include all of its fields in the view.

    Click OK to close the Query Builder. Click Finish to close the Query Editor. Click OK to close the Manage Queries window which contains now two queries.

  5. Right-click the NWind Data Source node in the Data Explorer window and select Manage Relations… in the invoked context menu.

    Howto-Bind-Snap-Report-to-Data08

  6. In the invoked Master-Detail Relation Editor window select the CategoryID item in the Categories table and drag it to item of the same name in the Products table.

    Howto-Bind-Snap-Report-to-Data08a

  7. The relation is created as illustrated in the following image.

    Howto-Bind-Snap-Report-to-Data08b

    Next, click OK to apply changes to the data source and exit.

  8. The content of the Data Explorer will be updated to reflect the new structure of the document data source.

    snap-master-detail-data-source

To create a detail report, drag-and-drop the ProductName, UnitPrice and UnitsOnOrder fields of the CategoriesProducts relation from the Data Explorer onto the document’s body, as shown in the image below.

Howto-Bind-Snap-Report-to-Data09

The master-detail report is now ready. Click the Print Preview button in the File tab of the ribbon menu to view the preview.

Howto-Bind-Snap-Report-to-Data10

See Also