没有找到合适的产品?
联系客服协助选型:023-68661681
提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
翻译|使用教程|编辑:况鱼杰|2020-11-02 10:42:21.127|阅读 260 次
概述:本文将会介绍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@ke049m.cn
文章转载自:Qlik



Parasoft C/C++test作为一款功能全面的自动化代码质量保障工具,为C/C++开发者提供了静态分析、单元测试和运行时错误检测等核心功能。通过将其与轻量级且广受欢迎的VScode编辑器集成,开发团队可以在熟悉的编码环境中实时获得代码质量反馈,有效提升开发效率与代码可靠性。
本文主要介绍如何在MVVM应用程序中使用虚拟源,欢迎下载最新版组件体验!
本教程主要为大家介绍如何使用DevExpress WinForms数据网格控件自定义排序和非排序列,欢迎下载最新版组件体验!
在使用自动化测试工具Parasoft C/C++test进行大规模代码分析时,合理的并行处理配置是保证分析效率与系统稳定性的关键。实际使用过程中,当处理大型代码项目时,用户可能会遇到系统资源过度消耗的问题。从系统监控数据可以看到,多个cc1分析进程同时以100%的CPU利用率运行,这表明系统正在经历严重的资源竞争。这种情况通常会导致分析速度下降,甚至出现系统卡死的现象,严重影响开发效率。
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@ke049m.cn
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢
半岛外围网上直营