Quick filter values


How can I get the values from Quick filter? The field and the value. It is not visible in form query or query run neither before super in execute query nor after… The task is to run certain functionality if user has filtered the data, this works perfectly with normal filters, but if user filters with quick filter field - it doesn’t work anymore as there are no filters on form query.

I guess you’re using using data source method queryBuildDataSource() (or something else returning the same value) instead of queryRunQueryBuildDataSource().

I’m using this to get normal fitlers:

boolean valueExists(FieldId _fieldId)

    Query localQuery;
    QueryRun localQR;

    localQR = Table_ds.queryRun();

    localQuery = localQR.query();

    qbds = localQuery.dataSourceTable(tableNum(Table));

    QueryFilter qFilter = localQuery.findQueryFilter(qbds, fieldId2Name(tableNum(Table), _fieldId));

    return qFilter && qFilter.value();

and it works for user filters (set at the top of grid column), but not for quick filter - for quick filter they remain empty. Is that what you mean?

Your code doesn’t show how you initialize localQuery variable, which is the key information. Also, localQR is not used anywhere.

Yes, sorry, they were defined in another place and I’ve not copied it to the example. Now fixed it and formatted as should be

ok, thanks for listening me out ) found the methods on filter control:


I can get all needed info from them. Thanks!

Good! I was just going to mention Query.quickFilterValue(). Surprisingly methods like Query.queryFilterCount() don’t seem to work.