如何把Qlik Sense嵌入到Web应用中
(此文章同时发表在本人微信公众号“dotNET开发经验谈”,欢迎右边二维码来关注。)
题记:这是一个给初学者(尤其对VS不熟悉的BI工程师)的入门操作向导。
Qlik Sense是Qlik公司推出的第二代BI产品,它的架构设计的很灵活,实现了前后端分离,所以理论上你可以只使用Sense的后端,而完全自定义前端展示。其实Qlik自带的Hub就可以看作是一个官方实现的前端。
除了架构的灵活性以外,Sense在前端部分也提供了很强的扩展和集成能力,比如可以通过Mashup来自定义页面,甚至可以把报表或者可视化对象嵌入到外部Web应用程序中。Mashup本质也是一种嵌入机制,区别只是在于Mashup的页面是由Sense服务器托管。
要在自己的Web应用(比如ASP.NET MVC应用)中嵌入Sense其实很简单,Qlik已经为我们提供了一个针对Visual Studio的插件——Qlik Analytics plugin for Visual Studio(以下简称Qlik插件)。当然,如果你不使用Visual Studio的话,也可以下载Qlik Explorer for Developers。因为嵌入方式主要在前端,所以嵌入的Web应用可以是任何开发技术开发的。Qlik插件的基本功能就是让我们可以浏览Sense中的所有元素,并把脚手架代码添加到我们的项目代码中。
具体的步骤如下:
1,安装Visual Studio 2015 Community,完成VS的安装后,下载并安装Qlik Analytics plugin for Visual Studio。
2,启动Visual Studio,通过菜单“View-Other Windows-Qlik Analytics for Visual Studio”来打开插件,如下图所示:
3,在Qlik插件中,点击左上角的服务器图标来连接到Sense服务器。服务器可以是桌面版的地址(http://localhost:4848/)也可以是本机或者远程Sense服务器地址(http[s]://server.domain.com[:port]/[VirtualProxy])。如下所示:

4,Qlik插件连接到服务器或者桌面版之后,根据不同的连接地址,显示的内容有所不同。连接桌面版会列出qvf,而连接服务器会先显示所有流,在流之下再显示App。在每个Sense App下面会列出其包含的书签、字段、主可视化对象(包括筛选器和列表)、主维度、主度量、变量、工作表(Sheet)。每个工作表下面还会列出包含的可视化对象。如下图所示:


5,在Qlik插件中的下半部分,有Preview和Code两个标签页。在选择一个可视化对象的时候,预览标签页可以显示这个可视化对象的静态图。而Code可以为选中对象显示如下信息的脚手架代码:
- html:基于div的html脚手架代码,不是所有对象都适用
- 服务器节点:服务器连接信息的html脚手架代码
- App节点:操作和导航按钮的html脚手架代码,包括:ClearAll、Back、Forward、DoReload
- 书签对象节点:启用书签的html脚手架代码
- 字段对象节点:字段操作的html脚手架代码,包括:Select All、Select Alternative、Select Excluded、Select Possible、Lock、Unlock、Select、Select Match、Select Values、Clear
- 可视化对象节点:可视化对象的html脚手架代码
- Sheet对象节点:Sheet对象的html脚手架代码
- id:所有对象节点(不包括服务器节点、流节点和文件夹节点)的实体ID
- iframe:和html类似,只是基于iframe的代码
- layout:具有id的对象节点的对象模型数据结构的json代码
- properties:具有id的对象节点的对象属性数据结构的json代码
6,通过VS的菜单“File-New-Project”来打开新建项目的对话框,选择Web模版中的“ASP.NET Web Application”,重命名项目名称,比如“EmbeddedSense”,如下图所示:

7,在上图中点击OK之后,会让你选择ASP.NET所使用的技术,选择MVC后,点击“Change Authentication”按钮,并选择“Windows Authentication”。这样做的原因是为了通过Windows验证来单点登录Sense服务器。当然使用其他验证方式也可以,只是就需要根据Sense的SSO规范来额外做验证集成的开发。其他不用修改,就点OK。注意,理论上选择Web Forms或者SPA也可以,因为嵌入的主要工作在前端,这里仅以MVC举例。如下图所示:

8,创建好MVC项目之后,_Layout.cshtml文件(在Views\Shared文件夹里面),在Qlik插件中选择服务器节点的html代码,拖动到“</head>”之上,保存更改。如下图所示:

9,打开“Views\Home\Index.cshtml”文件,把三个“<div class="col-md-4">”标签里面的内容删除。任意选择三个可视化对象的html代码,拖动到原来的三个位置中。如下图所示:

10,按F5运行Web应用,就可以在首页上看到Sense的可视化对象已经嵌入到你自己开发的Web应用中了。如下图所示:

注意:如果可视化对象不能显示,可以尝试使用IE浏览器来查看;如果报错,可能是Qlik插件和服务器版本有兼容性问题,可以把_Layout.cshtml中qlik.setOnError方法注释掉。
预告:接下来我会分享如何把微软的Power BI嵌入到你的Web应用中。
如何把Qlik Sense嵌入到Web应用中的更多相关文章
- 如何把Power BI嵌入到Web应用中
(此文章同时发表在本人微信公众号"dotNET开发经验谈",欢迎右边二维码来关注.) 题记:这篇其实不是一个操作向导了,主要对Power BI的嵌入特性进行探讨. Power BI ...
- 免费生成二维码接口,可直接嵌入到web项目中,附带嵌入方法,任意颜色二维码,任意大小二维码!
在线体验连接:http://www.zhaimaojun.top/qrcode/ 你是否在项目中寻找方便而且免费的可以直接嵌入到项目中的二维码生成工具呢?你找到了这里,说明你已经找到了!不要犹豫直接拿 ...
- 海康威视 嵌入到web页面相关问题
因项目上面需求,接触到了海康威视的设备,要把他嵌入到web页面中,所以就开始了爬坑之路 刚开始不知道如何把设备的页面嵌入到项目的web页面中,直到我遇见了他——“WEB3.0控件开发包V1.0.9_C ...
- Qlik Sense学习笔记之Mashup开发(一)
date: 2018-12-21 12:33:29 updated: 2018-12-21 12:33:29 Qlik Sense学习笔记之Mashup开发(一) 1.基于Qlik Sense API ...
- 如何将Gate One嵌入我们的Web应用中
参考文档http://liftoff.github.io/GateOne/Developer/embedding.html 从https://github.com/liftoff/GateOne下载的 ...
- [Flex] IFrame系列 —— 在flex的web应用中嵌入html的方法
在flex的web应用中,我们往往必须有嵌入html的需求,这时候你会发现IFrame很有用! flex而且可以和html中的JavaScript进行交互,flex可以通过iframe调用到html中 ...
- Qlik Sense Desktop
2014年新一代的报表利器 Qlik Sense Desktop 初步体验 2014-09-22 12:45 by BIWORK, 974 阅读, 7 评论, 收藏, 编辑 Qlik Sense De ...
- 2014年新一代的报表利器 Qlik Sense Desktop 初步体验
点击进入 QlikView/QlikSense 社区 交流群:432998033 Qlik Sense Desktop 的案例展示 先上几个刚刚边看边学完成的几个报表案例效果 (如果图片显示不正常, ...
- Java嵌入式数据库H2学习总结(三)——在Web应用中嵌入H2数据库
H2作为一个嵌入型的数据库,它最大的好处就是可以嵌入到我们的Web应用中,和我们的Web应用绑定在一起,成为我们Web应用的一部分.下面来演示一下如何将H2数据库嵌入到我们的Web应用中. 一.搭建测 ...
随机推荐
- 利用vim查看日志,快速定位问题
起因 在一般的情况下,如果开发过程中测试报告了一个问题,我一般会这么做: 1.在自己的开发环境下重试一下测试的操作,看看能不能重现问题.不行转2 2.数据库连接池改成测试库的地址,在自己的开发环境下重 ...
- 推荐几款我一直在用的chrome插件(下)
请先看:推荐几款我一直在用的chrome插件(上) 6. Pocket 可以很方便的保存文章.视频等供以后查看,即实现了“Read it later”功能.有了 Pocket,您可以将所有想下次读的内 ...
- 【转载】Unity中矩阵的平移、旋转、缩放
By:克森 简介 在这篇文章中,我们将会学到几个概念:平移矩阵.旋转矩阵.缩放矩阵.在学这几个基本概念的同时,我们会用到 Mesh(网格).数学运算.4x4矩阵的一些简单的操作.但由于克森也是新手,文 ...
- 手机通过数据线连接电脑后,找不到设备--Android Studio
手机通过数据线连接电脑后,找不到可用的设备.允许USB调试,,因为小米手机还要设置USB开发者模式. 1.打开设置/关于手机 四次点击“MIUI版本”如图: 2.返回上一页打开更多设置 看到开发者选项 ...
- .Net GridView 序号列
给GridView增加一列:序号列 <asp:TemplateField HeaderText="序号"> <ItemTemplate> <%# (( ...
- Android Notification通知详解
根据activity的生命周期,在activity不显示时,会执行onStop函数(比如按下home键),所以你在onStop函数(按退出键除外)里面把notification放在通知栏里,再此显示时 ...
- PHP代码获取客户端IP地址经纬度及所在城市
echo $_SERVER['HTTP_HOST'];//echo $_SERVER['REQUEST_URI'];$getIp=$_SERVER["REMOTE_ADDR"];e ...
- xml编辑器
cstring转cha型方法在mfc中用过可行 int CstringToch(CString str, char *ch) { assert(ch); memset(ch, 0, sizeof(ch ...
- ASP.NET MVC 5 使用autofac实现DI
使用Nuget添加Autofac.MVC的引用 启动项设置 注册Controller 注册ModelBinder 注册相关的web abstraction 为View层启用属性注入 为Action F ...
- 触发bfd 的条件
满足下列条件之一就可触发BFC [1]根元素,即HTML元素 [2]float的值不为none [3]overflow的值不为visible [4]display的值为inline-block.tab ...