036316ceac5e0ea53e7e81bfb812f0c235cdc621
FAQ/applying-hidden-filter-using-inner-query.md
| ... | ... | @@ -18,12 +18,16 @@ public override void PreExecuteReportSet(ReportSet reportSet) |
| 18 | 18 | { |
| 19 | 19 | base.PreExecuteReportSet(reportSet); |
| 20 | 20 | Filter filter = new Filter(); |
| 21 | - filter.Column = "ShipCity"; |
|
| 22 | - filter.SqlOverride = "ShipCity IN (SELECT ShipCity FROM [dbo].[Orders] WHERE ShipCountry = 'USA')"; |
|
| 21 | + //These three parameters are what are normally shown in the Filters tab of the report designer |
|
| 22 | + filter.Column = "ShipCity"; //Filter Field |
|
| 23 | + filter.Operator = OperatorTypes.In; //Operator |
|
| 24 | + filter.Values = new string[] {"Boise"}; //Value(s) |
|
| 23 | 25 | reportSet.Filters.AddHidden(filter); |
| 24 | 26 | } |
| 25 | 27 | ``` |
| 26 | 28 | |
| 29 | +**Note:** The **Values** property should always be used, even for one item. |
|
| 30 | + |
|
| 27 | 31 | After booting up our application and running our report, here is what we get: |
| 28 | 32 | |
| 29 | 33 |  |
| ... | ... | @@ -36,7 +40,7 @@ After booting up our application and running our report, here is what we get: |
| 36 | 40 | public override void PreExecuteReportSet(ReportSet reportSet) |
| 37 | 41 | { |
| 38 | 42 | base.PreExecuteReportSet(reportSet); |
| 39 | - if(reportSet.Source.Equals("[dbo].[Customers]")) |
|
| 43 | + if(reportSet.Source.Equals("[dbo].[Orders]")) |
|
| 40 | 44 | { |
| 41 | 45 | Filter filter = new Izenda.AdHoc.Filter(); |
| 42 | 46 | filter.Column = "email"; |
| ... | ... | @@ -56,7 +60,7 @@ Public Overrides Sub PreExecuteReportSet(ByVal reportSet As Izenda.AdHoc.ReportS |
| 56 | 60 | emails(1) = "gedelin@yahoo.com1" |
| 57 | 61 | Dim filter As New Izenda.AdHoc.Filter() |
| 58 | 62 | filter.Column = "email" |
| 59 | - filter.Operator = OperatorTypes.In |
|
| 63 | + filter.Operator = OperatorTypes.In |
|
| 60 | 64 | filter.Values = emails |
| 61 | 65 | reportSet.Filters.AddHidden(filter) |
| 62 | 66 | End Sub |