Query Filters

Selecting query filters will impose restrictions upon the report being produced and return a set of results that matches the filters you set. For example, if you select the Status Open, then only open issues will be displayed. Filters can be combined together, for example to show Open issues for the product named XXX that have been updated in the last 7 days.

Saving filter sets

Dialog for saving filters

You may save any set of filters that you have defined, without making them part of a report. To achieve this, create the filters in either the Standard or Advanced mode as described below, then press the Save / Update Filters button. Within the popup window, you can either save the filters using a new name, replace an existing set of filters, or you can delete an existing filter set. The advantage is that you can quickly save and restore filter sets, using the Quicklist to display the results set. The query filters change significantly, according to whether you are in Standard Query or Expanded Query mode.

Standard Query Mode

This allows you to choose the values for fields, upon which records are selected for the report. There is a set of filters available directly on the Query / Report screen, as well as from the screens where you prepare or edit reports that you save for future use. Typically, the Query / Report screen will show the most common filters you use, while the remaining screens show a more complete set of filters to which you have access. The fields available for your use are set up by your administrator.

Standard query filters

If a query filter you select is the parent in a relationship, for example, the Module field may be dependent on the Product field, then the screen will refresh, and the child field will be populated with the valid entries for the parent you selected. If your administrator has enabled the feature that allows you to search for inactive users, an additional prompt appears on the screen alongside the Query Filters heading. This is a checkbox with the label Show Inactive Users. When you check this, all the selection lists of users, will be refreshed, and will show inactive as well as active users, allowing you to perform searches for users who were at one time, but are not currently, licensed users of ExtraView. Note that this feature only works in Standard Query mode, and is not operable in Advanced Query mode.

Advanced Query Mode

If your administrator has given you access to advanced query mode, you first will select an individual field as the first filter to use in selecting individual records for the report. Then you select an operator such as “equals” or “greater than”, and then you select the value. For example, a filter may be: Status not equal to Closed You may add as many filters as you like, with each one beginning with a conjunction such as “and” or “or”. Advanced filters take a little longer to set up than standard mode filters, but they allow much more flexibility to create a complex set of query filters.

Advanced filter selection

To add a new filter, use the button. Note that you can add filters following any existing filter. If you want to delete an individual filter from a query, use the button. This will eliminate the filter. In advanced mode, you can set the same filter field multiple times and use the “or” value. For example, you may set two filters as follows

Priority equals P1 or Priority equals P2

Alternatively, you can use the Expanded search mode described below, and select multiple values from the Priority list.

Advanced Query Filter Operators

The operators that appear in the drop down list are sensitive to the display type of the field you select. This allows you to select operators that only make sense and are eligible for each field display type. This table shows how this operates:

Field display type Operator values in Condensed Filter Mode Operator values in Expanded Filter Mode
Currency, Decimal, Number Equals
Greater than
Less than
Not equal
Less than or equal to
Greater than or equal to
Empty
Not empty
Equals
Greater than
Less than
Not equal
Less than or equal to
Greater than or equal to
Empty
Not empty
Checkbox, List, Pop-up, Tab, User Equals
Not equal
Equals
In
Not equal
Not In
Date, Day Equals
Greater than
Less than
Not equal
Less than or equal to
Greater than or equal to
Between
Empty
Not empty
During
After
Before
After or during
Before or during
Equals
Greater than
Less than
Not equal
Less than or equal to
Greater than or equal to
Between
Empty
Not empty
During
After
Before
After or during
Before or during
Keyword Contains Contains
Text Field Equals
Contains
Not Equal
Empty
Not Empty
Equals
Contains
Not Equal
Empty
Not Empty

 

The operator values are largely self-explanatory, but a word of explanation is needed about the Empty and Not Empty values. When a numeric field (currency, decimal or number display types) is stored in ExtraView, and you do not enter a value, zero is not the value stored. A null, or empty value is stored and these are treated differently. Therefore searching for a value of empty will retrieve a different set of results that searching for a value of zero. Also, note that for Checkbox, List, Pop-up, Tab and User fields when in Expanded Query mode, there are two additional operators, In and Not In. These allow you to define a list of values to search for that must be present or must not be present. If you want to search for both empty and zero values, you may combine two filter conditions together, as exemplified by the following: Amount Equals 0 or Amount is Empty.

