I think the solution that @DJongman proposed is interesting and should be evaluated. I don't see much difference on the requirements he described compared with the previous solution, so if the previous one works, this one should work too, with the advantage that you now have a single value button.
I've tested it in VA 8.2 and it worked, but I took the liberty to rewrite it to use the new isSet operator. I think it helps clarify why and how this solution works.
The calculated item used to populate the button is rewritten like this:
IF NOT(( 'p_Reset'p IsSet )) RETURN 'Reset all filters' ELSE 'Resetting'
And the calculated item used to populate the prompt (for Make for example) becomes this:
IF NOT(( 'p_Reset'p IsSet )) RETURN 'Make'n ELSE 'Resetting...'
This solution works because the parameter p_Reset is initially not set to any value and the button displays 'Reset all filters'. Every time you click on the button, the parameter is set to a value ('Reset all filters'), forcing the button label to change to 'Resetting', and every time the data behind a button changes, the button goes back to its default state, which is nothing selected. This sets the parameter back to a "not set" state which in turn changes the button label back to "Reset all filters". Flipping the value of the parameter back and forth between a not set and a set state is all that you need to trigger the control object (prompt) to be reset, as its underlying data changes and the prompt values are reloaded with nothing selected.
I really like it and I'd definitely give it a try.
best,
Renato
... View more