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 的方式来获取数据

  1. // 获取当前 app 下所有的字段
  2. // 在返回的 data 中会有字段名称以及其所属于的数据表名
  3. app.model.enigmaModel.getFieldList().then(function(data){
  4. ...
  5. }

1.2 组装数据

如果数据是一个数组,那么可以使用 map 方法来返回一个结果体

  1. var fieldMap = fields.map(function(field){
  2. return {
  3. "qDef": {
  4. "qFieldDefs": [
  5. field
  6. ]
  7. }
  8. }
  9. });

1.3 同步和异步

在调用 API 方法来访问 Sense 获取数据时,返回的方式都是异步的,所以需要转换成同步操作。

  1. return new qlik.Promise(function(resolve, reject){
  2. // 这里面处理异步函数
  3. // 第一个函数是 resolve 的,第二个函数是 reject 的
  4. app.model.enigmaModel.getFieldList().then(function(data){
  5. // app.model.enigmaModel.getFieldList() 方法是异步的,所以用 then(function(){}) 来保证同步
  6. ... // 此处的代码和上面的 `then` 是同步的
  7. app.visualization.create('table',fieldArr).then(function(vis){
  8. ...
  9. resolve() // 这个函数一定要写在最后面,但是如果最后是一个异步的函数的话,就需要写在异步函数的最后面
  10. });
  11. }, function(error){
  12. // 这里是失败时所做的操作
  13. reject(error)
  14. });
  15. });

1.4 使用 Leonardo 组件

JavaScript:

  1. define( [
  2. 'text!./template.ng.html',
  3. 'text!./dialog-template.ng.html'
  4. ],
  5. function ( template, dialogTemplate ) {
  6. return {
  7. support: {
  8. export: false,
  9. exportData: false,
  10. snapshot: false
  11. },
  12. template: template,
  13. controller: ['$scope', 'luiDialog', function ( $scope, luiDialog ) {
  14. // 这里需要引用 luiDialog 的页面,相当于单独打开了一个页面
  15. $scope.openDialog = function() {
  16. luiDialog.show({
  17. template: dialogTemplate,
  18. // 这里必须是 input 的形式,相当于主页面给次页面的一个输入值,输入的是主页面的变量
  19. input: {
  20. name: $scope.name
  21. },
  22. controller: ['$scope', function( $scope2 ) {
  23. // 此处是 $scope2 是指 luiDialog 的
  24. $scope2.text = 'Use the dialog to display important messages or use it for actions requiring a lot of space, ' +
  25. 'like entering information into a form.'
  26. }]
  27. });
  28. };
  29. }]
  30. };
  31. });

dialog-template.ng.html:

  1. <lui-dialog style="max-width: 450px;">
  2. <lui-dialog-header>
  3. <lui-dialog-title>My dialog</lui-dialog-title>
  4. </lui-dialog-header>
  5. <lui-dialog-body>
  6. Hello, <i>{{input.name || "Missing name"}}</i>!
  7. <div style="margin-top: 10px">
  8. <b>Tip</b>
  9. </div>
  10. <div style="margin-top: 5px">
  11. {{text}}
  12. </div>
  13. </lui-dialog-body>
  14. <lui-dialog-footer>
  15. <button class="lui-button lui-dialog__footer-button" ng-click="close();">Close</button>
  16. </lui-dialog-footer>
  17. </lui-dialog>

Qlik Sense插件及QRS接口补充的更多相关文章

  1. Qlik Sense学习笔记之Mashup开发(一)

    date: 2018-12-21 12:33:29 updated: 2018-12-21 12:33:29 Qlik Sense学习笔记之Mashup开发(一) 1.基于Qlik Sense API ...

  2. 如何把Qlik Sense嵌入到Web应用中

    (此文章同时发表在本人微信公众号"dotNET开发经验谈",欢迎右边二维码来关注.) 题记:这是一个给初学者(尤其对VS不熟悉的BI工程师)的入门操作向导. Qlik Sense是 ...

  3. Chrome 谷歌浏览器安装使用 Postman 和 Sense 插件

    博客地址:http://www.moonxy.com 一.前言 Google Chrome 的特点是简洁.快速等.Chrome 支持多标签浏览,每个标签页面都在独立的"沙箱"内运行 ...

  4. Qlik Sense学习笔记之插件开发

    date: 2019-05-06 13:18:45 updated: 2019-08-09 15:18:45 Qlik Sense学习笔记之插件开发 1.开发前的基础工作 1.1 新建插件 dev-h ...

  5. 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 ...

  6. Qlik Sense Desktop

    2014年新一代的报表利器 Qlik Sense Desktop 初步体验 2014-09-22 12:45 by BIWORK, 974 阅读, 7 评论, 收藏, 编辑 Qlik Sense De ...

  7. jQuery实现搜索框插件+豆瓣音乐接口实现豆瓣搜索框

    jQuery实现搜索框插件 豆瓣音乐接口实现豆瓣搜索框 豆瓣接口有时不稳定,网络请求会报400,不要惊慌.我主要是练习一下jQuery的JSONP和封装插件. <div class=" ...

  8. 2014年新一代的报表利器 Qlik Sense Desktop 初步体验

    点击进入 QlikView/QlikSense 社区  交流群:432998033 Qlik Sense Desktop 的案例展示 先上几个刚刚边看边学完成的几个报表案例效果 (如果图片显示不正常, ...

  9. Elasticsearch之sense插件安装之后的浏览详解

    前提博客是 Elasticsearch之sense插件的安装(图文详解) 立马,可以看到 http://192.168.80.145:5601/app/sense 以后更新

随机推荐

  1. 【性能优化】面试官:Java中的对象都是在堆上分配的吗?

    写在前面 从开始学习Java的时候,我们就接触了这样一种观点:Java中的对象是在堆上创建的,对象的引用是放在栈里的,那这个观点就真的是正确的吗?如果是正确的,那么,面试官为啥会问:"Jav ...

  2. 【转】Postgres SQL sort 操作性能调优

    这篇文章将以实战的方式结合笔者在项目中真实遇到的情况来讲解.说到SQL,大家可能会遇到一些写法稍微复杂的写法.比如SQL中遇到的有聚合函数sum等,也有遇到使用group by / order by的 ...

  3. 我把公司 10 年老系统改造 Maven,真香!!

    公司有几个老古董项目,应该是 10 年前开发的了,有一个是 JSP + Servlet,有一个还用的 SSH 框架,打包用的 Ant,是有多老啊,我想在座的各位很多都没听过吧. 为了持续集成.持续部署 ...

  4. c++11 新特性实战 (一):多线程操作

    c++11多线程操作 线程 thread int main() { thread t1(Test1); t1.join(); thread t2(Test2); t2.join(); thread t ...

  5. spring整合(Junit、web)

    1.整合Junit (1)整合前的测试类代码 public class Test { public static void main(String[] args) { ApplicationConte ...

  6. sort函数居然能改变元素值?记一次有趣的Bug——四数之和

    坐标leetcode: 我想都不想直接深度优先搜索暴力求解: class Solution { public: vector<vector<int>> res; //答案 in ...

  7. JDK 中的栈竟然是这样实现的?

    前面的文章<动图演示:手撸堆栈的两种实现方法!>我们用数组和链表来实现了自定义的栈结构,那在 JDK 中官方是如何实现栈的呢?接下来我们一起来看. 这正式开始之前,先给大家再解释一下「堆栈 ...

  8. 【硬核】Dubbo常见面试题

    有情怀,有干货,微信搜索[三太子敖丙]关注这个不一样的程序员. 本文 GitHub https://github.com/JavaFamily 已收录,有一线大厂面试完整考点.资料以及我的系列文章. ...

  9. docker自定义网络里的dns实现原理

    简单说一下流程吧,不写了. docker会修改容器里的/etc/resolv.conf文件,把dns服务器设置成127.0.0.11,因为127.0.0.0/8地址都是本机回环地址,所以dns查询的时 ...

  10. 多测师讲解selenium__论坛验证码_处理方法_ 高级讲师肖sir

    1.登录我们搭建的论坛环境 2. 3. 4.