Skip to main content
Announcements
Join us at Qlik Connect for 3 magical days of learning, networking,and inspiration! REGISTER TODAY and save!
cancel
Showing results for 
Search instead for 
Did you mean: 
w0jt4z
Contributor III
Contributor III

Show/Hide Columns with the intended order

Hi Everyone,

it's me again 🙂
I have another problem with my app, I try to do table with dynamic columns. I had it in previous version on my application, but it's not satisfy me.
I have specific table with some attributes. For example, I have a few column, which are always. It is Document Number, Document Value, etc. Every Document has additional data. For example Sale Date, Comments, etc. I want to create filter pane with dimensions for this additional data. I did it just the way:  I have table with my dimensions, it's all on the filter pane. Every column has that expression:
GetSelectedCount(Dimension)>0 AND if(WILDMATCH(concat(Dimension),'*Sale Date*') = 1, True(), False())
It works very well, but it is one problem with that. I can't set order of this column for every case, I can only set "general" order and every report will be have the same order. I can't use pivot table, because then are merged data, so one record for Sale Date 2020-02-02, etc. I saw here the solution for my problem with extension "Climber custom report", but It's not free, my client don't want to buy it. The best solution for me is to set columns order with order of click of the dimensions, but I suppose it's immposible. Anyone have some idea how can I solve that?

9 Replies
Or
MVP
MVP

I'm a Vizlib customer, so my easy answer is "Just use a Vizlib Table", but that doesn't help you because, like Custom Report, these extensions aren't free...

If your list of dimensions isn't too long, you could try a different Dynamic Table approach - having multiple selection fields, one per dimension (or expression).

Load * Inline [

Dim1

Company

Sale Date

Item ];

 

Load * Inline [

Dim2

Company

Sale Date

Item ];

etc. to create dimension lists, and likewise for measures. Then the user can select on value in each dimension, and the dimension itself will simply be =$(Dim1). I forget if you have to go through a variable here or if you can point at the dimension directly, but if that doesn't work, create a variable vDim1 which is =Only(Dim1) and then use that in your dimension.

In order to avoid extra dimensions in which the user has not made a selection, you can add a calculation condition of GetSelectedCount(Dim1)=1 for the first dimension, etc.

w0jt4z
Contributor III
Contributor III
Author

Unfortunaly the list of dimension is very long...
I thought about Vizlib table. It is free for 5 users. My client has exactly 5 users, it may work for a while, but when number of users will increased it will not work. 

Or
MVP
MVP

Well, the issue isn't with the number of selectable dimensions, so much as with the number of dimensions which may be selected. If the maximum isn't very high, the approach I suggested works fine (we use it with up to six dimensions, but there's no limit, it's just a hassle to set up and a hassle for users to make a lot of different selections in multiple fields).

Vizlib has both Custom Report available, and the regular Vizlib Extensions package has a Table object which allows users to dynamically reorder columns, so either one could potentially work for you here.

w0jt4z
Contributor III
Contributor III
Author

It's about 150 dimensions, so i can't use this solution.
Another question is can i save the order of my filter? I click my dimensions, set the order and add bookmark. Will order saved?

Or
MVP
MVP

I am not sure if this is the case or not with Vizlib Custom Report, since I don't use that. With Vizlib Table, the order is not saved if they are re-ordered manually.

w0jt4z
Contributor III
Contributor III
Author

Ok, another question is, the order of click is important to the order of columns?

Or
MVP
MVP

As I said, I don't actually use Vizlib's Self Service (the rebranded Custom Report), but I installed a test copy real quick under the five free license option and it seems that the columns are added in the order they are clicked (and this order can be changed within the object if desired). The selections also seemingly are saved in bookmarks.

I'm not sure if you will be able to use 150 dimensions, though - I think Qlik has a hard limit of 100 per object. Not sure about this though and it's too much hassle to test...

 

w0jt4z
Contributor III
Contributor III
Author

I don't have any choice.. Thank's for Your help, I will try every way to solve it. Thank's a lot!

w0jt4z
Contributor III
Contributor III
Author

I had to accept no order in my columns, but i have another problem with that.
I created Dimension Table. Looks like:
Dimensions:
CrossTable(DimensionType,DimensionValue)
Load * Inline [
DimensionIndex, DimensionName, DimensionCode
1, Imię i nazwisko, PassengerName
2, Numer biletu, TicketNumber

This table I have on my filter pane. In my table every column has function in "Show column if" section:
(concat(DimensionIndex=1)) AND GetSelectedCount(DimensionValue)>0. It works, but only with 14 any dimensions. When I select 15 Dimension it shows all of columns. Anybody knows why?