Discussion Board for collaboration related to QlikView App Development.
Hi Everyone ,
Lets say I have a table with 3 columns : Id, name , country - with 100 different rows.
I need to get from the user (using an Input box object) some number , lets say he will put the value: 20
I want that after the user will insert 20 , the table on the GUI will show only 20 random rows from the table .
I don't want him to see the first 20 rows, I want him to see 20 random rows from the 100 rows.
I know how to use the Input box object to take the number from the user, but I don't know how to show the random rows.
can someone help me ?
It would be much easier to show the first, largest or smallest N rows by using dimension limits.
Do you actually need to show 20 random rows?
This needs some, not so simple scripting.
yes I need to show 20 random rows from the table.
I thought of adding the table :Recno()
and then use the rand() function and somehow find 20 rows
I just don't know how to do it ...
you'd need to use the rand() function (which will return a random number inbetween 0 and 1) in a loop from 1 to 20 (to stick with the example) and use those to create a string (with semicolons so you can use it in a MATCH() function) with 20 random numbers - if you have 100 rows, you'll have to multiply the output of rand() with 100 so you get 20 random line_numbers.
In the script, you load the file and in the lOAD you just add a >> rowNo() as line_ID <<
=> Then you have to use some set_analysis to display the 20 rows with those exact line_IDs.
Does your user have the client installed and a Named_CAL so they can reload the script from the GUI? That would make it a bit easier.
yes my user have a client on his computer.
I will try to do what you said and see if I understand it.
the Client alone will not do for what I mean - reloading the script from the GUI is possible only with a Named_CAL, not with a Document_CAL.
Try to build that loop (should be possible with autogenerate) first and come back, we can see from there.
Using RAND() function will not check for collisions in value generation, so it can happen that you'll get duplicate IDs selected (more likely with a lower number of table rows and higher number of X), i.e. the resulting table may be some lines smaller than expected.
you are right I can see now that I get less lines then I expected, how can I handle that ?
I got to a point that to every row have its own ID (with the recno() as LineNr ),
how can I make sure that there will not be collisions in value generation?
thanks a lot