#VisibleDataSources

##About Data Type: string[]
Accepted Values: Table, view and stored procedure names
Default value: Empty array
Impacted Features: Report Design, Report List
Purpose: Gets or sets the array of names for tables and views that should be shown in the "Data Sources (Tables and Views)" drop-down in the Report Designer on the Data Sources tab.
Usage: This setting is used to make stored procedures appear in Izenda. It is also used to limit what data sources each user has access to for security reasons.
Caveats: Setting any values in this list will completely override the normally constructed list of tables and views on a per-user basis. Additionally, any reports that use a data source that is hidden from the current user will not be available for a user to access.

##Code Samples ###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.VisibleDataSources = new string[] {"DataSource1", "DataSource2"}; //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.VisibleDataSources = New String() {"Datasource1", "Datasource2"} 'The relevant setting
        HttpContext.Current.Session("ReortingInitialized") = True
    End Sub
End Class

##Alternate Usage: All Tables, Views and Stored Procedures Visible

If you would like for all tables, views and stored procedures to be shown, use the following snippet.

//setting vis datasources
DataSet ds = AdHocContext.Driver.GetDataSet(AdHocContext.Driver.CreateCommand("select * from sys.objects where type in ('U','P','V')"));
string[] results = new string[ds.Tables[0].Rows.Count];
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
results[i] = ds.Tables[0].Rows[i][0].ToString();
AdHocSettings.VisibleDataSources = results;

##Screenshots

AdHocSettings.VisibleDataSources = new string[] { "Products", "Orders", "Customers" };

VisibleDataSources = new string[] {"Products", "Orders", "Customers" };