fineRePort帆软报表心得 和 功能点开发

需求:给公司的核心Boss系统做各种报表

困难:fineRePort软件熟悉的还凑合,难点在于java做的boss系统web界面和业务逻辑不熟悉,数据库的表和字段一概不知

熟悉数据库的思路:这次没有想几百张表怎么熟悉,或划模块熟悉。

而是直接参考同事以前做的报表,看他写的sql,并结合数据库文档,不断的改不断的试

看sql的难点在于,我们这报表一般的都要连十几张表,里面还各种if、case when、函数、关键字...等,一条sql写100多行,看着真心晕,真心懵逼啊。

1、先打开他那报表,试着跑起来,发现查不出来数据

2、选择查询条件,还是查不出来。这时候就只能看他那sql是咋写的了

看sql的思路(如下图,顺序无所谓,总共就3步):

1、先摒弃case等 多余的东西,只找出要查的字段

2、然后找出所有连表,并 分出来哪一张是主表,其他都是从表。

找外键关系,看他表的关系(通过sql的连表 + on的条件,对应真实表看)

3、根据查询条件分析使用,看他最后一个连表,后面跟的where条件

结果发现是没有授权,但是这思路我觉得对我还是有帮助的

解决:同事提点,给出了要操作哪5张表

我想出来了一个 在上千张表的库中,快速筛选有用数据表的方法 

思路:只要数据不是今天或本月(不是热门表)就筛掉,换下一张表看

sql:select 添加时间 from 每个表 order by 添加时间 desc limit 100




 

使用总结:

  • $$$是当前行
  • 父子格的默认过滤关系,相当于拿父格进行分组 查询
  • 在公式中&B10 给b10列自动生成编号
  • x轴是分类,Y轴是系列
  • 单元格图表和悬浮图表的不同处:单元格图表是要先合并出一个图表大小的位置,悬浮的不用合并(悬浮,不基于单元格大小而显示)
  • 在局域网中,如何让同事看见你的报表:给url上的localhost换成本机ip就可以了

颜色标志相关:

左上角红色     是 条件属性

左上角绿色     是 右侧-》单元格属性-》形态-》数据字典

右上角绿色    是 右侧-》单元格属性-》其他-》分页(行前分页)

左下角黄色     是 过滤条件

蓝色字带下划线 是 超链接

蓝色箭头    是 父格

重要的参考文档:

sql上加limit

单元格的绝对定位(写在公式中,语法是 []):

1、普通定位

思路:先看[]里,在看[]外

示例:=A1[A1:3]//这3是取A1扩展后的A3单元格的值(下面这4个特殊的值。是放到:3这个位置上的

1 //第1个值

-1 //上一个值

!0//所有的值

!-1//最后一个值

2、带条件定位

[]后面跟{条件写这里}    //带条件

示例:=A1[!0]{A1!=3}    //取A1单元格扩展出的值,输出 !=3的

3、特殊定位

$ //绝对定位时,不写才能取,取当前的值

& //每个

多源报表:

简单多源报表:连表查询。添加过滤条件时,选单元格

复杂多源报表:连库查询(使用的是内置数据集)

多源分片报表:最复杂的。多源就是一张报表的数据来源来自多个数据表,甚至是多个物理数据库。这里的“多个常常不是两个三个,而是七八个乃至十几个,无法转成单源;

分片是指一张报表的纵向或横向或双向同时被分成了多个区域,往往每个区域来自不同的数据源;【蒙了,没学会】

分组报表:

按段分组:选中单元格-》分组-》高级-》自定义,设置分组条件(就和使用if写 && 条件一样)

归并分组:选中单元格-》分组-》高级-》自定义,设置分组条件(就和使用if写 || 条件一样)

自定义公式分组:【没学会】

 

常用小技巧

连接本地数据库

动态隔间运算

主要参考的文档:

概念:

使用方法总结:

单元格的绝对定位(写在公式中,语法是 [])

1、普通定位

思路:先看[]里,在看[]外

示例:=A1[A1:3] //这3是取A1扩展后的A3单元格的值(下面这4个特殊的值。是放到:3这个位置上的

1 //第1个值

-1 //上一个值

!0//所有的值

!-1//最后一个值

 

2、带条件定位

[]后面跟{条件写这里}   //带条件

示例:=A1[!0]{A1!=3}    //取A1单元格扩展出的值,输出 !=3的

 

3、特殊定位

$ //绝对定位时,不写才能取,取当前的值

& //每个

单元格计算:

比较:当前月 减 1月份,的值(数字)

占比:当前月 / 所有月份的和(百分比)

环比:当前月 / 上一个月的值(百分比)

逐层累计:同一年中,每月的和,都加之前的和

跨层累计:2年中,18年的1月份+17年的整年和(比逐层多个判断,如果>1月份就要加上一年的和,用逐层累计的公式。否则)

条件属性

下图是,勾上复选框后,深绿色的地方隐藏

行式报表-隔行换色:

在id那列,通过设置表达式 row()%2==0

宽度不够,想出现滚轴:

打印参数

数据字典的使用方法

多源报表

多源报表:多源指的是多个数据源。就是多张表中取数据。

注意:连表,它不会自己判断搜索条件,需要手动设置on 谁等于谁

先选中b表的字段(看右侧单元格元素)-》过滤条件(点编辑)-》选单元格(输入和哪个单元格关联)-》先添加,在确定

主子报表

超级链接

思路:点击模板1的xx,跳转到一个新网页(模板2)

模板2数据集的,where条件使用参数(变量)代替

模板1的超级链接中

参数

参数总结:在大数据量时使用,数据集参数;数据量不大,使用模板参数;

参数分2种:

1、数据集参数,就是在sql中直接写

先在sql中定义参数,语法 ${参数名}

2、模板参数,菜单-》模板-》模板参数中定义

只比数据集多了下面这一步,联合过滤使用(sql的where用的是这可选列,and or是你添加多个条件时...)

 

传参方式(都是操作模板参数):

1、模板参数-》添加到参数面板中-》传给单元格过滤用

2、Url参数-》定义模板参数-》在url后面加参数-》在单元格中使用(公式-》$调用参数名)就能接收到

url参数在sql中直接使用的语法: '${url上的参数名}'

公式的2种传参方式:

1、传模板参数:$参数名 //直接放到公式中(如上图)

2、传模板参数:$参数名 //在公式中,将模板参数,当函数参数用

参数为空选择全部

思路:参数为空不过滤

1、数据集参数(在sql上处理)看demo(11-1)

SELECT * FROM 销量 where 1=1 ${if(len(area)==0,"","and 地区='"+area+"'")}

2、模板参数。看demo(11-2)

if(len($a)==0,nofilter,$a)

填报相关

总思路:填报是对数据库进行【改删】

1、设计报表(和平常一样。数据集-》字段拖过来-》加样式)

2、添加填报控件(相当于html的,各种不同type的input框)

3、设置填报属性。菜单-》模板-》报表填报属性(设置主键。表格字段和数据库表字段的对应关系等)

4、填报预览(进行修改测试)

 

多sheet填报

多个sheet修改,提交时,是全部提交

图表

单元格-》图表

概念:x轴是分类,Y轴是系列

1、先合并单元格(用于放图表)

2、插入图表(菜单-》插入-》单元格元素-》插入图表)

3、定义图表的数据

 

悬浮-》图表

 

填报设计的-》图表

饼图的特殊点

部署发布(上线)

嵌入式部署:是有选择的复制文件夹,不是整个项目全复制过去

插件的安装和使用

使用时:只有决策报表才能使用插件

猜你喜欢

转载自blog.csdn.net/qq_33862644/article/details/80703185