Fields with a display type of Date and Day present different options for their values, according to whether an arithmetic operator such as equals or greater than is chosen, or a duration such as during or after is chosen.  When an arithmetic operaor is chosen, you may enter dates into one or both date value fields.  When you choose a duration, you are presented with a list of durations such as last month, this fiscal quarter and this month to date.  ExtraView understands the meaning of these durations and will filter your query or report using the duration you select.

Advanced Query Filter Conjunctions

The following conjunctions can be used between the different filters of a report:

Conjunction Meaning
and This filter will ensure that both filter conditions on each side of the and are true, before including the results
or This filter will include results from the search, if either of the conditions on each side of the or is true
union

This will take the results of all the filters together preceding the conjunction union, together with the results of the filters in the query following the conjunction, and merge the results of both queries. For example, if you union two queries together, then you will see the results of both queries being returned on the report. The area within the red outline shows the results returned by two queries using the union conjunction.

minus

This will take the results of the query filter(s) before the conjunction minus, and remove all results in common with the results of the query filter(s) following the conjunction. For example, if the query before the minus returns 100 rows, and the query following the minus returns 60 rows, 30 of which are to be found in the first part of the query, you will see 70 rows on the report that is generated. The area within the red outline shows the results returned by two queries using the minus conjunction.

intersect

This will take the results of the query filter(s) before the conjunction intersect, and only display the results that are in common with the results of the query filter(s) following the conjunction. For example, if the first part of your query before the intersect returns 100 rows, and the second part of the query after the intersect returns another 100 rows, and 30 of the results are in both parts of the query, you will see these 30 rows returned on the report. The area within the red outline shows the results returned by two queries using the iintersect conjunction.

If your ExtraView installation is running on a Microsoft SQL Server database prior to the 2005 version or on the MySQL database0 not all the conjunctions are functional due to database limitations. Only conjunctions that are known to work are operable. Check with your administrator if you are not certain which database is used by your company. If you have more than one union, minus or intersect conjunction in a query, then the filters up to the first one that contains the conjunction are grouped together. The order in which you choose filters is significant if you choose to use the “or” conjunction in your query. The rules for parsing the queries are as follows, with the parentheses showing the precedence.

Order of conjunctions Significance
One “or” as the last filter The condition in the filter with the “or” is used over the whole query. For example: Product equals XYZ and Priority equals P 1 and Status equals Open or Severity equals Severe This query is parsed as follows: (Product equals XYZ and Priority equals P 1 and Status equals Open ) (or Severity equals Severe )
One “or” that is not the last filter The “and” operators take precedence over the “or” operator. For example: Product equals XYZ and Priority equals P 1 or Priority equals P 2 and Severity not equal Severe This query is parsed as follows: (Product equals XYZ and Priority equals P 1 ) (or Priority equals P 2 and Severity not equal Severe )
There are multiple “and” and “or” filters Once again, the “and” operators take precedence over the “or” operators. For example: Product equals XYZ and Priority equals P 1 or Priority equals P 2 and Severity not equal Severe or Severity not equal Major This query is parsed as follows: (Product equals XYZ and Priority equals P 1 ) (or Priority equals P 2 and Severity not equal Severe ) (or Severity not equal Major )

Note: You can toggle between standard search mode filters and advanced search mode filters at any time, but the filters currently on the screen are reset. Filters are not lost when you change between condensed and expanded filters.

Allowed Values and Advanced Queries

Allowed values do not operate within filters selected for advanced queries. You will see all the parent and all the child values in the filter lists for these queries.

Querying for Inactive Values

