1.FineReport
官网 :FineReport产品简介- FineReport帮助文档 - 全面的报表使用教程和学习资料
下载地址 免费下载FineReport - FineReport报表官网
FineReport是一款用于报表制作,分析和展示的工具。
普通模板:是 FineReport 最常用,用的最多的设计模式,保存的文件类型为 cpt,依靠着单元格的扩展与父子格的关系来实现模板效果,可进行参数查询,填报报表,图表设计等等,但是在分页预览模式下不能在报表主体中展示控件,而且单元格间相互影响,很难保持独立性。
聚合报表:一般适用于一张模板中显示多个独立模块的报表。
决策报表:一般适用于控件的展示,保存的文件类型为frm,很好的弥补了普通报表分页预览不能展示控件的问题,同时决策报表可以进行自由拖拽设计,自适应页面大小显示,可以更好的在移动端展示。
2.数据库
(1)FineReport自带一个数据库FRDemo,也可以自定义导入数据库。
(写好数据库名,账号密码,端口号即可)
(2)数据集分类
模板数据集:只能在当前报表模板中使用。
服务器数据集:可以在所有报表模块中使用。
3.表格操作
(1)左下方加号数据库查询/选择数据库/搜索相应表/将其拖入空白区/编辑查询语句/可预览/确定。
(2)数据集编辑好后,切换模板数据集/将其字段拖入编辑区/自定义表格样式。
手写单元格为固定文本,拖入单元格为行列文本(运行前只显示一格)。
(3)斜线添加:点击单元格/右键/单元格元素/插入斜线/右上到左下写字段名(中间英文竖线|隔开)。
(4)HS计算:直接单元格运算,点击F(x)编辑HS,例如:“=SUM(C3)”。
(5)行列字段关联/单击单元格/过滤/例子:“销售员 = (数据列) ds1 销售员”。
4.图表操作
(1)选定FW/合并单元格/右键/单元格元素/插入图表/选择图表/确定。
(2)取消图表上左父格。
(3)图表属性/数据/选择单元格数据/定义分类名(=B3)、系列名(=C2)、其值(=C3)。
(4)图表属性/样式/可更改标题等大量属性样式。
(5)图表属性/特效/交互属性更改工具栏等。
(6)图表属性/特效/条件显示更改柱子颜色、渐变、闪烁特效等。
5.控件操作
查询控件步骤:模板/模板参数/“+”/改名字/完成模板参数的定义/单击上方阴影区铅笔操作控件区。
右侧点击控件设置,在控件区域内方可编辑。
标签控件:编辑控件名称和控件显示值。
下拉菜单控件:编辑控件名称和控件显示默认值。
编辑数据字典,选择数据库与数据表,实际值与显示值(对应好目标列)。
返回编辑区,找到对应目标列的单元格,双击/过滤/选择可选列、操作符、参数等,之后添加即可。
控件事件:对某事件进行事件添加:例如初始化后,代码编写 "alert('初始化后的事件')",运行时会有对应弹窗。
6.网页操作
(1)报表做好后,FineReport中,菜单栏点击服务器/报表平台管理。
(2)点击左侧管理系统/目录管理/添加目录/输入名称即可。
(3)随后在目录管理最下方找到目录,添加模板,选择对应的cpt报表文件,编辑好名称。
(4)回到决策系统目录首页,找到刚刚添加的项目,打开即可查看报表。
7.聚合报表搭建
(1)聚合报表固定页面大小,表格图表均靠拖拽,可自定义调节大小及扩展。
(2)图表方面,由于聚合报表各模块相互独立,不继承其父单元格,若想使用其他模块数据,进行数据绑定时,数据采集不能写“=B3”,应写“=block1~B3”(模块名~单元格名),模块名点击模块移动处即可获取。
(3)其他的跟普通报表一样,控件模块同上。
8.决策报表搭建
(1)决策报表自适应大小,页面大则大,页面小则小。
(2)新建空白画布,拖参数指定控件区域,拖报表块指定表格区域,拖图表指定图表区域。
(3)图表方面,决策报表各模块独立,若想使用其他模块数据,进行数据绑定时,数据采集不能。写“=B3”,应写“=report0~B3”(模块名~单元格名),模块名可在组件设置处查看。
(4)其他的跟普通报表一样,控件模块同上。
9.单元格
(1)扩展方式:不扩展(所有数据一个格)、纵向扩展(默认)、横向扩展。
(2)父格:若左边是右边的爹,点右边时他爹会有箭头显示,能证明他是他爹。
(3)断绝关系:单元格属性中父格设置为无,子格就不认爹了。
(4)若有上父也有左父,俩爹!且均为默认属性,那么子格设置无,这样会正常随他俩爹扩展。
(5)一父一子,跟他爹同向,子格同格显示;跟他爹逆向,乱;子格无向,自动随他爹走。
10.纵横伸展
(1)伸展:非数据列和数据列一起变动,若不伸展,则在单元格属性处取消即可。
(2)排序:
死点
开发人员控制,则用扩展后直接排序即可。
活点
用户控制,表头区域自定义,表头设置打开,选好单元格。
(3)接着改纹理的幌子插入图片:选择某单元格/单元格属性/样式/单元格/背景/填充/图片。
11.过滤数据
(1)数值列过滤数据:
拖入字段的单元格/双击/过滤/普通/选条件就完了。
拖入字段的单元格/双击/过滤/公式/写条件/增加/确认。
例如:LEFT(订单ID,3)=103,筛选订单ID前三位是103的。
(2)更牛逼的筛选方式:
添加模板数据集时直接用代码筛选。
比如:where 地区 = '${area}',展开数据集时会有筛选提示。
添加控件操作,见本章第五题,但不用返回编辑区过滤方可直接运行。
12.三级联动
当参数之间有层级关系时,需要在选择参数时实现联动效果。
定义查询所有数据的数据集(总数据集、地区集、销售员集、销售总量集)
(1) -- 总数据集SELECT * FROM 销量 where 1=1 ${if(len(area)=0,'','and 地区="'+area+'"')} ${if(len(xsy)=0,'','and 销售员="'+xsy+'"')} (2) -- 地区数据集SELECT distinct 地区 FROM 销量 (3) -- 销售员数据集SELECT distinct 销售员 FROM 销量 where 1=1 ${if(len(area)=0,'','and 地区="'+area+'"')} (4) -- 销售总量数据集SELECT 销售员,sum(销量) as 销售总量 FROM 销量 where 1=1 ${if(len(area)=0,'','and 地区="'+area+'"')} ${if(len(xsy)=0,'','and 销售员="'+xsy+'"')} group by 销售员添加控件,数据字典编辑,类型设置:数据查询,其他同第5题。
13.控件为空则显示All
(1)模板参数:在对应单元格内过滤条件用函数,代码为:if(len(地区)=0,NOFILTER,地区)
如果参数等于0,也就是啥也没选,用NOFILTER不会筛选任何值,否则筛选对应参数
(2)数据集参数:导入数据集时代码:
SELECT * FROM 订单 WHERE 1=1 ${if(len(area)==0,"","and 货主地区 = '"+area+"'")}
更牛逼的筛选语句,导入数据集时直接代码筛选,比方式1更牛逼。
14.填报报表
数据库中新建库和表格:
create database if not exists itheima charset=utf8; create table if not exists itheima.tb_user( id int, name varchar(20), age int, gender varchar(20) );(1)FineR服务器/定义数据连接/连接到本地/默认编码。
(2)添加数据集/select * from 表名;
(3)拖入字段列后/为其各字段添加控件/文本控件等。
(4)模板/报表填报属性/内置SQL/智能提交/智能添加字段/选主键/智能添加单元格/选择对应列/未修改不更新/确定。
(5)模板/模板Web属性/报表页面设置/为该模板单独设置/选择对应控件/确定/填报预览。
(6)选定指定单元格/按钮控件/设置个插入行和插入列。
15.Tomcat启动
用Tomcat启动数据决策网页系统,找到Tomcat文件夹/bin/startup.bat,双击即可。
访问网址:http://localhost:8080/webroot/decision/