Qlik Community

QlikView Scripting

Discussion Board for collaboration on QlikView Scripting.

Not applicable

How to create new objects dynamically from load script?

Hi,

IS it possible to create objects (buttons, filters and etc.) dynamically from a load script? without using a macro?

Thanks,

Boris

Tags (2)
13 Replies
francoiscave
Contributor III

Re: How to create new objects dynamically from load script?

Hi Boris,

Hi don't think so...

Have fun with QV,

François

Not applicable

Re: How to create new objects dynamically from load script?

And if I do use a macro?

what is a appropriate way?

francoiscave
Contributor III

Re: How to create new objects dynamically from load script?

Boris,

Use the macro is never the best solution...

Macro could be unsafe and failed security.

Let's go to design your objects ;-)

François

marcus_malinow
Valued Contributor III

Re: How to create new objects dynamically from load script?

Hi Boris,

It's not possible to do this without using a macro, but my question here would be why do you need to do this anyway?

It may be possible for you to create all the objects you need normally, and then if after your reload some are not needed, use conditional display conditions to hide those that are not required.

I think if you go down the route of dynamic object creation, you're entering a rabbit hole where your application may get unnecessarily complex.

Marcus

Not applicable

Re: How to create new objects dynamically from load script?

We provide out customers a generic QV app with pre defined charts and filters which

reflect our generic product and thus its generic database structure which has predefined dimensions.

Usually different project have some customization in their project and they are adding more dimension to the database.

If they want this new dimension to be reflected in the same chart as other dimension we need it to be added dynamically when they add it to their database.

as most of the users are not QV developers we try to deliver a BI solution which won't require further developments.

mov
Esteemed Contributor III

Re: How to create new objects dynamically from load script?

Boris,

Adding dimensions to a database doesn't guarantee that they are added in the QV application, unless the script is like

SELECT * FROM table;

And, using * is not a good idea for many reasons.  So, the must be somebody who modifies QV script.  And if you allow to modify script, it is much safer to allow them to modify front end objects.

Am I missing something?

Regards.

Michael

Re: How to create new objects dynamically from load script?

You cannot create objects in the load script even using a macro. Creating or manipulating objects using the API requires the ActiveDocument object which does not exist during script execution.

You can do significant "programmatic" customization by using variables and data references in your objects. The variables and data can be set by the script through logic and data loaded from external configuration files. As a trivial example, consider setting a "vCompanyName" variable that is used in Headings on sheets. Variables and data can be used to configure the visibility of objects as well as the details of the expressions and dimensions used in those objects.

As a more pure programming approach, you can manipulate the files in the -prj directory to create and modify objects.

-Rob

http://masterssummit.com

http://robwunderlich.com

Not applicable

Re: How to create new objects dynamically from load script?

Yes, the end user is a marketing/business user, he is not a QV developer, yet alone he is not scripting.

I'll add and say that he, as a user, doesn't have access to the QV server itslef, only to the Web application access point.

Each our product major version is accompanied with QV generic modules for this version.

If we allow each project to add UI changes and scripts by its own we won't be able to deliver changes, big ones or incremental.

francoiscave
Contributor III

Re: How to create new objects dynamically from load script?

Boris,

Have you need some more help ?

If not, can you mark an answer as Correct or helpful to close this thread.

Thanks,

François

Community Browser