Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

Tricky Variable - Use Field Value as Variable Name and return the Variable Value in Table

Hi All,

Can anyone tell me how to use Field value as Variable Name and return the Variable Value in Table? The scenario is a little bit complicated. A case is provided to explain as below, hope it could help. Thanks!

1. A source table with below structure is loaded into Qlikview:

user_idkpi_idItem DescItemVariableNameDefault Value
A1NotificationntfvK1_ntfON
A1Notification Time Intervalntf_intvK1_ntf_int30
A2NotificationntfvK2_ntfOFF
A2Notification Time Intervalntf_intvK2_ntf_int60

2. In Variable Overview, below 4 variables are created:

vK1_ntf

vK1_ntf_int

vK2_ntf

vK2_ntf_int


- The above 4 variable names are same as the [VariableName] in the source table.

- The initial value of the above 4 variables are assigned according to the [Default Value] in the source table.


Variable NameValue
vK1_ntfON
vK1_ntf_int30
vK2_ntfOFF
vK2_ntf_int60

Now,

the value of these 4 variables are allowed to modified on the interface (By Input Box Object). In order to compare the [Default Value] / [New Value] of variables and exporting this table to external, a table is created and the expected result is shown as below:

user_idkpi_idItem DescItemVariableNameDefault ValueNew Value

Idea to get

[New Value]

A1NotificationntfvK1_ntfONOFF$(vK1_ntf)
A1Notification Time Intervalntf_intvK1_ntf_int3060$(vK1_ntf_int)
A2NotificationntfvK2_ntfOFFON$(vK2_ntf)
A2Notification Time Intervalntf_intvK2_ntf_int

60

90$(vK2_ntf_int)








My idea is to call those variables in the Expressions of the Table for each row based on the [VariableName] such that [New Value] can be returned.

However, I have no idea how to use [VariableName] to call the variables. Or can the field value ([VariableName]) be used as individual variable name and return its value?

The above scenario is also attached in QVW. Some of the method are tried but all are unexpected result. Hope if anyone can help me. Thanks in advance!

T.NG

23 Replies
sujeetsingh
Master III
Master III

You can use peek() function in script to calculate the variables but i doubt that it can be populated as different row values for a field. You need to implement some logic as expression and define the colum

sujeetsingh
Master III
Master III

Few questions from my side :

how you are getting the newvalue??

Not applicable
Author

The new values can be modified by users on the interface (Input Box). These new value will then be displayed on pivot/straight table. By exporting this table and doing some transformation, these new values will be returned as default value next time.

sujeetsingh
Master III
Master III

What is the definition of this new variable column

'

Not applicable
Author

Peek() should not be the case. I have already create those variables and assign the values in script, but i can't return the variable value on dashboard.

sujeetsingh
Master III
Master III

I think the only way to represent this can be the inpursum() function in the straight table.

Follow these threads

Input Fields in a straight table

How to make input box in a straight table

Not applicable
Author

There is no new variable. Some variables have been created with default values. However, the value of these variables could be changed on the interface. A table is therefore required to show the old and new value.

swuehl
MVP
MVP

If this table is rather static with respect to number of variables to show, you can try a pick / match combination as expression, something like

=pick( match( VariableName, 'VK1_ntf','VK1_ntf_int','VK2_ntf','VK2_ntf_int'),

$(VK1_ntf),

$(VK1_ntf_int),

$(VK2_ntf),

$(VK2_ntf_int)

)

Not applicable
Author

You need wrap around with =$(), see below:

Exp1 : =$(=$(vKPI)&$(vItem))

Exp2: =$(=$(vDynamicVariable))

Hope this was helpful or answered your question

Thanks,

Angad