e99e190a8a917d899666a23bf26c5198ae64bbff
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 | - |
|
| 33 | + |
|
| 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 | + |
|
| ... | ... | \ No newline at end of file |