Qlik Community

New to Qlik Sense

Discussion board where members can get started with Qlik Sense.

Highlighted
cpalbrecht
Contributor

Call paint method manually

Hi together,

is it possible to call the paint method of any object (e.g. a table) manually?

For example I have a KPI with a random number as value. And I want to click a button and the KPI should change its value. Is that possible?

Is it in general possible to re-render the whole sheet (without using DoReload method)? In the documentation is mentioned that the rendering is done with GetLayout method: http://help.qlik.com/en-US/sense-developer/November2017/Subsystems/EngineAPI/Content/WorkingWithApps...

But when I am calling this method, I only get the layout Json object. But it will not render the sheet or other generic objects. 

BR

8 Replies
ogster1974
Honored Contributor II

Re: Call paint method manually

You can have a variable set by button and then use that variable value in your KPI measure... Is that what you mean?

christoph_albre
New Contributor

Re: Call paint method manually

No, that's not what I meant. For example the KPI has an expression like this: =Rand(100)

A random number is displayed. The random function will be evaluated/called every time the sheet will change/re-render. For example when you select any field on any chart on the sheet.

My question is, how can I trigger a new evaluation of the expression manually? How can I trigger the KPI value to get a new random number and to display the new number without select something or reload the whole application?

ogster1974
Honored Contributor II

Re: Call paint method manually

If you look in Qlik Branch you can find a number of button and trigger extensions for use on Sense.

christoph_albre
New Contributor

Re: Call paint method manually

There I can find only buttons or trigger for a complete data reload. Again, I want to evaluate an expression and display the result.

feliperesende
New Contributor II

Re: Call paint method manually

Hi @cpalbrecht!

Did you get any solution for this item? I'm also in need of a solution like that, but I have not found it yet and could not do anything.

In my case, I have a table with values from a DIRECT QUERY that updates the data in memory every 10 seconds for example (SET DIRECTCACHESECONDS = 10). The problem is that the data in the memory is updated, and in the view not. To update the view, I have to execute the "doReload" function (impossible because it is slow).

cpalbrecht
Contributor

Re: Call paint method manually

No there is no direct solution for this. 

There are two workarounds. You can use "Server Side Extensions". Or you can also use third party JavaScript charts like D3. If you use e.g. D3 charts you can push data into these charts. But then you loose some Qlik features. 

More and more I realize, that Qlik is not suitable for "live" or near real time updates. 😕

 

BR,

Christoph

 

feliperesende
New Contributor II

Re: Call paint method manually

Unfortunately I realized that too. Qlik is not prepared for this situation.

However, given the solutions you have presented to me, can you detail what specific extensions I can use? I will be very grateful if you can help me with this.

cpalbrecht
Contributor

Re: Call paint method manually

Please have a look here: https://github.com/qlik-oss/server-side-extension

But if you have a lot of users, then it is also not really scaling. 

 

I will remove all the live use cases from Qlik and add them in a separate WebApp. And in that WebApp I will integrate/embed the Qlik Sense charts and diagrams.