Do not input private or sensitive data. View Qlik Privacy & Cookie Policy.
Skip to main content

Announcements
Qlik Open Lakehouse is Now Generally Available! Discover the key highlights and partner resources here.
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

setting slection criteria based on values currently or not currently selected

I want to set a date range to be current month to 12 months back, which works correctly in my trigger with the following expression

='>=' & AddMonths(max(OrderDateMMDDYYYY), -12 , 0 ) & '<=' & Date(max(OrderDateMMDDYYYY))

I only want to set that if there is not a selection already made on that field - I tried using

=IF (GetSelectedCount(OrderDateMMDDYYYY) = 0,'>=' & AddMonths(max(OrderDateMMDDYYYY), -12 , 0 ) & '<=' & Date(max(OrderDateMMDDYYYY))) - this would select the date range only if there was not a value previously selected for that field - this problem being encountered with the statement above is if there is a selection within the field from another tab, when I go to the tab, there are no items selected -

If the OrderDateMMDDYYYY has a selected value, then leave as is, if it does not, set it to current month through 12 months back - this is being done via a trigger on select in field OnActivate sheet - It only seems to work when there is nothing selected

2 Replies
swuehl
MVP
MVP

You could use an appropriate expression for the ELSE branch of your if() statement to keep your selection, but I think there is an easier solution:

As search string, leave your original expression unchanged:

='>=' & AddMonths(max(OrderDateMMDDYYYY), -12 , 0 ) & '<=' & Date(max(OrderDateMMDDYYYY))

Now, for the field,where you previously used

OrderDateMMDDYYYY

(as far as I've understood), use your condition:

=if( GetSelectedCount(OrderDateMMDDYYYY) = 0, 'OrderDateMMDDYYYY',NULL())

Not applicable
Author

it looks like the following performs as I needed - if the are selections made, keep date selected, but if there are not any selects, set the date field to be current plus 12 months back

=IF (count(GetCurrentSelections() > 0),GetFieldSelections(OrderDateMMDDYYYY),('>=' & AddMonths(max(OrderDateMMDDYYYY), -12 , 0 ) & '<=' & Date(max(OrderDateMMDDYYYY))))