finereport帮助文档初期学习总结


一、参数入门

参数:
多数情况下,客户需要显示满足一定条件的部分数据,这便需要用到参数。
参数设计实际上就是一个动态的过滤数据的过程,便于用户与数据能够实时交互。
FineReport内置了一个默认的参数界面,用户可在内置的界面中,调整参数的位置,
并通过控件设置得到各种不同的数据选择方式。


1、模板参数:
此时预览模板,可以看到数据列仍然会扩展出数据集中的所有数据,
因此需要使用模板参数来过滤。双击地区数据列单元格,选择过滤标签,条件为地区等于参数$地区,

2、数据集参数:
类似通信、监控行业,每天都有海量数据生成,数据库表中总数据量非常大,而报表中往往只要当天的几百条数据就可以了。
如果使用模板参数,就需要先取出所有数据,再进行过滤,取数+过滤,将消耗大量时间;
可以在定义数据集sql的时候,直接使用where条件过滤出需要的数据,从而大大缩短报表取数时间,类似下面的sql:
SELECT * FROM 销量 where 地区 = '${地区}'

参数控件名称
参数与控件是通过控件名称进行绑定的,即控件名与参数名保持一致,
如果参数控件是通过点击右下角的以下参数未生成按钮生成的,那么控件名会自动与参数就行绑定,
如果是自己拖曳的,就需要在控件名属性处修改控件名,使之与参数名保持一致。

二、汇总:
小计:在下面加上小计一栏,对销量进行求和,并设置“小计”单元格的左父格为地区单元格,即A2单元格:
合计:再加上一栏合计,不进行父格设置,“合计”单元格无父格:
区别就是是否设置父格

三、实际值与显示值
1·在B列后面插入新列(客户名称),在C2单元格设置公式:=split(B2, ","),且添加形态设置,方法参考:方法一。
2·设置C2单元格扩展方向:无,父格:默认。
3·设置D2单元格扩展方向:纵向,左父格:B2。
4·设置D2单元格扩展方向:纵向,左父格:B2。

四、模糊查询
模糊查询语法编辑模糊查询是利用“_”表示单个字符和“%”表示任意个字符进行匹配的。一些常见的格式如下:
"[]":表示括号内所列字符中的一个
指定一个字符、字符串或范围,要求所匹配对象为它们中的任一个。
Select * from 表名 where 列名 like '[张李王]三' //将找出“张三”,“李三”,“王三”(而不是“张李王三”);
注:如 [ ] 内有一系列字符(01234、abcde之类的)则可略写为“0-4”、“a-e”
Select * from 表名 where 列名 like  '老[1-9]'  //将找出“老1”,“老2”,……,“老9”;

"[^]":表示不再括号列中的单个字符
其取值与[]相同,但它要求所匹配对象为指定字符意外的任一字符。
Select * from 表名 where 列名 like '[^张李王]三'  //将找出不姓“张”,“李”,“王”的“赵三”,“孙三”等;
Select * from 表名 where 列名 like '老[^1-4]';  //将排除“老1”到“老4”,寻找“老5”,“老6”、……

注:使用模糊查询实现参数为空选出全部
sql语句为:SELECT*FROM 销量 WHERE 地区 like '%${area}'

动态数据表编辑若数据库中存在两张表结构相同,只是数据量不同,如何实现不同的人根据需要选择不同的表进行查看,
从而提高查询效率呢?
2.1 实现思路
在定义数据集时,通过if函数来判断参数的值从而来实现调用不同的数据表,如直接将SQL语句定义成:
SELECT * FROM ${if(aa=1,'订单','订单1')},即若参数aa=1时,查询的是订单表,若aa!=1时,查询的是订单1表。

若您对表中的数据进行过滤时,查询条件是不确定的,有时候想用A列进行过滤,有时候想用B列进行过滤,此时要如何实现呢?
将数据集修改为:SELECT * FROM 订单 ${Condition}。
输入动态的查询条件如:where 货主地区='西南'

地区选择华北,报表标题就显示“华北销售额”,选择华东就显示“华东销售额”,
输入公式=$地区 + "销售额"


五、<<<参数为空,选择全部>>>
1·数据集参数
下拉框:
将数据集修改为:SELECT * FROM 订单 where 1=1 ${if(len(area) == 0,"","and 货主地区 = '" + area + "'")}
 ${if(len(province) == 0,"","and 货主省份 = '" + province + "'")}
下拉复选框:
首先将数据集的SQL语句修改为:SELECT * FROM 订单 where 1=1 ${if(len(area) == 0,"","and 
货主地区 in ('" + area + "')")}
分隔符','返回字符串勾选上


2·模板参数
添加两个模板参数,分别为area和province。
if(len($area)==0,nofilter,$area)表示参数area为空,就不过滤,若不为空则以参数值进行过滤;
if(len($province)==0,nofilter,$province)意义相同。

过滤属性类似于sql中的where #11='$lx' and #1 between '$str' and '$end'


六、图表入门
图表:
1·合并A7~D18单元格,选择菜单栏上插入>单元格元素>图表,弹出图表向导对话框如下图,这里选择柱形图>柱形图,点击确定:
2·选中图表,在右侧上方的图表属性面板中选择“图表属性表-数据”,图表数据来源使用单元格数据。
分类轴输入公式=B4;
系列名和系列值,分别为=C3和=C4,如下图:
注:此处等号不要忘记,否则单元格会被作为字符串处理

单元格图表的优势
图表作为单元格元素插入到报表中,就可以通过单元格的父子关系,
跟随父格的扩展自动生成相应的图表,而不需要对每组数据单独制作对应的图表。

悬浮图表的优势
作为悬浮元素插入到报表中的图表,没有单元格的限制,可以固定图表位置,
也可以随意拖放到任何位置,大小设置后不会改变,没有父格,不会因为其他单元格的扩展而受影响。


七、填报入门
填报报表与普通报表的区别是能否录入数据,普通报表只能浏览、汇总数据不能录入数据,
而填报表不仅可以浏览数据,还能录入数据。

只有绑定了控件的单元格才可以进行编辑

报表填报属性设置就是将报表主体中的单元格与数据表中的字段进行绑定,保证提交数据的时候,
单元格中的数据与数据库字段一一对应,录入数据。

数据库字段添加进行之后,下面添加单元格

当前日期:=today()
数据连接是将数据库与设计器进行绑定,通过数据连接,报表就可以从数据库中读取、写入数据和修改数据等。


你可能感兴趣的:(finereport知识点)