帆软 FineReport 是一款由帆软公司自主研发的企业级报表工具,主要用于解决企业内部数据展示、数据分析和报表管理等需求。它提供了直观的拖拽式设计界面,支持多种数据源连接,并能够生成各种复杂格式的报表。以下是其主要特点和功能的概述:

核心功能

  1. 多数据源整合
    支持连接各类数据库(如 Oracle、MySQL、SQL Server)、Excel 文件、CSV 文件,甚至可以整合不同数据源的数据到同一张报表中。

  2. 丰富的报表模板
    提供多种预设模板,包括表格报表、图表报表、交叉表、中国式复杂报表等,满足不同场景需求。

  3. 强大的计算能力
    内置丰富的函数库,支持复杂的公式计算、聚合分析和数据处理,如行列计算、分组统计、同比环比等。

  4. 数据可视化
    支持多种图表类型(柱状图、折线图、饼图、雷达图等),并提供交互式图表功能,如钻取、联动、参数筛选等。

  5. 权限管理与安全
    提供细致的权限控制,可按用户、角色、部门分配不同的报表查看、编辑和导出权限,保障数据安全。

  6. 定时调度与分发
    支持设置定时任务自动生成报表,并通过邮件、短信、FTP 等方式将报表分发给指定人员。

  7. 移动端适配
    报表可自动适配手机、平板等移动设备,支持触摸操作和离线查看,方便移动办公。

应用场景

FineReport 适用于各类有数据报表需求的企业,尤其是中大型企业和集团化公司,可帮助其整合分散的数据资源,提升决策效率。

  • 企业经营分析:制作财务报表、销售分析、库存管理等。
  • 数据监控:实时展示关键业务指标(KPI),支持预警功能。
  • 数据填报:设计在线表单,收集和汇总分散的数据。
  • 复杂报表制作:处理含有合并单元格、多层表头的中国式复杂报表。

一些操作

在需要⾃动提交的控件上找到事件 添加条件 编辑后 加⼊如下代码

1
_g().parameterCommit()

练习

连接数据库:服务器-定义数据库连接-新建JDBC

1.使⽤数据集参数实现 emp 参数的各种操作

默认显⽰所有数据:参数⾯板中, para 下⾯的点击查询前不显⽰报表内容的勾去掉
为空查询全部

1
2
3
select * from emp where 1=1 
${if(len(部门)==0,"","and deptno='"+部门+"'" )}
${if(len(岗位)==0,"","and job in ('"+岗位+"')")}

多选框与部门编号关联

在部⻔编号上添加超级链接 ⽹络报表 对话框 添加参数:部⻔编号 =$$$
点击部门编号跳转到对应部门信息

2.完成销量表

点击地区超链接查询相关数据并在饼图上显示
点击图表中的销售员图形区域超级链接该销售员各种产品的销量

3.运货费预警与悬浮变⾊

使⽤数据: FRDemo 中的数据:订单
题⽬要求:

  1. 参数查询框 ⼀个复选框控件,可选 择发货⽇期、到货⽇期。
  2. 点击查询 发货⽇期、到货⽇期列根据选择的其他信息情况 展⽰ 运货费根据输⼊的预警值,⼤于等于输⼊值背景变红 ⿏标悬浮⾏变⾊ 注意数据格 式设置 效果如图所⽰ , 注意需⽤⼀张模板实现

4.成绩区间展示

数据来源:FRdemo 中STSCORE

  1. 班级和学号控件都是复选,选择班级联动学号控件,参数为空时显⽰全部
  2. 默认显⽰英语成绩,成绩在 60~80 分期间(⼤于等于60 ,⼩于80), 点击可选择显⽰不同的分数区间
  3. 低于 60 分的分数加粗变红显⽰

准备三个数据集ds1、ds2、ds3(模板数据集-数据库查询)

1
2
3
4
5
6
7
8
9
10
11
12
13
--ds1 学生分数详情
select * from stscore
where course='English'
${if(len(classno) == 0,"","and classno in ('" + classno + "')")}
${if(len(sno) == 0,"","and studentno in ('" + sno + "')")}
${if(len(s1) == 0,"and grade >= 60","and grade >=" + s1)}
${if(len(s2) == 0,"and grade < 80 ","and grade < " + s2)}

--ds2 查询班级
select distinct classno from stscore

--ds3 根据班级查学号
select studentno from stscore where classno in ('${classno}')

界面设计及超级链接动态参数设计

默认显示60~80

不及格分数加粗变红显示