Do not input private or sensitive data. View Qlik Privacy & Cookie Policy.
Skip to main content

Announcements
Qlik Open Lakehouse is Now Generally Available! Discover the key highlights and partner resources here.
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

How to enable and disable expression of chart by code(macro)?

hi, I have a bar chart with 3 expessions(expression: A B C). I want to use macro to control enable and disable expression. How can I do this?

I want to use a button. when click shows expression A and B, when click another time shows expression B and C.

thanks a lot !

1 Solution

Accepted Solutions
maneshkhottcpl
Partner - Creator III
Partner - Creator III

Hi,

I have attached the appliocation as per ur requirment.

first create a variable in ur application as VClikCount

then paste the macro and assign to button

sub ends
set myobj = ActiveDocument.GetSheetObject("CH01")
set v = ActiveDocument.GetVariable("VClikCount") '' first create a varible using setting
Cnt= v.getcontent.String
prop = myobj.GetProperties
if Cnt=0 then
set expr = prop.Expressions.Item(0).Item(0).Data.ExpressionData
expr.Enable = true 'enable first expression
set expr1 = prop.Expressions.Item(1).Item(0).Data.ExpressionData
expr1.Enable = true 'enable second expression
set expr1 = prop.Expressions.Item(2).Item(0).Data.ExpressionData
expr1.Enable = false 'disable second expression
v.setContent "1",true
else
set expr = prop.Expressions.Item(0).Item(0).Data.ExpressionData
expr.Enable = false 'disable first expression
set expr1 = prop.Expressions.Item(1).Item(0).Data.ExpressionData
expr1.Enable = true 'enable second expression
set expr1 = prop.Expressions.Item(2).Item(0).Data.ExpressionData
expr1.Enable = true 'enable second expression

v.setContent "0",true
end if
myobj.SetProperties prop
end sub

good luck.

View solution in original post

2 Replies
maneshkhottcpl
Partner - Creator III
Partner - Creator III

Hi,

I have attached the appliocation as per ur requirment.

first create a variable in ur application as VClikCount

then paste the macro and assign to button

sub ends
set myobj = ActiveDocument.GetSheetObject("CH01")
set v = ActiveDocument.GetVariable("VClikCount") '' first create a varible using setting
Cnt= v.getcontent.String
prop = myobj.GetProperties
if Cnt=0 then
set expr = prop.Expressions.Item(0).Item(0).Data.ExpressionData
expr.Enable = true 'enable first expression
set expr1 = prop.Expressions.Item(1).Item(0).Data.ExpressionData
expr1.Enable = true 'enable second expression
set expr1 = prop.Expressions.Item(2).Item(0).Data.ExpressionData
expr1.Enable = false 'disable second expression
v.setContent "1",true
else
set expr = prop.Expressions.Item(0).Item(0).Data.ExpressionData
expr.Enable = false 'disable first expression
set expr1 = prop.Expressions.Item(1).Item(0).Data.ExpressionData
expr1.Enable = true 'enable second expression
set expr1 = prop.Expressions.Item(2).Item(0).Data.ExpressionData
expr1.Enable = true 'enable second expression

v.setContent "0",true
end if
myobj.SetProperties prop
end sub

good luck.

Not applicable
Author

I have understood your demo. And I add your code in to my qvw file, It works!

Thank you very much !