In QlikView 10 a new (very, very nice) functionality will be added: Linked Objects
Instead of copying some objects to other sheets and having to change the properties of these objects independently you can link some objects together and change these properties only once.
All changes will be automatically shared with all other linked objects.
Linked Objects in QlikView do not follow a master/sleeve concept, so there is no master-object and other sleeve-objects which inherit their properties from the master-object.
Instead the linked objects are having equal rights and share properties like described in the reference manual of QlikView 10:
When two or more objects are linked they share all properties with the exception of size, position and display state (minimized, normal, maximized).
When you change the properties of one object the change is immediately reflected in the other linked objects. Linked objects may reside on the same sheet or on different sheets.
How to create a linked object:
There are two different approaches creating a linked object:
Use the context menu of an object and select Copy to Clipboard => Object or go to Menu => Object and Copy to Clipboard and Object; both can also be achieved with the shortcut Ctrl+C
Then use the command Menu => Object => Paste Sheet Object as Link
Drag an object onto another sheet while pressing Ctrl+Shift, then the following icon will appear indicating that the object will be placed on the desired sheet as a linked object:
How to change (shared) properties of linked objects:
As written in the reference manual:
If you are making any changes on the shared properties, these changes will be automatically and immediately reflected in other linked objects.
So there is nothing special to do. You just have to remember, that size, position and display state are not shared automatically.
How to change (unshared) properties of linked objects:
If you are making some changes to the unshared properties (size, position and display state) you have to synchronize theses settings to all other objects manually. But also this is quite easy:
Use the context menu of the object from where all other linked objects should inherit the size, position and display state and use the command Adjust Position of Linked Objects.
If you are deleting a linked object you will get the following message:
So you can decide whether to delete only the selected object or all linked objects.
How to unlink linked objects:
Unlinking an object is easy:
Just use the context-menu of the object and go to Linked Objects => Unlink This object
Some remarks on the linked objects’ IDs:
Linked objects share the same object ID. If an object will be unlinked a new object ID will be assigned to the unlinked object.
Linked objects in real life:
I personally like the approach of creating a sheet which is my template and where I design the structure of the interface placing all objects there which should also be visible on other sheets.
When creating a new sheet, I just copy all objects on my template-sheet and paste them as linked objects on the newly created sheet:
When making changes I just have to go on the template sheet, making the changes there and they will be automatically made on all other linked objects:
If I have to make changes regarding position and size of the objects I am also doing this on the template sheet and then I am using the Adjust Position of Linked Objects functionality (as described above).
In production environment I just hide the “Source Objects” sheet with a “Show Sheet condition”.
For me this is the perfect solution which really meets my requirements.
Impact on existing applications and macros:
Good news! Since the linked objects share the same object ID there is no impact on existing applications and macros!
Give Linked Objects a try! They will make your life as application designer in QlikView much easier!
I really, really like this feature 🙂
What do you think?