Do not input private or sensitive data. View Qlik Privacy & Cookie Policy.
Skip to main content
Announcements
WEBINAR April 23, 2025: Iceberg Ahead: The Future of Open Lakehouses - REGISTER TODAY
cancel
Showing results for 
Search instead for 
Did you mean: 
Anonymous
Not applicable

Limited list box values discrepancy

Hi,

Im trying to build an ad-hoc report with dynamic dimensions. For this reason I created an excel file where QV loads the dimension information (about 50 dimensions).

dimensions:

LOAD    _dimensionNo,

              _dimensionLabel,

              _dimension,

              _group

  FROM

[$(vExternalDataPath)dimensions.xlsx]

(ooxml, embedded labels, table is Sheet1);

I would like to keep the excel file because its easier to adjust than INLINE LOAD.

This worked totally fine with adding and removing the dimensions to the report from one big list-box. Now I wanted to group the different dimensions by information into multiple list-boxes which also worked totally fine with an expression instead of field:

=IF(match(_group, 'OriginInfo'),_dimensionLabel)

Now I got my dimensions all neat and tidy sorted into 6 list-box and here comes my dilemma.

I can select multiple values from one list-box and they show up correctly. In the statusbox I can see that by clicking one value, also the linked _group is selected.

When trying to add a value from another list-box / _group the current _group gets de-selected and also the related values I selected before.

Any ideas how to work around that?

I thought about creating tables for each _group but this would not work with my dynamic dimension selection in the report

I appreciate any input!!

- Lucas

1 Solution

Accepted Solutions
thomaslg_wq
Creator III
Creator III

Lucas,

Here is your data model with renamed dimensions tables upon group.

I created only 3 dynamic dimensions from 2 possibles groups in your dynamic tab  but you will be able to create as many as you wish by adding others "concat" and Number of subfield;

I explain the first dimension

=$(=subfield(

                    if(len(GetFieldSelections(_dimension_DestinationInfo))>0,concat(_dimension_DestinationInfo,';'),'')

                    &';'

                    &if(len(GetFieldSelections(_dimension_GoodsInfo))>0,concat(_dimension_GoodsInfo,';'),'')

,';',1))

Meaning:

Subfield function will search a string between 2 identical characters, at a desired place, the 2 parameters are ';' and '1' in this first dimension.

          /////// following is a long concat of selected values, separated by a ";"

          I concat every value of the field _dimension_DestinationInfo if there is at least one selection on it, separated by ";"

          I separated by ";"

          I concat every value of the field _dimension_GoodsInfo if there is at least one selection on it;seperated by ";"

You can add concat for others dimensions groups, and you'll have to change the number each time.

Hope it's clear...

View solution in original post

11 Replies
thomaslg_wq
Creator III
Creator III

Hi,

Why wouldn't it work with your dynamic dimension selection ?

Anonymous
Not applicable
Author

Because I would need to rename all the fields acoordingly to their group

_OriginDimensionNo,

_OriginDimensionLabel,

_OriginDimension,

_OriginGroup

I tried to just load the groups in seperate tables without renaming and QV just merged the tables to one because of the common field names.

And re-naming would not work with my dynamic dimensions because im refering to the field "DimensionLabel"

thomaslg_wq
Creator III
Creator III

You could rename and then when referring, doing as :

'['&$(=

subfield(

if(len(getfieldseletion(_1stOriginDimensionNo)>0,concatenate(_1stOriginDimensionNo,';')

&if(len(getfieldseletion(_2ndOriginDimensionNo)>0,';'&concatenate(_2ndOriginDimensionNo,';')

&if(len(getfieldseletion(_3rdOriginDimensionNo)>0,';'&concatenate(_3rdOriginDimensionNo,';')

& go on

,';'

,1 (as your first dynamic dimension)

)

)&']'

Maybe you could send some scrambled application with fake data but real separate dynamic dimension tables by group?

rubenmarin

Hi Lucas, maybe changing your selection method to check boxes works as expected. This is set on presentation tab:

Anonymous
Not applicable
Author

Thanks Ruben, Im already using the LED Checkboxes.

Thomas, I will reduce the datamodel and upload my qvw

Anonymous
Not applicable
Author

Thomas,

I don't really understand what your script is doing differently to mine. If you could explain the syntax a little I would really appreciate.

=$(=only({$ <_dimensionNo={1}>} _dimension))

I attached my QVW with one month data but it should be enough to explain the matter.

In the QVW I have my current "solution" on the one sheet explained and the problematic situation on the next one.

thomaslg_wq
Creator III
Creator III

Lucas,

Here is your data model with renamed dimensions tables upon group.

I created only 3 dynamic dimensions from 2 possibles groups in your dynamic tab  but you will be able to create as many as you wish by adding others "concat" and Number of subfield;

I explain the first dimension

=$(=subfield(

                    if(len(GetFieldSelections(_dimension_DestinationInfo))>0,concat(_dimension_DestinationInfo,';'),'')

                    &';'

                    &if(len(GetFieldSelections(_dimension_GoodsInfo))>0,concat(_dimension_GoodsInfo,';'),'')

,';',1))

Meaning:

Subfield function will search a string between 2 identical characters, at a desired place, the 2 parameters are ';' and '1' in this first dimension.

          /////// following is a long concat of selected values, separated by a ";"

          I concat every value of the field _dimension_DestinationInfo if there is at least one selection on it, separated by ";"

          I separated by ";"

          I concat every value of the field _dimension_GoodsInfo if there is at least one selection on it;seperated by ";"

You can add concat for others dimensions groups, and you'll have to change the number each time.

Hope it's clear...

settu_periasamy
Master III
Master III

Hi Lucas,

I think it is because of the ListBox Expression.

=IF(match(_group, 'ShipmentInfo'),_dimensionLabel)

suppose, if you select the value in the 'ShipmentInfo' ListBox, It will filter the Shipment Info related values. Like the below screen shot.

Capture.JPG

You can select, Multiple Label from the 'Shipment Info' value. Again, if you selecting the Label from other 'Info' ListBox, It will override the values. see the below screen shot.. (I don't select the value in the  _group  ListBox,

Just i selected the value  'Destination info' ListBox. -> Because of the same ListBox)

Capture.JPG

As i know, May be the workaround is, create the Separate Island table for each Info.

Anonymous
Not applicable
Author

Hey Thomas,


quite a a way to work around. I will try to implement this into my report.

Whats the reasoning behind the Binary Load? Is it necessary?


Thank you for your effort!!

Lucas