提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
翻译|使用教程|编辑:况鱼杰|2020-11-02 10:42:21.127|阅读 173 次
概述:本文将会介绍Enigma.js,它是一个可帮助您与Qlik QIX Engine通信的库。其中有一项很酷的功能是,它允许您编写自己的mixins来扩展或覆盖您一直使用的Qlik对象上的方法。这篇文章将教你mixin的基础知识,并向你展示如何实现自己的。
# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>
相关链接:
真正的现代分析时代始于经典的QlikView分析解决方案的发布,以及基于它的改变游戏规则的关联引擎。它彻底改变了组织使用直观可视化发现使用数据的方式,从而使商业智能比以往任何时候都多。而且,我们将继续借助下一代分析平台Qlik Sense引领这一潮流。借助关联引擎,强大的增强智能和受管的多云架构,它支持企业任何规模的分析场景。
本文将会介绍Enigma.js,它是一个可帮助您与Qlik QIX Engine通信的库。其中有一项很酷的功能是,它允许您编写自己的mixins来扩展或覆盖您一直使用的Qlik对象上的方法。这篇文章将教你mixin的基础知识,并向你展示如何实现自己的。
如果您想查看最终产品,这是完成的存储库://github.com/coolinmc6/enigma-mixins-tutorial。如果您想继续,请克隆仓库并检出“开始”分支`git checkout -b start`以便从头开始。
希望您熟悉典型的Enigma配置(//community.qlik.com/t5/Qlik-Design-Blog/Qlik-Engine-and-Picasso-js/ba-p/1706241),因为这是必须在mixin所在的位置包括在内。对于第一个mixin和我们将要编写的其他mixin,需要创建一个单独的mixin文件,以保持代码干净。然后主要在该mixin文件和ʻindex.js`中工作。
首先,在您的`/ config`目录中创建一个单独的文件,名为`mixins.js`。复制下面的代码,然后开始:
// mixins.js const docMixin = { types: ['Doc'], init(args) {}, extend: { myMixin() { console.log('myMixin was called - this is all it does'); }, } } export { docMixin, };
将您的mixin添加到配置文件ʻapp.js`中:
// app.js import { docMixin } from './mixins'; // CODE export default enigma.create({ schema, url, mixins: [docMixin] // add docMixin }).open().then(global => global.openDoc(config.appId));
现在,在index.js文件中,只需执行以下操作即可调用mixin:ʻapp.myMixin()`。 如果您检查控制台,则会看到我们输入的console.log消息; 您刚完成第一次Mixin。
注意:Mixin对象应具有类型属性,以指示您正在修改的Qlik对象(例如Doc,GenericObject,GenericBookmark等)。对于第一个Mixin,将修改Doc类。接下来是ʻinit(args)`方法,该方法在初始化mixin时运行一些代码。最后,有两个属性:“ extend”和“ override”。 顾名思义,“ extend”将向Qlik Object添加方法,而“ override”将覆盖现有的Qlik Object方法。本教程将主要侧重于扩展Qlik Objects的功能。
现在,已经用扩展Doc对象的单个方法创建了第一个mixin,然后逐步提高并编写一种获取超立方体数据的方法。这种方法的重点是为我们完成Qlik QIX Engine的所有工作。此方法位于Doc类上,因此在我们的代码中,我们可以像下面这样在“ myMixin()”代码下面编写该方法:
// mixins.js const docMixin = { types: ['Doc'], init(args) {}, extend: { myMixin() { console.log('myMixin was called - this is all it does'); }, mGetData({ object }) { return new Promise((res) => { this.createSessionObject(object).then((obj) => { console.log(obj) obj.getLayout().then((layout) => { const data = layout.qHyperCube.qDataPages; res(data); }) }) }) }, } } export { docMixin, };
在index.js文件中,我们将调用该方法并提供一个超立方体。复制以下超多维数据集和代码以调用该方法:
// index.js const hypercube = { qInfo: { qId: 'Sales by Year', qType: 'data'}, qHyperCubeDef: { qDimensions: [ // { qDef: { qFieldDefs: ['[Country]']} }, { qDef: { qFieldDefs: ['[Product Group Desc]']} } ], qMeasures: [ { qDef: { qDef: 'SUM([Sales Margin Amount])'}, }, ], qInitialDataFetch: [{ qTop: 0, qLeft: 0, qWidth: 10, qHeight: 1000, }], qInterColumnSortOrder: [], qSuppressZero: true, qSuppressMissing: true, } } // CODE (async () => { const app = await appPromise; app.myMixin() const data = await app.mGetData({ object: hypercube }) console.log(data) })()
在控制台中,您会发现那里还有两个日志。第一个是刚刚创建的会话对象(并且您可能太熟悉了)。 第二个是在JavaScript数组中请求的数据。它仍然处于Qlik格式中,如果您只想查看数据,可能需要进行更多清理,但是请注意,现在可以轻松地为您可能编写的任何超立方体请求数据。现在可以避免不得不一遍又一遍地编写所有代码的步骤,而只需使用我们新的`mGetData()`方法。
Qlik的愿景是一个数据素养的世界,每个人都可以使用数据来改善决策并解决他们最具挑战性的问题。只有Qlik提供端到端的实时数据集成和分析解决方案,以帮助组织访问所有数据并将其转化为价值。Qlik帮助企业领导数据,以更深入地了解客户行为,重塑业务流程,发现新的收入流以及平衡风险和回报。
想要了解更多有关Qlik的资讯,欢迎咨询在线客服>>
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@cahobeh.cn
文章转载自:Qlik本文探讨 SQL Server 中 NULL 和空值之间的区别,并讨论如何有效地处理它们。
Unity 是一款功能极其丰富的游戏引擎,允许开发人员将各种媒体集成到他们的项目中。但是,它缺少最令人兴奋的功能之一 - 将 Web 内容(例如 HTML、CSS 和 JavaScript)直接渲染到 3D 场景中的纹理上的能力。在本文中,我们将介绍如何使用 DotNetBrowser 在 Unity3D 中将 Web 内容渲染为纹理。
DevExpress v24.2帮助文档正式发布上线了,请按版本按需下载~
本教程将向您展示如何用MyEclipse构建一个Web项目,欢迎下载最新版IDE体验!
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@cahobeh.cn
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