32b712979cfefdf9c22f202b9e3ea0f4d13e576b
FAQ/applying-hidden-filter-using-inner-query.md
| ... | ... | @@ -0,0 +1,59 @@ |
| 1 | +#How can I apply a hidden filter using an inner query |
|
| 2 | + |
|
| 3 | +[[_TOC_]] |
|
| 4 | + |
|
| 5 | +**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. |
|
| 6 | + |
|
| 7 | +##Hidden Filter C♯ |
|
| 8 | + |
|
| 9 | +For this example, we will use the Northwind database as our datasource. |
|
| 10 | +Here is our sample report in the report designer: |
|
| 11 | + |
|
| 12 | +![]() |
|
| 13 | + |
|
| 14 | +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. |
|
| 15 | + |
|
| 16 | +```csharp |
|
| 17 | +public override void PreExecuteReportSet(ReportSet reportSet) |
|
| 18 | +{ |
|
| 19 | + base.PreExecuteReportSet(reportSet); |
|
| 20 | + Filter filter = new Filter(); |
|
| 21 | + filter.Column = "ShipCity"; |
|
| 22 | + filter.SqlOverride = "ShipCity IN (SELECT ShipCity FROM [dbo].[Orders] WHERE ShipCountry = 'USA')"; |
|
| 23 | + reportSet.Filters.AddHidden(filter); |
|
| 24 | +} |
|
| 25 | +``` |
|
| 26 | + |
|
| 27 | +After booting up our application and running our report, here is what we get: |
|
| 28 | + |
|
| 29 | +![]() |
|
| 30 | + |
|
| 31 | +##Hidden Filter with SQL Override |
|
| 32 | + |
|
| 33 | +```csharp |
|
| 34 | +public override void PreExecuteReportSet(ReportSet reportSet) |
|
| 35 | +{ |
|
| 36 | + base.PreExecuteReportSet(reportSet); |
|
| 37 | + if(reportSet.Source.Equals("[dbo].[Customers]")) |
|
| 38 | + { |
|
| 39 | + Filter filter = new Izenda.AdHoc.Filter(); |
|
| 40 | + filter.Column = "email"; |
|
| 41 | + filter.SqlOverride = "(aspnet_Membership.email = 'greg@edelinsolutions.com' or aspnet_Membership.email='gedelin@yahoo.com')"; |
|
| 42 | + reportSet.Filters.AddHidden(filter); |
|
| 43 | + } |
|
| 44 | +} |
|
| 45 | +``` |
|
| 46 | + |
|
| 47 | +```visualbasic |
|
| 48 | +Public Overrides Sub PreExecuteReportSet(ByVal reportSet As Izenda.AdHoc.ReportSet) |
|
| 49 | + MyBase.PreExecuteReportSet(reportSet) |
|
| 50 | + Dim emails(1) As String |
|
| 51 | + emails(0) = "greg@edelinsolutions.com" |
|
| 52 | + emails(1) = "gedelin@yahoo.com1" |
|
| 53 | + Dim filter As New Izenda.AdHoc.Filter() |
|
| 54 | + filter.Column = "email" |
|
| 55 | + filter.Operator = OperatorTypes.In |
|
| 56 | + filter.Values = emails |
|
| 57 | + reportSet.Filters.AddHidden(filter) |
|
| 58 | +End Sub |
|
| 59 | +``` |
|
| ... | ... | \ No newline at end of file |