Qlik Community

QlikView App Development

Discussion Board for collaboration related to QlikView App Development.

Announcements
Save the Date: QlikWorld Online, June 24-25, 2020. Free global virtual event for data integration and data analytic gurus. Register Today
Highlighted
Contributor

InputBox without using InputField Function.

Hi all,

I want to create several steps to analyse the rent.

When I input the priceUnit automatically the all steps are calculated.

UnitPrice = 2.50 € and Step = 1.00 €

The 20 Inputboxes are calculated : 2.50€ - 3.50 € - etc.

I have a solution : create 20 variables. But Is ti possible to create a counter which increment all InputBox.

I don't want to use InputField beacause there are some trouble with the memory (out of memory).

I am in QV 11.20 SR5.

Someone would have a best suggestion ?

Thank you for your help.

1 Solution

Accepted Solutions
Highlighted
Not applicable

Re: InputBox without using InputField Function.

So,

if you change this part of script:

for i=1 to 10

let v_$(i) = i;

NEXT;

into:

for i=1 to 10

let v_$(i) = 0;

NEXT;

you will have have 10 variables with 0 value

View solution in original post

7 Replies
Highlighted
Not applicable

Re: InputBox without using InputField Function.

Joshua,

look on this example.

Select i, then input value into "Price" field, select another i, etc.

When you select i, there is i'th value presnenet in Price inputbox.

If you change Price, i'th value will be updated.

When you reload all ten provided values are setting againt to 1,2,3 ....

Let me know if it is good direction.

Regards

Darek

Highlighted
Contributor

Re: Re: InputBox without using InputField Function.

Hi Dariusz,

What a NICE direction!! Very interesting approach.

I've modified the script a little but I don't know if it is exact.

First is it possible to init variable to 0 or ' ' (nothing value) instead of 1,2,3,...

Second is it possible to format inputbox Price variable to '# ##0,00 €' because when I format to EUR. It is not possible enter new values in inputbox.


I duplicate the script because I need the same approach for Price, Bonus, Start, Distance, End, Variance and maybe others parameters. Can I have a problem in performance with all these variables created or not ?

Once again, your suggestion is very better. Simulate InputField with variables. Very brain!!

Many thank, Dariusz.

Highlighted
Not applicable

Re: InputBox without using InputField Function.

Hi,

1. of course. Simple change in load script:

for i=1 to 10

let v_$i = 0;

NEXT;

2.

i found, that if you choose Number in Number Format Settings, but use Format Pattern: # ##0,00 €;-# ##0,00 €

it works.

3. i dont expect performance problems if you will have up to 1000 variables

Of course test it!!!!

Highlighted
Contributor

Re: InputBox without using InputField Function.

Is there a way to init all variables to 0 or nothing value ?

I create a text object with Action

Variable i=0 and j=0 but it doesn't work.

I have to init variable one by one : v_1=0,v_2=0, right ?

Highlighted
Not applicable

Re: InputBox without using InputField Function.

Look:

for i=1 to 10

let v_$(i) = i;

NEXT;

//this for loop generates 10 variables named v_[number]. If you need more, change  for i=1 to 10

i:

load RowNo() as i AutoGenerate(10);

// this prepares selector

load RowNo() as j AutoGenerate(10);

// this i use only to present chart with all actuala variables. i think, you dont need in your solution

load concat('v_'&i,',',i) as expr_tmp

resident i group by 1;

let v_pr_expr='pick(j,'&FieldValue('expr_tmp',1)&')';

//this i use also for presentation in chart. you may use this concept to generate you own expression with variables

Highlighted
Not applicable

Re: InputBox without using InputField Function.

So,

if you change this part of script:

for i=1 to 10

let v_$(i) = i;

NEXT;

into:

for i=1 to 10

let v_$(i) = 0;

NEXT;

you will have have 10 variables with 0 value

View solution in original post

Highlighted
Contributor

Re: InputBox without using InputField Function.

Thank for your help Dariusk. Very interesting Trick.