如何打印Qlik Sense擴展?
使用Qlik的用戶很多時候都會遇到有關(guān)Qlik Sense擴展或混搭的問題。這種時候,往往意味著數(shù)小時的故障排除,并且還要花費時間來修復(fù)。最后修復(fù)的可能是Qlik Sense升級時中斷的擴展,性能問題或某些無效的功能,其中重復(fù)出現(xiàn)的問題是打印擴展對象。
它是如何工作的
Qlik Sense使用快照進行打印。這意味著打印的內(nèi)容不是您在屏幕上看到的內(nèi)容,而是擴展中數(shù)據(jù)的快照,然后由渲染引擎重新渲染并最終進行打印。在重新渲染期間,沒有與Qlik Sense引擎的實時連接,這意味著需要實時連接的所有內(nèi)容都不可用。這就是為什么您應(yīng)該始終僅基于布局渲染的原因。
因此,第一步是驗證擴展是否在呈現(xiàn)部分中不執(zhí)行任何需要引擎連接的調(diào)用(它們可以在屬性面板中使用,并且在許多情況下是用內(nèi)容等填充下拉列表)。這可能需要一些重構(gòu)來解決,因此可能需要一些時間,但是在大多數(shù)情況下,這不是問題。
等待擴展準備好
一個更常見的問題是在擴展程序就緒之前進行打印。這可能意味著打印有時有效,但并非始終如此。這也可能意味著打印輸出是部分的,在部分或部分渲染時顯示擴展名,但不是全部。
要解決此問題,您需要返回一個Promise并確保在渲染完成之前不解決它,如下所示:
paint: function ($element, layout) { // do your rendering return new qlik.Promise(function (resolve, reject) { // when rendering is complete, call resolve resolve(); // optionally if rendering fails, call reject reject(); }); } //end of print function
現(xiàn)在,Qlik提供的Promise遵循標準的javascript API(盡管看起來不是標準的),而在之前的版本中,它本質(zhì)上是有角度的$ p服務(wù)。
推薦閱讀:
除了以上教程資源,我們還有以Qlik為核心的各類解決方案,可幫助結(jié)局設(shè)備故障、產(chǎn)品質(zhì)量、營銷管理等各方面的企業(yè)問題,點擊咨詢在線客服>>獲取案例。