Within Advanced Search lists, an entry * Show disabled values * will appear in any list that contains values that have been disabled by the administrator. For example, you may wish to search for issues where the originator of the issue has left your company and their account has been disabled. If the field contains any values that are disabled, then you can select * Show disabled values * and the screen will refresh, showing all the disabled values. You can revert to only displaying enabled values with the prompt * Do not show disabled values * that will now be in the list.

Querying with Date / Time Functions

Day and Date display type fields have two basic ways in which they are used as query filters, depending on the operator you select.

Operator Functionality
Equals
Greater than
Less than
Not equal
Less than or equal to
Greater than or equal to
Between
Empty
Not empty

 
When you choose one of these operators, two date input fields appear, each with a popup calendar.  Depending on the operator you select, you will enter a date (and potentially time) into none, one or the two fields.  When you select Equals, Greater than, Less than, Not equal, Less than or equal to, or Greater than or equal to then you only enter a date into the first field.  When you select Between, you enter two dates.  If you select Empty or Not empty, then you do not enter any date values
During
After
Before
After or during
Before or during
When you choose one of these operators, you are presented with a number of date / time expressions which complete the filter.  The list of valid expressions and their meanings is as follows.  This table assumes that today's date is Sunday, February 20th 2015 and the fiscal year setting of your installation starts on January 1.
 
Title Data dictionary field name Expression resolves to
Last 4 weeks EVDTF_LAST_4_WEEKS January 25th 2015 - February 14th 2014
Last 7 days EVDTF_LAST_7_DAYS Febraury 13th 2014 - February 19th 2014
Last fiscal quarter EVDTF_LAST_FISCAL_QUARTER October 1st 2014 - December 31st 2014
Last fiscal year EVDTF_LAST_FISCAL_YEAR January 1st 2014 - December 31st 2014
Last fiscal quarter to date * EVDTF_LAST_FQ_TO_DATE October 1st 2014 - November 20th 2014
Last fiscal year to date * EVDTF_LAST_FY_TO_DATE January 1st 2014 - February 20th 2014
Last month EVDTF_LAST_MONTH January 1st 2015 - January 31st 2015
Last month to date EVDTF_LAST_MONTH_TO_DATE January 1st 2015 - January 20th 2015
Last quarter EVDTF_LAST_QUARTER October 1st 2014 - December 31st 2014
Last quarter to date EVDTF_LAST_QUARTER_TO_DATE October 1st 2014 - November 20th 2014
Last week EVDTF_LAST_WEEK February 8th 2015 - February 14th 2015
Last week to date * EVDTF_LAST_WEEK_TO_DATE February 8th 2015 - February 13th 2015
Last year EVDTF_LAST_YEAR January 1st 2014 - December 31st 2014
Last year to date EVDTF_LAST_YEAR_TO_DATE January 1st 2014 - February 20th 2014
Next 4 weeks EVDTF_NEXT_4_WEEKS February 22nd 2015 - March 21st 2015
Next 7 days EVDTF_NEXT_7_DAYS February 21st 2015 - February 27th 2015
Next fiscal quarter EVDTF_NEXT_FISCAL_QUARTER April 1st 2015 - June 30th 2015
Next fiscal year EVDTF_NEXT_FISCAL_YEAR January 1st 2016 - December 31st 2016
Next month EVDTF_NEXT_MONTH March 1st 2015 - March 31st 2015
Next quarter EVDTF_NEXT_QUARTER April 1st 2015 - June 30th 2015
Next week EVDTF_NEXT_WEEK February 22nd 2015 - February 28th 2015
Next year EVDTF_NEXT_YEAR January 1st 2015 - December 31st 2015
This week to date EVDTF_THIS_WEEK_TO_DATE February 15th 2015 - February 20th 2015
This fiscal quarter EVDTF_THIS_FISCAL_QUARTER January 1st 2015 - March 31st 2015
This fiscal year EVDTF_THIS_FISCAL_YEAR January 1st 2015 - December 31st 2015
This fiscal quarter to date * EVDTF_THIS_FQ_TO_DATE January 1st 2015 - February 20th 2015
This fiscal year to date * EVDTF_THIS_FY_TO_DATE January 1st 2015 - February 20th 2015
This month EVDTF_THIS_MONTH February 1st 2015 - February 28th 2015
This month to date * EVDTF_THIS_MONTH_TO_DATE February 1st 2015 - February 20th 2015
This quarter EVDTF_THIS_QUARTER January 1st 2015 - March 31st 2015
This quarter to date EVDTF_THIS_QUARTER_TO_DATE January 1st 2015 - February 20th 2015
This week EVDTF_THIS_WEEK February 15th 2015 - February 21st 2015
This week to date * EVDTF_THIS_WEEK_TO_DATE February 15th 2015 - February 20th 2015
This year EVDTF_THIS_YEAR January 1st 2015 - December 31st 2015
This year to date EVDTF_THIS_YEAR_TO_DATE January 1st 2015 - February 20th 2015
Today EVDTF_TODAY February 20th 2015
Yesterday EVDTF_YESTERDAY February 19th 2015

