开源 BI 的 实用性怎么样
这个要看具体的使用场景,比如公司内部简单用来分析下数据,那么是可以用的,按照工具中自带的一些例子改改就行,但是如果要做一些商用项目时就不是太适合,开源 BI 一般是免费产品,工具成本低,但是最大的问题是没有支持服务,有问题只能去一些论坛上搜,即使有 bug 基本上也没法处理。所以如果做一些商用的项目,建议采用性价比高的一些半开源的产品,这种产品一般会提供丰富的接口,这样就可以自己在产品基础上做灵活
报表工具能否代替 BI?
在一般项目中报表工具是能够代替 BI 的,目前用到 BI 的功能主要是用来做数据的展示,以报表和数据分析为主。在报表需求中,国内的报表格式通常会比较复杂,像一些经常提到的中国式复杂报表,BI 中带的报表功能很难实现,这类报表就需要专业的报表工具来实现,所以即使是一些专业的 BI 项目,也是需要报表工具配合的,比如:有了 BI 还要做报表吗?而 BI 中的数据分析,现在的用户需求比较灵活,通常需要个
SQL 如何在时间序列中根据字段变化分组
将排序(一般按时间排)后的数据按某字段变化分组统计,也就是分组字段值与上一行的值比较,如果相同则分到与上一行同组,不同时则创建一个新组。这个问题用SQL来做很难!SQL的集合是无序的,早期SQL没有相邻行引用的方法。SQL2003标准中加入了窗口函数,能引用相邻行,但分组仍然非常困难,需要用子查询人为造出分组序号。举个例子:查询人员某段时间所处城市,并列出起始和结束时间。现有数据库表footmar
报表中怎么做鼠标悬停显示图片
其实现在大多报表工具都支持格子中写 html。在报表工具中实现鼠标悬停显示图片的需求,也只需要在报表里增加一个图层的定义,在对应的格子上挂上 html 事件,通过 JS 的 show()hide() 就可以轻松实现,显示的图片也可以根据指向的对象不同,动态显示出不同的图片信息,而且不会影响原有数据呈现的布局,具体实现可以参考下这篇文章的例 鼠标悬停显示图片
填报表怎么跟踪用户操作,记录日志?
大多数报表工具中填报一般只能做基本的数据增删改操作,不提供记录用户操作的功能,但基本都提供了提交的接口方法,可供二次开发修改。实现思路:在数据库中新增一张操作日志表,用于保存操作的用户信息。通过代码自定义方法向数据库插入数据。其中,自定义方法所做处理如下:首先,获取当前报表数据库链接,并记录被操作填报表的初始状态保存至对象 A 中;然后,在操作提交入库前再次截取 web 页面的数据状态保存至对象
填报表如何生成 UUID 标识
针对这类问题最直接有效的办法就是在数据库端定义字段自动增长,因为不管多少个用户,对数据库来说只是一个更新数据库的命令队列。但数据库主键自增长默认生成的均为固定步长的连续数值,如果要创建 UUID 主键的话,可能需要通过触发器实现。如果选对了报表工具,我们就可以不依赖数据库,在报表端轻松生成 UUID 标识。大致实现步骤:1. 在报表展现的 jsp 页面中定义 UUID 方法如下:function&
查询面板中如何实现两个 select 下拉框的关联查询?
方法 1: 通过码代码实现关联查询功能,思路如下:对第一个 select 下拉框添加 onchange 事件,当用户选择了第一个 select 下拉框的值后,就会进入 onchange 事件,在这个事件中获取选中的 value 值,然后使用 ajax 根据这个值查询关联的第二个 select 下拉框,并将结果返回显示到页面。这种方式在大数据量关联过滤时,容易出现性能问题。方法 2: 使用报表工具提
大屏报表中如何实现多图表间的联动?
方法 1: 如果有提供 DBD 功能的报表工具,那么可以直接使用 DBD 中自带的联动设置,简单快捷,例如: 大屏联动竟如此简单???方法 2: 如果采用的报表工具不支持 DBD,那么我们可以把整个大屏报表拆分成多个单报表,在报表工具中实现各个报表组件的绘制,然后通过 iframe 或者其他前端技术整合到一起显示到前端页面,并实现联动设置。例如使用 iframe 挂载报表时,可以通过 i
BIRT 异构跨库的动态关联查询怎么做
BIRT自带的Data Sources Join以及用ETL转化为同库等方案都难以解决此类问题。具体可以通过如下示例讨论:交易明细数据(trade表)存储于生产系统的数据库DB2中,另外一部分业务数据(network表、account表)存储于业务系统的Mysql中,它们其中的关联关系如下图所示: 所谓“动态关联”,是指用户在前台界面输入参数,报表通过参数来决定trade和哪
BIRT 如何用 rest api 接口获取 json 做报表
BIRT中不能构建JSON数据源,虽然一些开源社区提供了解析JSON数据源插件,但几乎所有插件都非常底层,并且使用起来很不方便,因此并不值得推荐。BIRT的常规办法是创建一个“脚本数据源”,在该脚本源上连接到URL并自行解析结果,但脚本写起来非常麻烦,而且工作量很大。比如要处理这么个场景:根据传入参数,调用REST API,返回嵌套的JSON数据,部分数据格式如下:[ &nb
像物流跟踪信息那样的时间轴报表怎么做?
这种效果自己可以基于 HTML5 和 CSS3 来实现垂直时间轴,需要循环遍历数据,判时间轴的长度,在做一定的适配,可以响应页面布局,在 PC 和移动手机上做到很好的自适应,但是需要一些对前端知识有一定的了解。其实,通过报表工具实现那种垂直的时间轴记录表是很容易的,设置也很简单,通过带有一个带有时间轴元素的图片和报表的跟随扩展功能就能轻松实现,不涉及到什么前端知识,具体可以参考看下这篇文 
一句话计算出 TopN 的增长情况
比如,一年中污染最严重三天的 PM2.5 涨幅,了解这个涨幅,就能观察出严重污染是突然出现的,还是逐渐积累起来的。用 SQL 语句找出污染最严重的三天,不算难:select top 3 * from T order by pm25 desc但后面的步骤比较麻烦,要找到这三天的前一天,还要和前一天的数值做计算,如果不是 SQL 高手,还真不能随手把这个 SQL 写正确。 如果用集算器 SP
业务人员怎么做数据采集分析?
数据采集的技术很多也很方便(例如最简单的上传 excel),但是为啥大部分采集的实际工作还是技术人员来做的,这是因为采集的数据需要能做自动化的分析处理,这就要求数据是结构化的,比如需要采集某个城市下超市的具体产品信息,业务人员绘制出来的表格如下图所示:实际数据应该存成如下图所示结构化的数据(数据以行为单位,一行数据表示一个实体的信息,每一行数据的属性是相同的):这个过程如果没有程序员参与的话就很难
BIRT 中如何根据参数动态拼接 SQL
BIRT可以使用sql query来创建数据集,通过在报表中设置参数(Parameter)来传递客户端的用户输入,同时可以设置Dataset参数并且与报表参数关联(这两个参数是不同的),这样可以将客户端的用户输入传递给Dataset的参数供sql query的where语句使用,这是通常的创建sql语句的做法,但是这种方法只适合固定的sql语句,对于拼接动态的sql就不适用了。比如要处理这么个场景
怎样快速做个 BI 系统
自己从头零开始开发必定是最慢的。要快,更好的方式是直接买 BI 软件。这就涉及选什么样的产品,不能随便买,得根据自己的需求想清楚。1、BI 系统需独立部署。(1)独立部署独立使用使用 BI 离不开用户权限,所以当前 BI 产品的存在形式基本都是整套 BI 系统,有完善的组织组织架构管理、登录验证、权限管理及 BI 功能模块,部署后直接可以使用。(2)独立部署,跨系统调用成套 BI 系统部署后,通过
web 端可填写报表怎么控制某些人能填某些格,而另一些人不可以
1. 填报表权限控制即控制哪些用户可以看到哪些填报表,哪些用户看不到。处理方式:做不同的表格给不同的人用,简单粗暴,但是如果用户及报表较多,那工作量就很大了。除此之外,还有一种情况,就是同一个报表对不同的用户可见。具体可参考润乾报表权限管理机制 之 资源树权限控制。后者相较前者,大大减少了报表开发的工作量,只需对用户做报表可见控制即可。2. 填报编辑控件权限控制指对同一个报表,不同的用户
web 填写大量数据怎么做到像 excel 一样定时保存
实现包含两步:利用 js 中定时执行某个动作的 setInterval() 方法。调用数据处理接口。这里的关键点在于报表工具是否提供了可被用户调用的接口,如果没有那基本就搞不了了。大多数有填报功能的商用报表工具都有这种接口,只要写类似这样的代码就可以了。<script> setInte
web 填报如何保证录入数据的合法性
举例:验证密码复杂度(必须包含数字字母)核心代码如下:function validateStr(str){ var reg1 = /^((\[0-9\]{1,})(\[a-z\]{1,}))|((\[a-z\]{1,})(\[0-9\]{1,}))$/; var reg2 = /^((\[0-
怎样制作出美观酷炫的可视化大屏报表?
1、 如果有提供 DBD 功能的报表工具,那么可以直接使用该功能, 大屏布局及其组件都能支持页面自适应,同时也能支持一个面板内多个组件的联动效果,具体实现可以参 大屏联动竟如此简单???;某个组件的数据过滤实现也很简单,具体可以参考 局部区块多个报表 TAB 页切换及局部区块的参数查询DBD 功能虽然可以让开发人员快速完成大屏报表的制作,但是报表工具只能管一些类似布局自适应、联
web 端展现报表数据时如何实现折叠展开效果?
1、 如果有报表工具,且报表工具内置了折叠属性设置,那么可以直接通过简单配置实现表格数据的折叠展开效果,具体操作配置可以参考 如何实现伸缩 (折叠) 报表?这种实现方式对开发人员技术要求比较低,操作方式也简单;web 端折叠打开的操作不需要刷新计算,性能相对比较高。2、 如果报表工具没有折叠功能,那么可以通过 jQuery 的 show()、hide() 方法对报表进行 tr 的显示、隐藏操作。这