如何打印Qlik Sense扩展?
使用Qlik的用户很多时候都会遇到有关Qlik Sense扩展或混搭的问题。这种时候,往往意味着数小时的故障排除,并且还要花费时间来修复。最后修复的可能是Qlik Sense升级时中断的扩展,性能问题或某些无效的功能,其中重复出现的问题是打印扩展对象。
它是如何工作的
Qlik Sense使用快照进行打印。这意味着打印的内容不是您在屏幕上看到的内容,而是扩展中数据的快照,然后由渲染引擎重新渲染并最终进行打印。在重新渲染期间,没有与Qlik Sense引擎的实时连接,这意味着需要实时连接的所有内容都不可用。这就是为什么您应该始终仅基于布局渲染的原因。
因此,第一步是验证扩展是否在呈现部分中不执行任何需要引擎连接的调用(它们可以在属性面板中使用,并且在许多情况下是用内容等填充下拉列表)。这可能需要一些重构来解决,因此可能需要一些时间,但是在大多数情况下,这不是问题。
等待扩展准备好
一个更常见的问题是在扩展程序就绪之前进行打印。这可能意味着打印有时有效,但并非始终如此。这也可能意味着打印输出是部分的,在部分或部分渲染时显示扩展名,但不是全部。
要解决此问题,您需要返回一个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
现在,Qlik提供的Promise遵循标准的javascript API(尽管看起来不是标准的),而在之前的版本中,它本质上是有角度的$ p服务。
推荐阅读:
除了以上教程资源,我们还有以Qlik为核心的各类解决方案,可帮助结局设备故障、产品质量、营销管理等各方面的企业问题,点击咨询在线客服>>获取案例。