This documentation is for the legacy Izenda 6 product. Documentation for the new Izenda 7 product can be found at https://www.izenda.com/docs/
Izenda Reports lets business users generate simple custom reports without involving SQL experts or developers. Izenda Reports is an agile reporting solution for ASP.NET and can be installed in about an hour. These are the installation instructions for different database versions, if you have a question about the installation process, please contact us. If you have not already downloaded Izenda Reports, you can review this article and request a trial license key.
Izenda Reports supports the following databases:
Izenda Fusion (additional module) delivers dynamic real-time analytics from multiple databases and applications without having to do periodic ETL into a data warehouse. Also, support for other database architectures is possible. Please speak to our sales team for more information.
Izenda Reports supports connecting to multiple data sources simultaneously by using views. Views are the simplest and most secure way to connect to many different data sources in order to build reports. For specific examples of how to apply and use views, click here.
Requirements:
Instructions :
InitializeReporting()
method.Requirements (must be installed prior to database setup):
Instructions:
InitializeReporting()
method.Requirements (must be installed prior to database setup):
Instructions:
InitializeReporting()
method.About
The PostgreSQLConnectionString is what Izenda AdHoc uses to initialize an PostgreSQL connection. This will do all the heavy lifting for including tables, functions, and stored procedures. It will also build queries utilizing the Izenda PostgreSQL Driver.
Important! Ensure that the database login can read the tables and views
Below is a sample global.asax using the PostgreSQLConnectionString setting. The code block will appear within <script runat="server"> </script>
tags within global.asax.
Global.asax (C♯)
//main class: inherits DatabaseAdHocConfig or FileSystemAdHocConfig public class CustomAdHocConfig : Izenda.AdHoc.DatabaseAdHocConfig { // Configure settings // Add custom settings after setting the license key and connection string by overriding the ConfigureSettings() method public static void InitializeReporting() { //Check to see if we've already initialized. if (HttpContext.Current.Session == null || HttpContext.Current.Session["ReportingInitialized"] != null) return; AdHocSettings.LicenseKey = "INSERT_LICENSE_KEY_HERE"; //Creates a connection to Microsoft SQL Server AdHocSettings.PostgreSQLConnectionString = "INSERT_CONNECTION_STRING_HERE"; //The relevant setting Izenda.AdHoc.AdHocSettings.AdHocConfig = new CustomAdHocConfig(); HttpContext.Current.Session["ReportingInitialized"] = true; } }
Global.asax (VB.NET)
'main class: inherits DatabaseAdHocConfig or FileSystemAdHocConfig Public Class CustomAdHocConfig Inherits Izenda.AdHoc.DatabaseAdHocConfig Shared Sub InitializeReporting() 'Check to see if we've already initialized If HttpContext.Current.Session Is Nothing OrElse HttpContext.Current.Session("ReportingInitialized") IsNot Nothing Then Return 'Initialize System AdHocSettings.LicenseKey = "INSERT_LICENSE_KEY_HERE" AdHocSettings.PostgreSQLConnectionString = "INSERT_CONNECTION_STRING_HERE" 'The relevant setting Izenda.AdHoc.AdHocSettings.AdHocConfig = New CustomAdHocConfig() HttpContext.Current.Session("ReortingInitialized") = True End Sub End Class
Parts of a Connection String
Izenda uses a third party .NET data provider to connect to PostgreSQL instances, called Npgsql. There are certain patterns that are recognized as settings within the connection string for Npgsql, such as the User ID and Password, and the structure of the connection string differs from other ODBC, JDBC, and OLE DB providers for PostgreSQL databases. You can read more about the parts of the Npgsql PostgreSQL connection string here. Here are the essential parts of the connection string:
There are many different constructions of a proper connection string. Please see the link above for more information.
Then you simply have to insert the values you need into the connection string:
public static void InitializeReporting() { String uname = HttpContext.Current.Session["UserName"]; String pw = HttpContext.Current.Session["Password"]; //unsecure. Use at your own risk. There are many great articles about how to handle usernames and passwords and perhaps your organization already uses one. Izenda.AdHoc.AdHocSettings.PostgreSQLConnectionString = "Server=zag.izenda.com;Port=5432;Database=Northwind;User ID="+ uname + ";Password=" + pw + ";Integrated Security=False"; }
If you wish to test your connection string to ensure connectivity, you can perform the following steps:
If you wish to have different connections for different users, it can be accomplished easily in Izenda by simply setting up a conditional section in your InitializeReporting method to check whether your condition is true or not before setting the connection string. By default, this setting is initialized with each user who logs in or accesses the application. If you already have a login process in place with the conditions for each user's connection already worked out, then it is simply a matter of setting the connection string. Below is an example of a multi-conditional connection string. In the example, WebServiceRequest is a static interface to a web service that has a method called GetCurrentApplicationUser that returns an object of type User.
C♯ example
public static void InitializeReporting() { //Check to see if we've already initialized. if (HttpContext.Current.Session == null || HttpContext.Current.Session["ReportingInitialized"] != null) return; User myApplicationUser = WebServiceRequest.GetCurrentApplicationUser(); //your method for obtaining the authenticated user AdHocSettings.CurrentUserName = myApplicationUser.UserName; //Set the CurrentUserName if (myApplicationUser.IsAdministrator) AdHocSettings.SqlConnectionString = WebServiceRequest.GetConnectionStringForAdmin(); //Set the connection string for an admin else AdHocSettings.SqlConnectionString = WebServiceRequest.GetConnectionStringForUser(); //Set the connection string for a regular user }
VB.NET example
Public Shared Sub InitializeReporting() 'Check to see if we've already initialized. If HttpContext.Current.Session Is Nothing OrElse HttpContext.Current.Session("ReportingInitialized") IsNot Nothing Then Return Dim myApplicationUser As User = WebServiceRequest.GetCurrentApplicationUser() 'your method for obtaining the authenticated user AdHocSettings.CurrentUserName = myApplicationUser.UserName 'Set the CurrentUserName If myApplicationUser.IsAdministrator Then AdHocSettings.SqlConnectionString = WebServiceRequest.GetConnectionStringForAdmin() 'Set the connection string for an admin Else AdHocSettings.SqlConnectionString = WebServiceRequest.GetConnectionStringForUser() 'Set the connection string for a regular user End If End Sub
Last edited by Michael Hornaday, 2016-03-08 12:38:26