Skip to main content
Announcements
Have questions about Qlik Connect? Join us live on April 10th, at 11 AM ET: SIGN UP NOW
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

From OnActivateMacro to OnActivateActionItems using charts

Hi,

I'm trying to migrate a version 7.52 document to version 10.
The document contains a VBScript line
prop.GraphLayout.Frame.OnActivateMacro = "MacrosName"
that causes a problem saying the the object doesn't support property or method: 'prop.GraphLayout.Frame.OnActivateMacro'

Obviously there were some changes and now ActionItems have to be used.
To get some understanding I copied code from the API Guide and modified it. Using a list box object everything seems to work fine. Using a chart object (pivot table) as I will eventually need to I'm told 'prop.Layout' is not supported.

sub actionItemsOfListBox
set myobject = ActiveDocument.GetSheetObject("LB27")
set prop = myobject.GetProperties
set actions = prop.Layout.Frame.OnActivateActionItems
for i=0 to actions.Count-1
  msgbox "Action types: " & actions.item(i).Type
next
end sub

So I tried a second example from the API Guide which works fine for charts but no ActionItems are shown although there is a trigger defined for the chart in the sheet properties.

I guess I'm looking in the wrong place. Maybe OnActivateActionItems ist not the right method for what I want to do? But then it seems to be ok for list boxes.

Yes, I looked at the postings in this forum but I couldn't find the answer to my problem. At least none I understood.

Can you help?

Thanks

Franziska

sub actionItemsOfChart

set MyGraph = ActiveDocument.GetSheetObject("8+CH491GENERIC")

set prop = MyGraph.GetProperties

set GraphActions = prop.ActionItems

Types=""

for i=0 to GraphActions.Count-1

  Types = Types & " " & GraphActions.Item(i).Type

next

msgbox "Action items: " & Types

end sub

1 Solution

Accepted Solutions
kji
Employee
Employee

As for the listbox you need to get the right ActionItem array, the following should work on any sheet object:

sub ActivationActionItems

set myobject = ActiveDocument.GetSheetObject("CH01")

set frame = myobject.GetFrameDef

set actions = frame.OnActivateActionItems

for i=0 to actions.Count-1

  msgbox "Action types: " & actions.item(i).Type

next

end sub

The ActionItems in chart properties is used when clicking in the chart (only avaliable for gauge charts)

View solution in original post

2 Replies
kji
Employee
Employee

As for the listbox you need to get the right ActionItem array, the following should work on any sheet object:

sub ActivationActionItems

set myobject = ActiveDocument.GetSheetObject("CH01")

set frame = myobject.GetFrameDef

set actions = frame.OnActivateActionItems

for i=0 to actions.Count-1

  msgbox "Action types: " & actions.item(i).Type

next

end sub

The ActionItems in chart properties is used when clicking in the chart (only avaliable for gauge charts)

Not applicable
Author

also seems to work:

' QlikView 7.52

prop.GraphLayout.Frame.OnActivateMacro = "SetActiveObject"   

' QlikView 10...

prop.GraphLayout.Frame.OnActivateActionItems.Add
i = prop.GraphLayout.Frame.OnActivateActionItems.Count - 1
prop.GraphLayout.Frame.OnActivateActionItems.Item(i).Type = 13
prop.GraphLayout.Frame.OnACtivateActionItems.Item(i).Parameters.Add
prop.GraphLayout.Frame.OnACtivateActionItems.Item(i).Parameters(0).v = "SetActiveObject"
obj.SetProperties prop