Qlik Sense学习笔记之Mashup开发(一)
date: 2018-12-21 12:33:29
updated: 2018-12-21 12:33:29
Qlik Sense学习笔记之Mashup开发(一)
1.基于Qlik Sense API的Mashup开发
Capability API
一定程度上对应了鼠标所能做到的所有操作或功能
开发工具
- Qlik Sense dev-hub Mashup Editor
- Text Editor
- Notepad++
- Sublime
- IDE
- Visual Studio Code
- Web Storm
- Eclipse
2.Mashup基础代码分析
Project
XXX.html
XXX.js
XXX.css
XXX.qext
qlik文件,用来概括mashup的一些基本信息,比如名称,版本,有什么依赖等。
- wbfolder.wbl
当前mashup有什么文件,有哪些文件是可以在Mashup Editor中罗列出来再次被编辑的。通过Sense go插件可以自动生成。
Require JS
- 新建一个mashup,在head中自动引入了require.js文件
<script src="../../resources/assets/external/requirejs/require.js"></script>- 针对qlik sense的异步调用,优化后的一个require版本
- 可以通过依赖的形式将需要的js文件注入进来,是lazy load的一种方式,只有用到的时候以后才会引入
Qlik-style.css
- 新建一个mashup,在head中自动引入了Qlik-style.css文件
<link href="../../resources/autogenerated/qlik-styles.css" rel="stylesheet">- 保证object拖动之后渲染效果与图表原先效果保持一致
- 可以覆写这个文件来尝试修改图表样式
3.Mashup开发技巧
Qlik Sense Desktop
在Document--Qlik--Sense--Extensions下可以找到Qlik Sense Desktop中的工程目录,以及相关的文件,可以自由增删文件,并可以立即调用
Qlik 文档
点击下面的Developer,在最左面有一个 API reference
Sense-go
辅助开发插件,只需要设置一下项目名称、版本号、目标输出目录,其他的会自动监听文件变化,并自动编译到目标输出目录中
Qlik Sense Developer Mode
- 开发中调用图表,是通过 id 去获取调用。
- 第一种方式:可以从dev-hub中的Single Configuration中查看
- 第二种方式:针对这个页面,可以从页面中查看
http://域名/sense/app/515fc2f7-7779-4d78-b355-250814d16b17/sheet/6d79d8f2-9314-4718-8d48-ff63b72acc21/state/analysis- 把/state/analysis修改成/options/developer,然后右键点击图表可以看到 Developer 选项,可以查看object的id还有其中的数据、结构如何。
引入第三方类库
- 如果是css文件的话可以直接在head中引入
- 但是如果是js文件的话,因为一次性加入的js文件可能过多导致第一次进入太卡,所以放在 app.js 文件 require 函数中统一载入。
- 即 第一次进入时先出现loading页面,这个时候载入相关文件和数据
ID 变与不变
- 如果复制了一个chart,那两个chart的id
- 但是如果是删除一个chart,然后再重新写一个一样的chart,id会自动改变
- 比如现在有一个piechart,现在想用barchart,但是以后可能还会用piechart,最好是复制一个,然后将其中一个piechart点击右键通过convert转换成barchart
- 可以在js文件夹下创建一个map.js文件,专门存放 objname -- objid,或者写一个json文件,这样可以保证修改时不会重新编译整个项目
4.Mashup安装与管理
QMC – Qlik Management Console
Export / Import
多版本处理
修改qext文件中的name,重新导入时候就会区分开
Qlik Branch
5.Mashup 最常用的 Qlik API – Capability API
因为qlik传递的信息是单节点信息,没有办法绑定js的event事件,所以无法判断传递的数据类型以及根据数据传递事件做出相应的事情。所以需要通过API来获取数据。
Root API
- 返回高于APP层级的信息,通过getAppList可以返回当前用户有多少app,app有什么信息。
- openApp:打开一个app,之后才能继续使用APP API
- resize:Qlik Sense虽然可以自适应,但是如果想把一个chart放到一个div中 ,同时用户可以对div进行拖动放大放小,这时没有触发浏览器的resize,所以就需要resize这个api来辅助实现自适应。
- sessionApp:如果说想做一个app,让用户可以点进来看,但是用户所有的操作做出的改动不想保留下来,可以使用sessionApp
- setDeviceType:可以强行设置'auto'、'touch'、'desktop',若未设置则自动检测
- table:能够直接将app中的数据变换成table输出
App API
- clearAll:清空选项
- getObjectProperties:通过传参(appid)获取到chart数据,并进行二次开发
- getObject:直接将app渲染到div中
Bookmark API
可以存储当前的选择信息,类似于宏操作,可以保留历史
Field API
- QField -> select:因为Qlik Sense中做筛选是在字段上做的,所以所用到的select是在QField下的select方法中,添加字段名称,以及想要选择的下标索引,以及是否需要重新覆写上一次的选择。
- QField -> selectAlternative:互斥选择。选择当前选择的所有其他选项。
- 选择的时候有四种颜色:绿色表示当前选择的,白色表示与当前选择相关的选项,深灰色表示不可选,灰色表示可选。白色的可以通过selectPossible方法来选择。
- QField -> selectValues:不知道选项下标,直接传入value,帮助选择
Global API
用于返回Qlik Sense基本信息,如版本号,server信息,运行状态等
Table API
Navigation API
Selection API
- 专注于当前app中选择的选项,选择的状态等,是基于QField中的select方法的。
- 通过对app.selectionState().onData.bind(listener)进行绑定监听,获取当前选中 的选项信息,可以进行下一步的跳转或者其他事件。
Variable API
Visualization API
- 在app的dataModel基础上,通过create方法可以生成新的图表,或者通过get方法拿到一个图表,在其渲染之前进行一些数据判断或再次筛选。类似于预读功能,先读入配置,等需要渲染的时候再渲染。
- Options:可以获取某一些图表的properties,并可进行适当的替换,所作出的操作不会影响原始数据和图表。
6.Mashup 客户端 API
Capability API
Extension API / Backend API
URL Integration (Single Object /App)
每一个object在single configuration中可以直接复制url地址粘贴在浏览器直接打开,单独占一个websocket,同时可以设置opt=nointeraction(无法选择进行交互)或者删除这一句话来使用户可以选择其中的某一项。
7.Qlik 服务端 API
Engine API
- Enigma.js
- .NET SDK
QRS API (Qlik Repository Service API)
- 删除app 修改app 上传文件 etc
- 需要保证header中的X-Qlik-Xrfkey 16位字符串与参数是一样
- 可以查看QRS API endpoints (subset)
QPS API (Qlik Proxy API)
- 可以拿到ticket,通过ticket获取一个session,再与Qlik进行交互
UDC API (User Directory Connector API)
8.Qlik 扩展 API
Customer Connector (QVX)
ODAG API (on demand app generation)
SSE (Server side extension)
Leonardo UI
Picasso Chart Lib
Qlik Sense学习笔记之Mashup开发(一)的更多相关文章
- 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学习笔记之插件开发
date: 2019-05-06 13:18:45 updated: 2019-08-09 15:18:45 Qlik Sense学习笔记之插件开发 1.开发前的基础工作 1.1 新建插件 dev-h ...
- Android(java)学习笔记219:开发一个多界面的应用程序之两种意图
1.两种意图: (1)显式意图: 在代码里面用intent设置要开启Activity的字节码.class文件: (2)隐式意图: Android(java)学习笔记218:开发一个多界面的应用程序之人 ...
- APPCAN学习笔记003---原生开发与HTML5技术
APPCAN学习笔记003---原生开发与HTML5技术 技术qq交流群:JavaDream:251572072 1.HTML5的优势: HTML5强悍牢固的骨架 CSS3精致到每一个毛孔的皮 ...
- APPCAN学习笔记001---app高速开发AppCan.cn平台概述
1.APPCAN学习笔记---app高速开发AppCan.cn平台概述 1. 平台概述 技术qq交流群:JavaDream:251572072 AppCan.cn开发平台是基于HTML5技术的跨平台移 ...
- Hadoop学习笔记(4) ——搭建开发环境及编写Hello World
Hadoop学习笔记(4) ——搭建开发环境及编写Hello World 整个Hadoop是基于Java开发的,所以要开发Hadoop相应的程序就得用JAVA.在linux下开发JAVA还数eclip ...
- Android(java)学习笔记162:开发一个多界面的应用程序之两种意图
1.两种意图: (1)显式意图: 在代码里面用intent设置要开启Activity的字节码.class文件: (2)隐式意图: Android(java)学习笔记218:开发一个多界面的应用程序之人 ...
- jsp学习笔记:mvc开发模式
jsp学习笔记:mvc开发模式2017-10-12 22:17:33 model(javabe)与view层交互 view(视图层,html.jsp) controller(控制层,处理用户提交的信息 ...
- JavaSE 学习笔记01丨开发前言与环境搭建、基础语法
本蒟蒻学习过C/C++的语法,故在学习Java的过程中,会关注于C++与Java的区别.开发前言部分,看了苏星河教程中的操作步骤.而后,主要阅读了<Java核心技术 卷1 基础知识>(第8 ...
随机推荐
- 你没有看错,爬网页数据,C# 也可以像 Jquery 那样
一:背景 1. 讲故事 前段时间搞了一个地方性民生资讯号,资讯嘛,都是我抄你的,你抄官媒的,小市民都喜欢奇闻异事,所以就存在一个需求,如何去定向抓取奇闻异事的地方号上的新闻,其实做起来很简单,用逻辑回 ...
- JUC 常用4大并发工具类
什么是JUC? JUC就是java.util.concurrent包,这个包俗称JUC,里面都是解决并发问题的一些东西 该包的位置位于java下面的rt.jar包下面 4大常用并发工具类: Count ...
- PPT画成这样,述职答辩还能过吗?
作者:小傅哥 博客:https://bugstack.cn 沉淀.分享.成长,让自己和他人都能有所收获! 一.前言 标题有点凶,但内容很干! 大部分程序员并不会画PPT,也梳理不出架构图.工作的年头虽 ...
- Spring ioc 源码分析之--beanFactory.registerResolvableDependency()方法
背景: 在spring ioc refresh()方法中,看到了如下逻辑: 要理解该逻辑的原理,先看场景:有个接口InterFaceA,它有2个实现类A1和A2 那么,如果一个类C 依赖了InterF ...
- 【奇淫巧技】sqlmap绕过过滤的tamper脚本分类汇总
sqlmap绕过过滤的tamper脚本分类汇总
- matlab中datest() 将日期和时间转换为字符串格式
来源:https://ww2.mathworks.cn/help/matlab/ref/datestr.html?searchHighlight=datestr&s_tid=doc_srcht ...
- 【题解】CF1324F
Question 题目大意:每个点不是黑点就是白点,求以每一个点为根时,选择出一个联通块,使得白点数与黑点数之差最大(白减黑). \(Solution\) 考虑先跑一遍\(dp\). 可以写出一个比较 ...
- JavaScript reduce()的使用
语法 arr.reduce(callback(accumulator, currentValue, index, array), initialValue) 参数 callback 执行数组中每个值 ...
- Springboot集成logback,控制台日志打印两次,并且是不同的线程打印的
背景 在搭建一个新项目的时候,从公司别的项目搞了个logback-spring.xml的配置过来,修改一下启动项目的时候发现 所有的日志都输出了两次 并且来自于不同的线程,猜测是配置重复了,但是仔细检 ...
- windows server2008 r2激活
KMS激活: 管理员运行cmd 输入以下命令 slmgr /ipk 密钥slmgr /skms zh.us.toslmgr /atoslmgr /xpr 可用密钥如下: KMS Windows Ser ...