FAQ/applying-hidden-filter-using-inner-query.md
... ...
@@ -30,10 +30,12 @@ public override void PreExecuteReportSet(ReportSet reportSet)
30 30
31 31
After booting up our application and running our report, here is what we get:
32 32
33
-![](/FAQ/applying-hidden-filter-using-inner-query/hidden_filters_2.png)
33
+![](/FAQ/applying-hidden-filter-using-inner-query/hidden_filters_0.png)
34 34
35 35
##Hidden Filter with SQL Override
36 36
37
+The SqlOverride property can be used to more precisely handle inner queries for the filter. You simply need to define the Column and the SqlOverride properties to use it. See the query below for a demonstration.
38
+
37 39
###C♯
38 40
39 41
```csharp
... ...
@@ -43,8 +45,8 @@ public override void PreExecuteReportSet(ReportSet reportSet)
43 45
if(reportSet.Source.Equals("[dbo].[Orders]"))
44 46
{
45 47
Filter filter = new Izenda.AdHoc.Filter();
46
- filter.Column = "email";
47
- filter.SqlOverride = "(aspnet_Membership.email = 'greg@edelinsolutions.com' or aspnet_Membership.email='gedelin@yahoo.com')";
48
+ filter.Column = "ShipCity";
49
+ filter.SqlOverride = "ShipCity IN (SELECT ShipCity FROM [dbo].[Orders] WHERE ShipCountry = 'USA')"; //There is no need to use the Operator or Values properties with SqlOverride
48 50
reportSet.Filters.AddHidden(filter);
49 51
}
50 52
}
... ...
@@ -53,15 +55,15 @@ public override void PreExecuteReportSet(ReportSet reportSet)
53 55
###VB.NET
54 56
55 57
```visualbasic
56
-Public Overrides Sub PreExecuteReportSet(ByVal reportSet As Izenda.AdHoc.ReportSet)
57
- MyBase.PreExecuteReportSet(reportSet)
58
- Dim emails(1) As String
59
- emails(0) = "greg@edelinsolutions.com"
60
- emails(1) = "gedelin@yahoo.com1"
61
- Dim filter As New Izenda.AdHoc.Filter()
62
- filter.Column = "email"
63
- filter.Operator = OperatorTypes.In
64
- filter.Values = emails
65
- reportSet.Filters.AddHidden(filter)
58
+Public Overrides Sub PreExecuteReportSet(ByVal reportSet As Izenda.AdHoc.ReportSet)
59
+ MyBase.PreExecuteReportSet(reportSet)
60
+ If reportSet.Source.Equals("[dbo].[Orders]") Then
61
+ Dim filter As New Izenda.AdHoc.Filter()
62
+ filter.Column = "ShipCity"
63
+ filter.SqlOverride = "ShipCity IN (SELECT ShipCity FROM [dbo].[Orders] WHERE ShipCountry = 'USA')" 'There is no need to use the Operator or Values properties with SqlOverride
64
+ reportSet.Filters.AddHidden(filter)
65
+ End If
66 66
End Sub
67
-```
... ...
\ No newline at end of file
0
+```
1
+
2
+![](/FAQ/applying-hidden-filter-using-inner-query/hidden_filters_2.png)
... ...
\ No newline at end of file