* These expressions are not commonly used.  If you require to use these, ask your administrator to turn them on within the data dicationary by setting the Filter Criteria of the expression fields to Yes.

Querying for Multiple Issue Numbers (ID's)

On the Search/Report screen, you can type multiple issue ID’s into the Issue ID field. Separate these by a semicolon ‘;’.

Querying for Null or No Values

There are occasions when it is useful to be able to search for a null value, or the absence of a value. For example, you may want a report where the filter is to be “show me all the records that have an empty customer field”. If the field is a list field, you can select the entry * None *. If the field is a text field, however, you can enter the character string {null}, to signify that you are looking for a null.

Querying with User Name Fields

User fields have two options related to their ability to search, using the selected value or values as filters. First, there is an entry within the search list, * Current User *. When this entry is selected, the name of the user currently signed in is used as the filter value. If your administrator has enabled the option, there may also be an entry in the list, * Include Inactive Users *. By default, each list of users only includes activated users. When you select this option, the screen refreshes and the user list will include both active and inactive user names. If your installation uses pop-up selection for users, a checkbox will allow any search you make, to include inactive user names.

Querying with Checkbox Fields

Checkboxes are odd in their behavior.  This is because you, the user sees them as unchecked and checked.  However, the underlying databases upon which ExtraView relies also sees them as not being set at all.  To the databases, this is different value, termed a "null" value.  Therefore checkboxes have three potential values, null, unchecked and checked.  As far as possible, ExtraView treats the null value as being the same as unchecked.  However, once a checkbox is checked, and then subsequently unchecked, its value remains as unchecked and never goes back to null.  Querying for a value of unchecked within a checkbox, will also include looking for the null value.

Runtime Replacement Filters

Both Container Reports and Dashboard Reports provide the opportunity to run multiple reports that give a single, combined output.  Each individual report within Container Reports and Dashboards may, and probably will, have their own filters.  However there are times where it can be useful to apply a single set of runtime filters to all the reports.  Container Reports and Dashboard Reports give the opportunity to provide runtime replacement filters that are applied to all the reports on their output.

For example, you might want to apply a runtime replacement filter that applies the same date range to all the output, or apply a filter that provides only results from a specific product within the output.

When you specify runtime replacement filters within a Dashboard Report or Container Report, they will replace filters for the same field within the individual reports that they contain.  If a runtime replacement filter at the Dashboard or Container report level does not appear within the contained report, it will have no effect.  Further, it is not possible to specify conjunctions for the global filters - they simply replace filters for the same field within the contained reports.  The runtime replacement filters are always displayed in expanded mode, allowing you to make multiple selections within a field.

Tip: A typical use case might be to create a dashboard that contains several reports about all your products, but you want to filter on the report output by a single product.  You cannot select a runtime replacement filter with a value similar to Product = Any, but you can select all the product values in the list and store that as your filter.  Then, after viewing the dashboard, you can select a new filter value that is either just one, or a selection of products.