Qlik Sense插件及QRS接口补充
date: 2019-10-18 09:10:00
updated: 2019-10-18 15:18:00
Qlik Sense插件及QRS接口补充
1.插件
1.1 获取数据方式
理论上 Engine 所有的方法都应该有对应的 Capability API 方法,但是在开发者文档里的 API 有时候并不全,在获取数据的时候,可以去参考一下 Engine API 方法,在调用函数的时候使用 app.model.enigmaModel.api 的方式来获取数据
// 获取当前 app 下所有的字段
// 在返回的 data 中会有字段名称以及其所属于的数据表名
app.model.enigmaModel.getFieldList().then(function(data){
...
}
1.2 组装数据
如果数据是一个数组,那么可以使用 map 方法来返回一个结果体
var fieldMap = fields.map(function(field){
return {
"qDef": {
"qFieldDefs": [
field
]
}
}
});
1.3 同步和异步
在调用 API 方法来访问 Sense 获取数据时,返回的方式都是异步的,所以需要转换成同步操作。
return new qlik.Promise(function(resolve, reject){
// 这里面处理异步函数
// 第一个函数是 resolve 的,第二个函数是 reject 的
app.model.enigmaModel.getFieldList().then(function(data){
// app.model.enigmaModel.getFieldList() 方法是异步的,所以用 then(function(){}) 来保证同步
... // 此处的代码和上面的 `then` 是同步的
app.visualization.create('table',fieldArr).then(function(vis){
...
resolve() // 这个函数一定要写在最后面,但是如果最后是一个异步的函数的话,就需要写在异步函数的最后面
});
}, function(error){
// 这里是失败时所做的操作
reject(error)
});
});
1.4 使用 Leonardo 组件
JavaScript:
define( [
'text!./template.ng.html',
'text!./dialog-template.ng.html'
],
function ( template, dialogTemplate ) {
return {
support: {
export: false,
exportData: false,
snapshot: false
},
template: template,
controller: ['$scope', 'luiDialog', function ( $scope, luiDialog ) {
// 这里需要引用 luiDialog 的页面,相当于单独打开了一个页面
$scope.openDialog = function() {
luiDialog.show({
template: dialogTemplate,
// 这里必须是 input 的形式,相当于主页面给次页面的一个输入值,输入的是主页面的变量
input: {
name: $scope.name
},
controller: ['$scope', function( $scope2 ) {
// 此处是 $scope2 是指 luiDialog 的
$scope2.text = 'Use the dialog to display important messages or use it for actions requiring a lot of space, ' +
'like entering information into a form.'
}]
});
};
}]
};
});
dialog-template.ng.html:
<lui-dialog style="max-width: 450px;">
<lui-dialog-header>
<lui-dialog-title>My dialog</lui-dialog-title>
</lui-dialog-header>
<lui-dialog-body>
Hello, <i>{{input.name || "Missing name"}}</i>!
<div style="margin-top: 10px">
<b>Tip</b>
</div>
<div style="margin-top: 5px">
{{text}}
</div>
</lui-dialog-body>
<lui-dialog-footer>
<button class="lui-button lui-dialog__footer-button" ng-click="close();">Close</button>
</lui-dialog-footer>
</lui-dialog>
Qlik Sense插件及QRS接口补充的更多相关文章
- Qlik Sense学习笔记之Mashup开发(一)
date: 2018-12-21 12:33:29 updated: 2018-12-21 12:33:29 Qlik Sense学习笔记之Mashup开发(一) 1.基于Qlik Sense API ...
- 如何把Qlik Sense嵌入到Web应用中
(此文章同时发表在本人微信公众号"dotNET开发经验谈",欢迎右边二维码来关注.) 题记:这是一个给初学者(尤其对VS不熟悉的BI工程师)的入门操作向导. Qlik Sense是 ...
- Chrome 谷歌浏览器安装使用 Postman 和 Sense 插件
博客地址:http://www.moonxy.com 一.前言 Google Chrome 的特点是简洁.快速等.Chrome 支持多标签浏览,每个标签页面都在独立的"沙箱"内运行 ...
- Qlik Sense学习笔记之插件开发
date: 2019-05-06 13:18:45 updated: 2019-08-09 15:18:45 Qlik Sense学习笔记之插件开发 1.开发前的基础工作 1.1 新建插件 dev-h ...
- Qlik Sense学习笔记之Mashup开发(二)
date: 2019-01-26 11:28:07 updated: 2019-01-26 11:28:07 Qlik Sense学习笔记之Mashup开发(二) 1.Mobile SPA UI Fr ...
- Qlik Sense Desktop
2014年新一代的报表利器 Qlik Sense Desktop 初步体验 2014-09-22 12:45 by BIWORK, 974 阅读, 7 评论, 收藏, 编辑 Qlik Sense De ...
- jQuery实现搜索框插件+豆瓣音乐接口实现豆瓣搜索框
jQuery实现搜索框插件 豆瓣音乐接口实现豆瓣搜索框 豆瓣接口有时不稳定,网络请求会报400,不要惊慌.我主要是练习一下jQuery的JSONP和封装插件. <div class=" ...
- 2014年新一代的报表利器 Qlik Sense Desktop 初步体验
点击进入 QlikView/QlikSense 社区 交流群:432998033 Qlik Sense Desktop 的案例展示 先上几个刚刚边看边学完成的几个报表案例效果 (如果图片显示不正常, ...
- Elasticsearch之sense插件安装之后的浏览详解
前提博客是 Elasticsearch之sense插件的安装(图文详解) 立马,可以看到 http://192.168.80.145:5601/app/sense 以后更新
随机推荐
- 2020 计蒜之道 预赛 第三场 石子游戏(简单)(暴力DP)
石子游戏(简单) 原题链接 思路: 通过形式容易看出是一道DP.其中异或和的情况只有64种,所以我们可以开一维来记录当前异或和的状态. 利用dp[当前位置][异或和][是否选择当前]来进行状态转移.时 ...
- Redis深入浅出
一.基础使用 常用命令 keys,expire(过期),ttl(查看生存时间),set,select,dbsize,flushdb(删除当前库),flushall(删除所有), get,append, ...
- MySQL-Atlas--读写分离架构
一.Atlas简介 Atlas是由 Qihoo 360公司Web平台部基础架构团队开发维护的一个基于MySQL协议的数据中间层项目.它在MySQL官方推出的MySQL-Proxy 0.8.2版本的基础 ...
- Android Handler 分析学习
一.Handler简介 Handler 是 Android 中用于线程间交互的机制.与其相关的概念有 Thread.Looper.Runnable.Message.MessageQueue 等. Go ...
- Linux里面的压缩和解压类指令
gzip/gunzip 指令 ( .gz 不能压缩目录) gzip 用于压缩文件, gunzip 用于解压的 . gzip gzip命令用来压缩文件.gzip是个使用广泛的压缩程序,文件经它压缩过后 ...
- 你在开发过程中使用Git Rebase还是Git Merge?
摘要:在git里面经常的一个争论是到底用rebase还是用merge? 1. 痛苦吗?代码历史中的迷失羔羊 我们先来看一个真实的代码提交历史图形化截图: 图片源自 https://storage.kr ...
- Python-禅
Python特点 1. 面向对象解释性编程语言 2. 简洁.优雅的编码风格 3. 跨平台 windows MacOS Linux 4. 丰富的标准库和第三方库 什么是编程? 解决现实中问题 什么是面向 ...
- Go path/filepath包
path/filepath 标准库path中有的功能filepath全部具备, 所以使用filepath即可. isABS() 判断一个路径是不是绝对路径. package main import ( ...
- helm包管理工具
K8S正常部署应用是如下方式 kubectl create deployment web --image=nginx --dru-run=client -o yaml > web.yaml ku ...
- 用python处理excel文件有多轻松?工作从未如此简单
最近需要频繁读写 excel 文件,想通过程序对 excel 文件进行自动化处理,发现使用 python 的 openpyxl 库进行 excel 文件读写实在太方便了,结构清晰,操作简单.本文对 o ...