水晶报表如何查看sql_有了这个报表工具,一键生成自定义的各种报表,还可以导出Excel...

EasyReport是一个简单易用的Web报表工具,它的主要功能是把SQL语句查询出的数据转换成报表页面, 同时支持表格的跨行(RowSpan)与跨列(ColSpan)配置。 同时它还支持报表Excel导出、图表显示及固定表头与左边列的功能。

功能介绍

本工具从数据库(MySQL,Oracle,SQLServer,HBase等)的表中读取数据,转换成报表。支持多级索引以及复杂的自定义配置。

7272a06500e7f6759e831f54650e33ff.png

比如可以把上面的数据库表的内容,免开发配置出如下报表页面:

ca2930ba49add4a29f9dd7e4966ac7c9.png

此外,本工具还支持复杂的自定义条件筛选、排序、数据量计算表达式等。

数据源设置

首先要配置好数据来源,然后基于数据源做出报表。

5b63561a8eed63344bd0b8244aff66fe.png

报表设计

数据源配置成功就可以开始报表设计了 首先写一个SQL查询语句,把想要展示的信息查询出来,比如:

select area, year(dt), quality, pm25, pm10, o3 from fact_air_cn where area='北京市' or area='上海市' or area='三亚市'

2e3af0656f8568d83a7d3350efa8d39a.png

点击执行SQL,查询出的内容要分成两类,一类是“索引”,一类是数值。索引可以显示在左侧或者上侧,可以有多级索引。比如我想分地区、年份、空气质量类型来查看pm2.5, pm10, o3的数值:

f8770b2245e0105bb0b2e48c4d2135b8.png

地区和年份的索引显示在左侧,空气质量类型显示在上侧。

保存后点击预览报表即可显示:

971665eef4e5cac4f09e8352dcf377b7.png

这样,一份报表就做好了。

高级功能介绍:

1 数值列可选

只选择感兴趣的数值列,让有限的页面空间显示更多我们感兴趣的内容

25ec376cf617ed19f8632b5b90516b34.png

2 加入维度筛选

针对一个或多个维度列,生成下拉选择框,只显示感兴趣的维度列。

05c06d0fef783867e1a8ef7dcd678a01.png

上面的城市选项,需要在“查询参数”tab下设置,而且下拉框的内容可以从数据库里查出来,也可以自己按照name1,text1|name2,text2|... 格式输入。 同时sql语句里要加上对应的筛选项名,比如:where area in ('${area}')

a27b7f9e9ccbeb142a922b1a669fdc86.png

3 加入日期筛选

报表的内容一般每天都会更新,所以日期的筛选很重要,本工具内置了startTime(七天前),endTime(今天)两个变量,可以很方便地滚动查看前7天的数据表内容。 Sql语句里也要加上对应的筛选项名,比如:where dt > '${startTime}' and dt < '${endTime}', startTime,endTime是内置参数,不需要想配置城市筛选项那样定义值

82547d7c34f028185daa803f7893aa03.png

4 报表的另一个重要方面是排序方式,按需排序后可以方便地发现重要信息

在设计报表页面,每一列都有排序方式设置,比如我想按照自己的顺序对城市名称进行排序,可以这么操作:

8b217131fc3de38aa6aa44c92fcc7815.png

显示的报表如下:

a5872393404239c65973453f5392baac.png

5 通过报表右上角的图标,点击即可导出excel文件

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/396726.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python 三维向量 交互_Blender实现Nature of Code1.5单位向量[Nature of Node 004]

【Nature of Node #004】Blender创意编程进阶应用&#xff1a;实现Nature of CodeNature of Code 1.5, Unit Vector (Normalize)背景介绍这个系列“Nature of Node”&#xff0c;是专门用Blender的Node&#xff08;节点&#xff09;方式来实现Nature of Code。用到一个Blender插…

Sitemesh3的使用及配置

1 . Sitemesh 3 简介 Sitemesh 是一个网页布局和修饰的框架&#xff0c;基于 Servlet 中的 Filter&#xff0c;类似于 ASP.NET 中的‘母版页’技术。参考&#xff1a;百度百科&#xff0c;相关类似技术&#xff1a;Apache Tiles。 官网&#xff1a;http://wiki.sitemesh.org/wi…

等保项目流程

等级保护&#xff1a;直属管理公安局 产品必须通过公安局安全许可证分级保护&#xff1a;直属管理保密局 产品必须通过保密局销售许可证等级保护&#xff1a;一般分为5级&#xff0c;目前最高用到是等保4级总概&#xff1a;定级——前期调研——总…

鸿蒙系统r如何升级,高歌猛进,鸿蒙系统升级机型再次确认,花粉:终等到!...

虽然华为手机现在的压力非常大&#xff0c;但是在前进的道路上&#xff0c;真的充满了乐观精神&#xff0c;而且现在也算是一路高歌猛进了&#xff0c;发展路线开始加快了许多&#xff0c;无论是新机还是系统&#xff0c;都有着非常多的新消息。因为华为手机的实力很强&#xf…

Oracle快速备份表数据

Oracle数据库中备份表数据。 例子&#xff1a; 1 create table table_name_bak as select * from table_name 1 create table table_name_bak as select * from table_name 2 where table_name.date between TO_DATE(2018-09-25,yyyy-MM-dd) and TO_DATE(2018-09-26,yyyy-MM-d…

git pull

今天在服务器上git pull是出现以下错误&#xff1a; error: Your local changes to the following files would be overwritten by merge: application/config/config.php application/controllers/home.php Please, commit your changes or stash them before you can merge. …

