Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
I searched on this topic and didn't find any satisfying answers.
Something has definitely changed between QlikView and Qlik Sense. We are running Nov 2019.
I have a set of statuses that I have formatted as DUAL values using a mapping table:
TS_StatusOrderMap:
mapping load * inline [
Status, Flag
Posted, 4
Submitted, 3
Approved, 2
Open, 1
] ;
I then apply this in the script to my table like so:
LOAD
...
DUAL(Status,ApplyMap('TS_StatusOrderMap',Status)) as Status,
...;
Once I reload, my Status filter only shows the numeric values 1-4, and my measure were i'm asking for it to show the
Max(Status) or even MaxString(Status) always shows a number. I need to show the text values.
There are cases where there are multiple statuses for a given row of data, so I need to show the max status.
What is going on here?
Can you try Text(Max(Status))?
An alternative solution could be.
TS_StatusOrderMap:
mapping load Status, dual(Status,Flag) inline [
Status, Flag
Posted, 4
Submitted, 3
Approved, 2
Open, 1
] ;
//Then apply this in the script to your table like so:
LOAD
...
ApplyMap('TS_StatusOrderMap',Status) as Status,
...;
I haven't quite put my finger on the issue yet, but it turns out that in my script, I load the data first as a temp table and then I create a new table with some additional translations. If I do the DUAL in the first load, everything works normally, but if I do it in the second table load, the weird behavior occurs where even a filter list of the Status field shows numbers instead of text values. Once I moved the DUAL to the first table, MaxString worked just fine.
I think this is a bug in QS as I have never seen it happen in QV.