Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Hello folks,
Could anyone please provide the correct macro syntax to edit the properties for a variable's OnChange action trigger? I am trying to create the correct macro syntax to disable, and later re-enable a variable's OnChange action under Document Properties.
Problem background:
A customer has a macro to automate some actions, and during macro execution, a variable OnChange trigger is being executed between each step, resulting in long macro execution time.
And yes the customer realizes they should be using built-in actions rather than a macro, but at this point in time, the customer has a macro and it needs to be optimized.
The attached QVW shows a rough approximation of the customer's QVW, with a variable OnChange trigger being executed multiple times over the course of macro execution.
So far, I was able to modify the macro code to successfully delete the variable's OnChange action on the first step of the script, and later recreate the action at the end of the script. However, when this task gets executed, the OnChange properties for the variable event trigger gets cleared. I've tried looking at the QlikView API Guide for the correct syntax, but I was unable to locate anything to edit the properties for an OnChange action. If anyone could please send along the macro command to modify the properties for an event trigger, it would be much appreciated!
Thanks,
Sean
Macro code:
sub ClearFields
set v = ActiveDocument.Variables("vBadVariable")
prop = v.GetProperties
' msgbox prop.OnChangeActionItems.Item(0).type
set actionsvar=prop.OnChangeActionItems
actionsvar.RemoveAt(0)
v.SetProperties prop
ActiveDocument.Fields("Dim2").Clear
ActiveDocument.Fields("Dim3").Clear
ActiveDocument.Fields("Expression1").Clear
actionsvar.Add
actionsvar.Item(0).Type = 31
' Missing: How to edit the OnChange properties for the variable event trigger
v.SetProperties prop
end sub
Hi.
actionsvar.Item(0).Parameters.Add
actionsvar.Item(0).Parameters.Item(0).v = "Variable"
actionsvar.Item(0).Parameters.Add
actionsvar.Item(0).Parameters.Item(1).v = "Value"
Hi.
actionsvar.Item(0).Parameters.Add
actionsvar.Item(0).Parameters.Item(0).v = "Variable"
actionsvar.Item(0).Parameters.Add
actionsvar.Item(0).Parameters.Item(1).v = "Value"
Perfect! Thank you.
This is wonderful.
How would I modify it to specify an Alternate State?
Hi Charissa,
Try adding the name of the Alternate State with double quotes as a second parameter in the macro code.
Example:
sub ClearFields
ActiveDocument.Fields("Dim2","AltState1").Clear
end sub