#How can I apply a hidden filter using an inner query?
Note: Use the below method only when you have a large number of values. Normaly you don't have to add filters via inner query. Please use AdHocSettings.HiddenFilters instead.
##Hidden Filter C♯
For this example, we will use the Northwind database as our datasource. Here is our sample report in the report designer:

Below is a code sample showing how to add a hidden filter to a report. We will be using this query with our sample datasource.
public override void PreExecuteReportSet(ReportSet reportSet)
{
base.PreExecuteReportSet(reportSet);
Filter filter = new Filter();
filter.Column = "ShipCity";
filter.SqlOverride = "ShipCity IN (SELECT ShipCity FROM [dbo].[Orders] WHERE ShipCountry = 'USA')";
reportSet.Filters.AddHidden(filter);
}
After booting up our application and running our report, here is what we get:

##Hidden Filter with SQL Override
public override void PreExecuteReportSet(ReportSet reportSet)
{
base.PreExecuteReportSet(reportSet);
if(reportSet.Source.Equals("[dbo].[Customers]"))
{
Filter filter = new Izenda.AdHoc.Filter();
filter.Column = "email";
filter.SqlOverride = "(aspnet_Membership.email = 'greg@edelinsolutions.com' or aspnet_Membership.email='gedelin@yahoo.com')";
reportSet.Filters.AddHidden(filter);
}
}
Public Overrides Sub PreExecuteReportSet(ByVal reportSet As Izenda.AdHoc.ReportSet)
MyBase.PreExecuteReportSet(reportSet)
Dim emails(1) As String
emails(0) = "greg@edelinsolutions.com"
emails(1) = "gedelin@yahoo.com1"
Dim filter As New Izenda.AdHoc.Filter()
filter.Column = "email"
filter.Operator = OperatorTypes.In
filter.Values = emails
reportSet.Filters.AddHidden(filter)
End Sub
