Izenda Logo

About

This list allows the user specify additional SQL functions that should be accessible in an Expression. This setting can be used at the same time as Extended Functions.

Below is a sample global.asax using the ExpressionFunctions setting. The code block will appear within <script runat="server"> </script> tags within global.asax.

Best Practices

  • If a function will be used ONLY in an Expression, then you should use the ExpressionFunctions setting. Otherwise, use ExtendedFunctions to allow the function to be placed into the dropdown Function list in the report designer.

  • You should not use parentheses when you specify a function in ExtendedFunctions or ExpressionFunctions. All we want to do in these settings is list the function name itself, and not call the function.

  • When you specify a function in ExtendedFunctions you should use the full function name with schema. When you specify it in ExpressionFunctions short name is sufficient.

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.SqlServerConnectionString = "INSERT_CONNECTION_STRING_HERE";
    Izenda.AdHoc.AdHocSettings.AdHocConfig = new CustomAdHocConfig();
    AdHocSettings.ExpressionFunctions = new string[] {  "DATEADD", "LEFT" };//The relevant setting
    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.SqlServerConnectionString = "INSERT_CONNECTION_STRING_HERE"
        Izenda.AdHoc.AdHocSettings.AdHocConfig = New CustomAdHocConfig()
        AdHocSettings.ExpressionFunctions = New String() { "DATEADD", "LEFT" } 'The relevant setting
        HttpContext.Current.Session("ReportingInitialized") = True
    End Sub
End Class