finreport使用心得(心情好就更新)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/a695929533/article/details/52176976
2016.7.24------------------------------
下载fineReport软件,安装,注册,获取免费激活码

首先要确定自己机器上有运行的数据库服务,以及版本,我用的是mysql5.0。
FineReport8.0

进入fineReport连接数据库。点击菜单栏 服务器 - 定义数据连接 - 加号 - 新建一个数据链

选择自己的数据库和驱动器。mysql的那两个都差不多,git的那个是以前一个非mysql公司自己实现的驱动器,后来被mysql公司买来了,和目前的com.mysql.jdbc.driver差不多。

填上url,注意标注数据库,用户名和密码是访问mysql的那一套。点击确定。

中部区域左上角有一个“网格加号”,选择,然后新建一个模板,然后左部区域,左下角加号,新建数据库查询.
填写sql语句,下方有一个很明显地提示,告诉你如何使用参数。其实就是在sql里面使用变量,尔尔。

如果你的数据库连接正确,左边会看到数据库中的表。
2016.7.25-----------------------------
拖动数据集,点击单元格。右边属性栏有个“基本”,在基本里面,可以设置“汇总”->“求和”。也可以直接在“基本”里面选择下拉框求和。

将两个不同的数据集,按照相同列进行过滤(join的概念),点击单元格,右边属性栏选择“过滤”,将列进行连接,选择“增加”,然后“确定”。

普通模板设计单元格扩展是相互影响的,那么如果想成块的显示一些内容,并且想保持独立性,块间不相互影响,此时就可以使用聚合报表。

报表设计是单纯地展示图表,
参数设计是可以设定参数,让用户自己选择参数,然后展示相应的报表,
图表设计是展示相应的图表,
填报设计是用户输入参数,存入数据库

单元格可以横向扩展或纵向扩展,点击单元格,右边属性设置

单元格默认其左侧相邻单元格为其左父格。
父子格包含上父格和左父格。
父子格包含过滤关系和跟随关系

2016.7.27----------------------------------------------

分组汇总: A数据列想要跟随B数据列变化,九江A的左父格设为B所在的位置,如果B是合并的,那么设为第一个就可以。

工作簿的缺陷:在uint的分组汇总里面,可以看到,工作簿如果放两个关系块(我将一块独立的表,称之为关系块),循环序列是从上到下的,并非 按照某个关系块进行循环读完,然后下一个。

可以跨表复制粘贴,但是属性参数不会。
粘贴复制的时候,有些默认参数 (比如 汇总-求和)它的值不变,导致是错误的。选择 分组 ,然后再选 汇总 - 求和 ,这样重置一下就好了。

数据显示的方式有三种,就是数据集单元格的数据设置属性: 列表-分组-汇总

形态,是指:在不改变实际值的情况下,改变显示值

采用 数据字典 可以解决表中 外键关系的显示问题。比如:A表的主键,是B表的外键,我们输出B表,但是希望在B中显示的,不是A的id(主键),而是其他字段(如 name)。

将外键的字段拖到表格中之后,右边中间“单元格属性-形态”选择数据字典,填写相应的数据库,数据库表,以及需要显示的字段,以及实际参数。旁边有个小按钮看,也可以预览

在数据类型有四种设置:数据库表,数据查询,自定义,公式
2016.7.28---------------------------------------------

如果有一些横向扩展的列不显示,很有可能是超出了页面宽度

参数分为:模板参数  全局参数  

模板参数只有当前模板可以使用,全局参数 当前工程应用下的所有模板都可以使用。

2016.8.3-----------------------------------------
模板参数使用心得

首先,在 模板 - 模板参数 设置一个过滤参数,名字要在打开左边栏,双击栏目才能对参数命名(比较隐蔽)。参数的变量可以填写,为默认值。

然后,点击要过滤的列,右边点击过滤,选择参数,点击增加。

数据集参数使用心得
即在查询语句中,使用条件过滤,过滤参数为参数宏(${}),参数宏里面可以使用内置的FR公式。
也可以像模板参数一样使用,绑定控件

全局参数使用心得
类似于模板参数,但是不得使用汉字(因为参数是放在项目config.xml文件里面),全局参数是每一个模板都可以用的。

绑定控件使用心得
除了在默认参数绑定控件参数的情况下使用,还可以将控件删除,将自己想用的控件放入参数面板,只需要将控件名改为和参数名称一样就可以了。

下拉框如何配置下拉选项?
点击下拉框控件,右侧属性 数据字典,配置数据库-表-列,实际值与显示值即可。

参数过滤(模模糊糊)

界面设置
在参数界面面板,点击para,可以设置参数面板的背景颜色,位置,以及 点击查询前不显示查询结果(是否在第一次查询之前,显示一个默认的查询结果,必须先设定默认参数值)

模糊查询规则

模糊查询是利用“_”表示单个字符和“%”表示任意个字符进行匹配的。一些常见的格式如下:

Select * from 表名 where 列名 like '%'; //查询出全部
Select * from 表名 where 列名 like 'x'; //完全匹配查询
Select * from 表名 where 列名 like '_x'; //右为x,前面有一位字符
Select * from 表名 where 列名 like '__x'; //右为x,前面有两位位字符
Select * from 表名 where 列名 like 'x__'; //左为x,后面有两位位字符
Select * from 表名 where 列名 like '%x'; //右为x,前面可以有任意位字符
Select * from 表名 where 列名 like 'x%'; //左为x,后面可以有任意位字符
Select * from 表名 where 列名 like '%x%'; //中间为x,左右都可以有任意位字符
结合参数的模糊查询(用${name}代表上述的x):
Select * from 表名 where 列名 like '${name}';
Select * from 表名 where 列名 like '%${name}';
以此类推。

动态表和动态条件

实质上 ${abc}代表字符串, 所以 ${abc}可以等于一条sql语句,进而实现动态 。
可以通过将参数绑定控件,在控件输入语句,来实现动态绑定数据

-2016.8.5-------------------------------------------------------------------------
bug:页面不显示应该显示的数据
解决:是否存在控件,导致数据未被查询前不显示


-2016.8.10------------------------------------------------------------------------

多条件查询(组合查询)
在 查询语句里,利用${abc}替换字符串的特性,写入判断语句,输出where 后的判断条件。假设 deliver为输出参数,d.deliver_name为语句输出值(非假名)
${
IF( deliver_name=="",''," and d.deliver_name like '%"+deliver_name+"%'" )
}

控件的名要与参数名一致。

猜你喜欢

转载自blog.csdn.net/a695929533/article/details/52176976