Skip to main content
Announcements
Join us at Qlik Connect for 3 magical days of learning, networking,and inspiration! REGISTER TODAY and save!
cancel
Showing results for 
Search instead for 
Did you mean: 
cpalbrecht
Creator
Creator

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

9 Replies
ogster1974
Partner - Master II
Partner - Master II

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

Anonymous
Not applicable

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
Partner - Master II
Partner - Master II

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

Anonymous
Not applicable

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
Contributor II
Contributor II

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
Creator
Creator
Author

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
Contributor II
Contributor II

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
Creator
Creator
Author

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. 

dannyy81
Contributor III
Contributor III

You can add event listener and bind it to an element in your page

And fire paint method