- 简介:采用HTML5开发,一个类似Excel表格形式的Web报表设计于开发平台
- 设计的报表模板将以XML的格式保存
- 组成部分:报表设计器、表单设计器、管理平台
- 报表设计
- 数据源管理
- 数据库:
报表与表单主要数据来源于数据库,支持Mysql、Oracle、DB2、SQLServer、Sybase、PostgreSQL等数据库
- 数据库:
-
数据集
-
分为私有数据集和共享数据集
-
报表设计器数据集即为私有数据集,私有数据集只应用该报表模板。如何使用共享数据集,可在数据集中"引用"共享数据集,将共享数据集变为私有数据集,并能编辑该数据集。
-
在每个报表页面均能添加、编辑、删除共享数据集,如果报表页面使用共享数据集,则首先在共享数据集中添加数据集,然后在数据集页面引用共享数据集。
-
-
SQL解析
-
解析SQL优点:简化带参数的sql语句,如select * from rpt_value where name=':arg', arg为参数名称与参数页面的组件名称相对应,当参数页面不输入arg值即arg为空, sql解析会智能生成可执行的sql语句如:select * from rpt_value where 1=1。
-
解析SQL缺点:智能解析SQL语句并不能保证解析sql正确性,如果保存sql出现错误,建议SQL解析选择否。
-
不解析SQL:SQL解析选择“否”,当sql语句中存在参数,需要写判断参数是否为空的表达式:
select * from rpt_value where 1=1
<if test='arg1 != null'> and name=':arg1'</if>
<if test='startDate != null'> and t_date>:startDate</if>
当参数startDate=null,arg = name,生成的可执行的sql:- select * from rpt_value where 1=1 and name=’name’
-
- IF表达式
- <if test=""></if> test中为逻辑判断表达式,根据参数最终生成可执行的SQL语句,if表达式也支持嵌套SQL判断
- 示例:可以根据参数sqltype不同执行不同的sql语句
- <if test="sqltype=='A'">
- select * from A where 1=1
- <if test="year!=null"> and year=:year</if>
- </if>
- <if test="sqltyoe=='B'">
- select *from B where 1=1
- <if test="year!=null"> and year=:year</if>
- </if>
- <if test="sqltype=='A'">
- 分页数
-
分页数为0时表示不使用分页查询,当分页数大于0时,SQL语句在查询时会自动增加SQL分页片段,不需要在SQL检索中写分页查询SQL,当填写分页数如2,
程序会智能依据不同数据库添加sql分页片段,如mysql:select * from rpt_value limit 0, 2
-
-
存储过程
-
在报表设计器左边的数据集或是共享数据集,点击“新增”则出现数据集窗口页面选中“存储过程”如下图:
- 参数name的默认值为"wer",将查询姓名为wer的人员信息
-
选择数据源,数据源对应数据库,填写数据集名称,数据集名称不能为空且不能与该报表其他数据集重复,填写存储过程名称
- 参数:存储过程的参数主要包含输入参数、输出参数,存储过程的参数个数与顺序需要与存储过程相对应,关联参数名称是参数页面组件对应的名称,也可以是参数页面隐藏域参数名称
-
- Excel文件
- 描述:报表数据来源于excel,excel文件一般为第一行为标题,第二行开始是数据,第一行标题将作为数据列
- 上传excel数据文件:数据集点击“新增”,出现选择数据集窗口,选择“excel文件”,进入上传excel数据文件页面
-
填写数据集名称:
Excel数据开始行:指excel文件除标题外数据开始的第一行,如描述中excel,名称、区域、销售额为标题,数据开始于第二行。
上传Excel:可以上传多个相同格式的excel数据
预览数据:预览excel中的数据
- 数据集:上传完excel文件,确定生成数据集
- JSON 文件
- 描述:报表数据来源于JSON格式文件,json文件一般为数组json对象,name、age、birthday、sex为数据列
-
[{"name":"jack", "age":21, "birthday":"1990-02-01", "sex":"man"},
{"name":"张三", "age":21, "birthday":"1990-02-01", "sex":"man"},
{"name":"李四", "age":21, "birthday":"1990-02-01", "sex":"man"},
{"name":"tom", "age":28, "birthday":"1991-02-01", "sex":"man"}]
-
-
上传JSON文件:数据集点击“新增”,出现选择数据集窗口,选择“JSON文件”,进入上传JSON数据文件上传页面
-
填写数据集名称
上传JSON文件:文件格式为json数组对象
上传JSON文件:可以上传多个相同格式的JSON数据文件
预览数据:预览JSON中的数据
-
数据集:上传完Json文件,确定生成数据集
- 描述:报表数据来源于JSON格式文件,json文件一般为数组json对象,name、age、birthday、sex为数据列
-
XML文件
-
描述:报表数据来源xml文件,xml文件一般为多组相同的叶子节点数据,叶子节点Tag名称为数据列name、age、birthday、sex为数据列名称
-
<?xml version="1.0" encoding="UTF-8"?>
<resp>
<content>
<name>jack</name>
<age>21</age>
<birthday>1990-02-01</birthday>
<sex>man</sex>
</content>
<content>
<name>tom</name>
<age>21</age>
<birthday>1990-02-01</birthday>
<sex>man</sex>
</content>
<content>
<name>张三</name>
<age>21</age>
<birthday>1990-02-01</birthday>
<sex>man</sex>
</content>
</resp>
-
-
上传xml文件
-
数据集点击“新增”,出现选择数据集窗口,选择“XML文件”,进入上传XML数据文件上传页面
-
-
填写数据集名称
上传XMl文件:文件格式为XML多组相同的叶子节点数据
上传XML文件:可以上传多个相同格式的XML数据文件
预览数据:预览XML中的数据
-
数据集:上传完Xml文件,确定生成数据集
-
-
-
-
Web服务
-
描述:报表数据源支持来源web服务(http协议)、RESTFul服务,web服务返回的数据为JSON格式数据或是XML数据。
-
服务连接:数据集点击“新增”,出现选择数据集窗口,选择“XML文件”,进入上传XML数据文件上传页面
-
填写数据集名称
链接URL:web服务地址
请求方式:post或get,默认为post方式请求,建议使用post方式
返回数据格式:JSON或XML,默认为Json格式数据,建议使用Json格式数据,体积小,传播速度快
-
-
自定义数据集
-
描述:使用报表定义数据集,并将数据存放在报表模板中,适合少量的固定数据
-
定义数据:数据集点击“新增”,出现选择数据集窗口,选择“自定义数据”,进入数据定义页面
-
定义数据列:进入数据定义页面,定义数据首先需要定义数据列,数据列数据集列名称及数据的类型。
定义数据列名称为:姓名、年龄,姓名数据类型为字符串,年龄数据类型为整型
-
添加数据:定义完数据列,点击确定,点击“增加行”输入数据,整型输入数字
-
数据集:生成数据集
-
-
DQL数据集查询
-
描述:DQL(Dataset Query Language)数据集查询是类SQL查询语句,对多数据源进行过滤、关联、聚合等流式分布并发计算。
-
数据集关联查询:QL是对数据集进行再次查询,例如数据集ds1、ds2, ds1与ds2是数据库SQL查询生成的数据集,ds1与ds2来源不同数据库查询
-
DQL将数据集ds1与ds2按名称字段NAME进行关联
DQL语句: select * from ds1 t1 join ds2 t2 on t1.NAME=t2.NAME 或是 select * from ds1 t1, ds2 t2 where t1.NAME=t2.NAME
-
数据集过滤:
DQL是对数据集进行再次过滤查询,过滤参数为name
DQL语句: select * from ds1 t1, ds2 t2 where t1.NAME=t2.NAME and t1.NAME=:name
-
数据集分组求和:数据库SQL查询生成数据集名称为groupby
-
-
DQL对数据集groupby进行分组求和查询,按AREA_NAME,CITY_PRO,CITY_NAME 字段分组求和
DQL语句:select AREA_NAME,CITY_PRO,CITY_NAME, sum(SALE_PRICE) SALE_PRICE from groupby GROUP by AREA_NAME,CITY_PRO,CITY_NAME
-
-
分步计算:DQL也支持对DQL生成的数据集再次查询计算,如上DQL语句:select AREA_NAME,CITY_PRO,CITY_NAME, sum(SALE_PRICE) SALE_PRICE from groupby GROUP by AREA_NAME,CITY_PRO,CITY_NAME 生成数据名称为dqlgroup的数据集
-
-
可以对dql生成的数据集再次计算,如DQL语句:select sum(SALE_PRICE) AS TOTAL from dqlgroup
-
-
- 数据源管理
FLUX知识记录之Gem Report设计器学习1
最新推荐文章于 2024-11-11 21:32:38 发布