jq控制div是否展示_jQuery控制多个DIV的显示和隐藏

问题补充&#xff1a;这是我写的JSfunction Previous(){for(var i1;i<3;i){if(document.getElementById("d"i).style.display"block"){document.getElementById("d"(i-1)).style.display"block";}document.getElementById("d&…

C# 线程间不能调用剪切板的问题

最近做一个项目&#xff0c;需要用到线程&#xff0c;而且要用到剪切板&#xff0c;创建了一个子线程之后发现在子线程中剪切板上获取不到数据&#xff0c;当时特别纳闷&#xff0c;上网查资料&#xff0c;最后终于搞定&#xff0c;现将解决方法归纳如下&#xff1a; 第一步&am…

android studio背景模糊_[Android翻译]CameraX:过去、现在和未来的一瞥

CameraX是一个未捆绑的Android Jetpack库&#xff0c;它可以帮助你在Android应用中轻松添加摄像头功能。传统上&#xff0c;由于Android设备种类繁多&#xff0c;编程模型复杂&#xff0c;在Android上构建具有相机功能的应用程序非常困难。现在成千上万的开发者都在使用CameraX…

html页面根据分辨率缩放,html2Canvas根据不同分辨率,生成pdf内容自适应

根据屏幕大小不同&#xff0c;页面内容自适应并一页展示&#xff0c;应该如何实现// 导出页面为PDF格式import html2Canvas from html2canvasimport JsPDF from jspdfexport default{install (Vue, options) {Vue.prototype.getPdf function () {setTimeout(() > {var titl…

【agc002f】Leftmost Ball(动态规划)

【agc002f】Leftmost Ball&#xff08;动态规划&#xff09; 题面 atcoder洛谷 题解 我们从前往后依次把每个颜色按顺序来放&#xff0c;那么如果当前放的是某种颜色的第一个球&#xff0c;那么放的就会变成\(0\)号颜色&#xff0c;所以无论何时&#xff0c;\(0\)号颜色的数量不…

VS2010中的快捷键

一. VS2010中的快捷键 1&#xff1a; Ctrl Enter &#xff08;在光标指定位置的上 K C &#xff08;注释&#xff09; Ctrl E U &#xff08;取消注释&#xff09;  <>  Ctrl K U &#xff08;取消注释&#xff09; 5&#xff1a; Tab &#xff08;增加缩进&a…

export function函数传参_04 js高阶函数(惰性函数、柯里化函数、compose函数)和单例设计模式...

高阶函数的定义在《javascript设计模式和开发实践》中是这样定义的。函数可以作为参数被传递&#xff1b;函数可以作为返回值输出。结合这两个特点&#xff0c;首先想到的肯定是回调函数&#xff0c;回调函数也是高阶函数的一种&#xff0c;除了回调函数&#xff0c;还有很多的…

Javascript构造函数的继承

仅供学习参考&#xff0c;原文链接&#xff1a;http://www.ruanyifeng.com/blog/2010/05/object-oriented_javascript_inheritance.html 今天要介绍的是&#xff0c;对象之间的"继承"的五种方法。 比如&#xff0c;现在有一个"动物"对象的构造函数。 funct…

python输入字符串str_python字符串(str)

#value "raitOrEi"#v value.capitalize()#首字母大写#print(v)#v1 v.casefold()#全部变小写&#xff0c;不只是英文的&#xff0c;其他语言特殊的大小写也变换#print(v1)#v2 v.lower()#只是英文变小写#print(v2)#设置宽度&#xff0c;并将内容居中#20 代指总长度…

html5 audio api 录音,如何使用HTML5 Web Audio API录制我的声音

在webkit浏览器上,您可以将get user media api与webkitGetUserMedia一起使用 – 如html5rocks所示.如果你想用你的声音来创建javascript事件(例如控制屏幕上的对象)你必须分析传入的声音(例如事件1的高频率 – 事件2的低频率,语音分析要复杂得多,见下文)另外,还有chrome的’x-w…

修改密码

在updateservlet.java中写了方法&#xff0c;修改用户密码&#xff0c;代码不成功求大神指教&#xff0c;代码如下&#xff1a; updateadminpw.jsp <% page contentType"text/html;charsetgb2312" pageEncoding"gb2312" %><% taglib uri"ht…

MlLib--逻辑回归笔记

批量梯度下降的逻辑回归可以参考这篇文章&#xff1a;http://blog.csdn.net/pakko/article/details/37878837 看了一些Scala语法后&#xff0c;打算看看MlLib的机器学习算法的并行化&#xff0c;那就是逻辑回归&#xff0c;找到package org.apache.spark.mllib.classification下…

mysql相关命令操作

2019独角兽企业重金招聘Python工程师标准>>> 远程连接容器中的mysql&#xff1a;mysql -h 192.168.5.116 -P 3306 -u root -p123456 启动mysql容器&#xff1a; $ sudo docker pull mysql:5.6.35 $ sudo docker run --name mysql -p 12345:3306 -e MYSQL_ROOT_PASSW…

html实体注册商标,html 注册商标,html 注册商标代码

html中注册的页面用什么标签写好对于html中的注册页面&#xff0c;策朋专业办理商标注册、专利申请、版权登记保护&#xff0c;需要一个表格。使用标签&#xff0c;输入和按钮标签来组合成就。使用html作为注册页面。实际上&#xff0c;只要您能达到期望的效果&#xff0c;它的…