Skip to main content
Announcements
NEW: Seamless Public Data Sharing with Qlik's New Anonymous Access Capability: TELL ME MORE!
cancel
Showing results for 
Search instead for 
Did you mean: 
Teppo_Ojala
Former Employee
Former Employee

Problems when reading in the variables from file

Hi,

I have a customer, who has lots of expressions in qvw file and then they have about 5 different qvw per this topic. So I thought to make one txt file about expressions and then I will read that into each of these qvw's.

But I have a problem. I made a very simple qvw about this.

Attached qvw includes this script:

SET vv_max_year=max(Year);

LET v_max_year='='&vv_max_year;

SET v_sum_max_year =  num(sum({$<Year={'$(v_max_year)'}>} sum_field)/1000, '# ##0');

My idea is that at the final result I have a variable called v_sum_max_year, which value is

num(sum({$<Year={'$(v_max_year)'}>} sum_field)/1000, '# ##0');

But, after reload the value is

num(sum({$<Year={'=max(Year)'}>} sum_field)/1000, '# ##0')

The script replaces the $(v_max_year) with a value of that variable. This sounds good, but this doesn't work. Is there a possibility to write the this so that script wouldn't replace $(var) with a value where we reference.

These SET's and LET's are definitely not my best knowledge area at QlikVIew

2 Replies
jvitantonio
Luminary Alumni
Luminary Alumni

Hi TOA,

You are using LET and SET the other way around.

SET will set a string value to a variable. For example:

SET x = 3+4; --> in this case the valuo of x $(x) is '3+4'

Now if we use LET, the expression 3+4 will be evaluated:

LET y = 3+4;  in this case the value of y $(y) will be 7.

So in your script change it soit looks like this:

LET vv_max_year=max(Year);

SET v_max_year='='&vv_max_year;

LET v_sum_max_year =  num(sum({$<Year={'$(v_max_year)'}>} sum_field)/1000, '# ##0');

Teppo_Ojala
Former Employee
Former Employee
Author

Hi,

Thanks for your reply. I changed the script like this and I get an "Script error" when reloading.Script editor shows that there are something wrong with the last LET's set analysis (it doesn't undestand the character '{')