精华内容
下载资源
问答
  • finereport报表

    千次阅读 2013-04-26 18:28:57
    第一章 第一章 第一章 第一章 FineReport 报表综述 报表综述 报表综述 报表综述……………………………………………………………………2  第二章 第二章 第二章 第二章 FineReport 功能详述 功能详述 功能详述 ...
    目录表 
    
    第一章 第一章 第一章 第一章      FineReport 报表综述 报表综述 报表综述 报表综述……………………………………………………………………2 
    第二章 第二章 第二章 第二章      FineReport 功能详述 功能详述 功能详述 功能详述……………………………………………………………………3 
    FineReport实现同期比(一) 
    FineReport实现分组汇总(二) 
    FineReport实现条件汇总(三) 
    FineReport实现排名(四) 
    FineReport实现组内序号(五) 
    FineReport实现累计报表(六) 
    FineReport实现占比报表(七) 
    FineReport制作按段分组报表(八) 
    FineReport制作条件分组报表(九) 
    FineReport制作重叠分组报表(十) 
    FineReport来弥补Excel的不足(十一) 
    FineReport制作主子填报表(十二) 
    FineReport实现网格式填报表(十三) 
    FineReport归并分组报表(十四) 
    FineReport制作不完全分组报表(十五) 
    FineReport实现纵向分片(十六) 
    FineReport制作自由格式报表(十七) 
    FineReport实现多方面汇总统计(十九) 
    FineReport制作多层交叉报表(二十) 
    FineReport制作交叉报表(二十一) 
    FineReport实现计算列的汇总(二十二) 
    FineReport进行汇总统计(二十三) 
    FineReport制作多层分组报表(二十四) 
    FineReport制作分组报表(二十五) 
    FineReport取数排序的实现(二十六) 
    FineReport增加动态背景色(二十七) 
    FineReport高亮显示设置(二十八) 
    FineReport中显示格式和显示值的设置(二十九) 
    FineReport填报之日期自动计算(三十) 
    FineReport填报之数值自动计算(三十一) 
    FineReport填报之合法性数据检查(三十二) 
    第三章 第三章 第三章 第三章  总结 总结 总结 总结………………………………………………………………………………………91  
     
     
     
     
       2
    第一章 第一章 第一章 第一章      关于 关于 关于 关于 FineReport 
    FineReport 简介 简介 简介 简介 
    FineReport报表工具提供了易用且高效率的报表设计方案,采用主流的数据双向扩展,
    真正无编码形式设计报表;拥有强大的报表展示功能,并且提供完善的报表权限管理,报表
    调度管理;具有完备的报表填报功能,支持多级汇总填报。 
    利用 FineReport报表工具,用户即可把企业的业务模型、数据分析变成实际可操作的信
    息系统。利用报表展现、填报、汇总、统计分析、打印输出等功能搭建出轻量级企业报表平
    台。特别是该报表工具采用主流的数据双向扩展、多源分片、纯拖拽等方式来进行报表设计,
    使得报表设计人员无需掌握复杂的代码编写技能,业务人员也可以随时根据需要设计符合业
    务逻辑的报表,满足报表使用者的最终需求,无形中也降低了企业的运营成本。 
    数年的努力,FineReport报表已经得到市场的普遍认可,客户遍及金融,电信,电力,
    公安,烟草,税务,政府,钢铁,航空,外贸等各个行业。 
     
    FineReport 组成 组成 组成 组成 
    FineReport报表系统由报表设计器(设计模板)和报表服务器(解析模板)两部分组成。 
    报表服务器 
    报表服务器是指用在 web 环境中解析报表的 Servlet 形式的服务器,用户通过浏览器和报表
    服务器进行应用交互。 
    报表解析  
    FineReport服务器主要用来读取和解析设计器制作好的模板,并将模板转换成 HTML页面,
    方便用户通过浏览器查看、修改和打印数据。 
    缓存管理  
    FineReport服务器内置了强大的缓存机制,提高报表运算效率集群机制。 
    性能管理  
    FineReport服务器支持分布式集群,支持超大数据量运算,支持大数量用户并发处理。 
     
    报表设计器 
    FineReport设计器可以进行表样、数据、展现、打印等报表设计文件中各种元素的设计,是
    报表设计和报表应用开发、调试、部署的一体化平台。 
    可设计的报表类型分组报表、交叉表、多层交叉表、明细表、主从报表、分为多片的报表,
    以及其它任意不规则的报表类型。  
     
     
    更多详情:http://www.finereport.com 
     
    下面一章,我们就FineReport几点常用的报表功能做详细解说。   3
    第二章 第二章 第二章 第二章 FineReport 功能详述 功能详述 功能详述 功能详述 
    用web 报表工具—FineReport 实现同期比(一) 
     
    同期比 
    同期比,指的是一个与时间相关的运算。上图报表显示的就是在同一年内每一个月份与上一个月
    份的比值。 
    下面我们来看一下实现上述报表的过程 下面我们来看一下实现上述报表的过程 下面我们来看一下实现上述报表的过程 下面我们来看一下实现上述报表的过程 
    1.连接数据库 连接数据库 连接数据库 连接数据库 frDemo 
    2.设计报表 设计报表 设计报表 设计报表 
    2.1 新建报表 
    2.2 表样设计 
    按照下图设计好报表的基本框架 
     
    表样设计 
    2.3 新建一数据集名为 ds1 
    SQL 语句 语句 语句 语句: :: :select 订单.订购日期,订单明细.单价,订单明细.数量,year(订单.订购日期)     4
    as 订购年份,month(订单.订购日期) as 订购月份,订单明细.数量*订单明细.单价 as 订购金额 
    from 订单,订单明细 where 订单.订单 ID = 订单明细.订单 ID and 订单.订购日期 is not null 
    2.4 绑定数据列 
     
    绑定数据列 
    按照下列表格将数据集的字段拖入对应单元格内,并作相应的设置。 
    单元格  内容  基本属性设置 
    A2 ds1.定购年份  从上到下 从上到下 从上到下 从上到下扩展,居中,其余默认 
    B2 ds1.订购月份  从上到下 从上到下 从上到下 从上到下扩展,居中,其余默认 
    C2 ds1.订购金额  数据类型:汇总 汇总 汇总 汇总-求和 求和 求和 求和,居中,其余默认 
    2.5 同期比计算 
    在 D2 中填入:’ =if(&D2==1 &&  &A2==1,,C2/C2[B2:-1])’ 
    ’ if(&D2==1 &&  &A2==1,,C2/C2[B2:-1])’:如果本记录为所在年份的第一个记录则为空,否则
    等于这个月的金额除以上个月的金额。层次坐标 
    3.保存预览 保存预览 保存预览 保存预览 
    保存为 
    %FineReport_HOME%/WebReport/WEB-INF/reportlets/com/doc/4.4.cpt 
    启动服务器,在浏览器中输入以下地址进行浏览: 
    http://localhost:8079/WebReport/ReportServer?reportlet=/com/doc/4.4.cpt 
     
     
     
     
     
     
     
     
     
     
    更多详情:http://www.finereport.com   5
     
     
    用Web 报表工具—FineReport 实现分组汇总(二) 
     
    分组汇总 
    下面我们来看一下上述报表的实现过程 下面我们来看一下上述报表的实现过程 下面我们来看一下上述报表的实现过程 下面我们来看一下上述报表的实现过程 
    1.连接数据库 连接数据库 连接数据库 连接数据库 frDemo 
    2.设计报表 设计报表 设计报表 设计报表 
    2.1 新建报表 
    2.2 表样设计 
    按照下图设计好报表的基本框架 
     
    表样设计 
    2.3 新建一数据集名为 emp_sql 
    SQL 语句 语句 语句 语句: :: :select * from employee 
    2.4 绑定数据列   6
     
    绑定数据列 
    按照下列表格将数据集的字段拖入对应单元格内,并作相应的设置。 
    单元格  内容  基本属性设置 
    A2 emp_sql.country  从上到下 从上到下 从上到下 从上到下扩展,其余默认 
    B2 emp_sql.city  从上到下 从上到下 从上到下 从上到下扩展,其余默认 
    C2 emp_sql.empname  从上到下 从上到下 从上到下 从上到下扩展,其余默认 
    D2 emp_sql.bonus  数据设置:汇总 汇总 汇总 汇总-求和 求和 求和 求和,其余默认 
    2.5 汇总 
    如图在 D3,D4,D5,中都输入”=sum(D2)” 
     
    数据汇总 
    3.保存预览 保存预览 保存预览 保存预览 
    保存为 
    %FineReport_HOME%/WebReport/WEB-INF/reportlets/com/doc/4.5.cpt 
    启动服务器,在浏览器中输入以下地址进行浏览: 
    http://localhost:8079/WebReport/ReportServer?reportlet=/com/doc/4.5.cpt 
     
     
     
     
     
     
     
     
     
     
    更多详情:http://www.finereport.com   7
    用Web 报表工具—FineReport 实现条件汇总(三) 
     
    条件汇总 
    可以看到,上述的报表比上一节的报表多了一个条件汇总,将符合条件的数据进行统计。 
    下面我们来看一下在 下面我们来看一下在 下面我们来看一下在 下面我们来看一下在《 《《 《用 用用 用 Web 报表工具实现分组汇总 报表工具实现分组汇总 报表工具实现分组汇总 报表工具实现分组汇总》 》》 》的基础上实现上述报表的过程 的基础上实现上述报表的过程 的基础上实现上述报表的过程 的基础上实现上述报表的过程 
    1.设计报表 设计报表 设计报表 设计报表 
    1.1 表样设计 
    如图在 4.5 的表样的基础上增加“奖金大于 2000 的人数”这一行 
     
    表样设计 
    1.2 条件汇总 
    在 D6 中填入”=sum(D3>2000)” 
    2.保存预览 保存预览 保存预览 保存预览 
    保存为%FineReport_HOME%/WebReport/WEB-INF/reportlets/com/doc/4.6.cpt 
    启动服务器,在浏览器中输入以下地址进行浏览: 
    http://localhost:8079/WebReport/ReportServer?reportlet=/com/doc/4.6.cpt 
    更多详情:http://www.finereport.com   8
    用Web 报表工具—FineReport 实现排名(四) 
     
    排名 
    下面我们来看一下上述报表的实现过程 下面我们来看一下上述报表的实现过程 下面我们来看一下上述报表的实现过程 下面我们来看一下上述报表的实现过程 
    1.连接数据库 连接数据库 连接数据库 连接数据库 frDemo 
    2.设计报表 设计报表 设计报表 设计报表 
    2.1 新建报表 
    2.2 表样设计 
    按照下图设计好报表的基本框架 
     
    表样设计 
    2.3 新建一数据集名为 ds1 
    SQL 语句 语句 语句 语句: :: :select 订单.货主城市,订单明细.单价*订单明细.数量  as 订单金额  from 订单,订单
    明细  where 订单.订单 ID = 订单明细.订单 ID 
    2.4 绑定数据列 
       9
    绑定数据列 
    按照下列表格将数据集的字段拖入对应单元格内,并作相应的设置。 
    单元格  内容  基本属性设置 
    A2 ds1.货主城市  从上到下 从上到下 从上到下 从上到下扩展,居中,其余默认 
    B2 ds1.订单金额  数据设置:汇总 汇总 汇总 汇总-求和 求和 求和 求和,右对齐,其余默认 
    2.5 显示格式设定 
    将 B2 设置为保留两位小数的货币类型 
    2.6 计算总价排名 
    在 C2 中填入’ =count(B2[!0]{B2>=$B2})’ 
    ‘count(B2[!0]{B2>=$B2})’:指的是统计出 B2 所有扩展出来的单元格中不比本记录 B2 单元格
    内容小的个数,即排名。层次坐标 
    预览如图 
     
    计算总价排名 
    2.7 增加区排名 
    2.7.1 编辑数据集 
    SQL 语句 语句 语句 语句: :: :select 订单.货主城市,订单明细.单价,订单明细.数量,订单明细.单价*订单明细.数量 
    as 订单金额,订单.货主地区  from 订单,订单明细  where 订单.订单 ID = 订单明细.订单 ID 
    2.7.2 修改表样 
     
    修改表样 
    2.7.3 绑定数据 
    将数据集 ds1 的货主地区字段拖入 A2   10 
    2.7.4 计算区排名 
    在 E2 中填入’ =count(C2[`0]{A2=$A2 && C2>=$C2})’ 
    3.保存预览 保存预览 保存预览 保存预览 
    保存为 
    %FineReport_HOME%/WebReport/WEB-INF/reportlets/com/doc/4.8.1.cpt 
    启动服务器,在浏览器中输入以下地址进行浏览: 
    http://localhost:8079/WebReport/ReportServer?reportlet=/com/doc/4.8.1.cpt 
     
     
     
     
     
     
     
     
     
     
     
     
     
    更多详情:http://www.finereport.com   11 
    用Web 报表工具—FineReport 实现组内序号(五) 
     
    组内序号 
    上图显示了为每一个公司在自己所在城市内的编号。 
    下面我们来看一下上述报表的实现过程 下面我们来看一下上述报表的实现过程 下面我们来看一下上述报表的实现过程 下面我们来看一下上述报表的实现过程 
    1.连接数据库 连接数据库 连接数据库 连接数据库 frDemo 
    2.设计报表 设计报表 设计报表 设计报表 
    2.1 新建报表 
    2.2 表样设计 
    按照下图设计好报表的基本框架 
     
    表样设计 
    2.3 新建一数据集名为 ds1 
    SQL 语句 语句 语句 语句: :: :select 供应商.城市,供应商.公司名称,供应商.联系人姓名,供应商.联系人职务 from 
    供应商   12 
    2.4 绑定数据列 
     
    绑定数据列 
    按照下列表格将数据集的字段拖入对应单元格内,并作相应的设置。 
    单元格  内容  基本属性设置 
    B2 ds1.城市  从上到下 从上到下 从上到下 从上到下扩展,居中,其余默认 
    C2 ds1.公司名称  从上到下 从上到下 从上到下 从上到下扩展,居中,其余默认 
    D2 ds1.联系人姓名  从上到下 从上到下 从上到下 从上到下扩展,居中,其余默认 
    E2 ds1.联系人职务  从上到下 从上到下 从上到下 从上到下扩展,居中,其余默认 
    2.5 设置组内序号 
    在 A2 单元格中填入’=&C2’ 
    A2 的左父格设置为 C2 
    &C2: :: :本条记录的 C2 单元格在所在父格中的位置,即组内编号 
    3.保存预览 保存预览 保存预览 保存预览 
    保存为 
    %FineReport_HOME%/WebReport/WEB-INF/reportlets/com/doc/4.10.1.cpt 
    启动服务器,在浏览器中输入以下地址进行浏览: 
    http://localhost:8079/WebReport/ReportServer?reportlet=/com/doc/4.10.1.cpt 
     
     
     
     
     
     
     
     
     
    更多详情:http://www.finereport.com   13 
    用Web 报表工具—FineReport 实现累计报表(六) 
     
    累计报表 
    下面我们来看一下在 下面我们来看一下在 下面我们来看一下在 下面我们来看一下在《 《《 《Web 报表工具中显示格式和显示值的设置 报表工具中显示格式和显示值的设置 报表工具中显示格式和显示值的设置 报表工具中显示格式和显示值的设置》 》》 》的基础上实现上述报表的过 的基础上实现上述报表的过 的基础上实现上述报表的过 的基础上实现上述报表的过
    程 程程 程 
    1.设计报表 设计报表 设计报表 设计报表 
    1.1 表样设计 
    再添加一列,列名为累计奖金,如图 
     
    表样设计 
    1.2 计算累计奖金 
    在 F2 单元格中填入’=F2+G2[A2:-1]’ 
    ’F2+G2[A2:-1]’:指的是条记录所对应的 F2 单元格内容(即奖金)加上上一条记录的 G2 单元
    格内容(即累积奖金)。层次坐标 
    1.3 显示格式设置 
    G2 显示格式设置为保留两位小数的货币格式 
    2.保存预览 保存预览 保存预览 保存预览 
    保存为%FineReport_HOME%/WebReport/WEB-INF/reportlets/com/doc/4.2.cpt 
    启动服务器,在浏览器中输入以下地址进行浏览: 
    http://localhost:8079/WebReport/ReportServer?reportlet=/com/doc/4.2.cpt     14 
    用Web 报表工具—FineReport 实现占比报表(七) 
     
    占比报表 
    下面我们来看一下上述报表的实现过程 下面我们来看一下上述报表的实现过程 下面我们来看一下上述报表的实现过程 下面我们来看一下上述报表的实现过程 
    1.连接数据库 连接数据库 连接数据库 连接数据库 frDemo 
    2.设计报表 设计报表 设计报表 设计报表 
    2.1 新建报表 
    2.2 表样设计 
    按照下图设计好报表的基本框架 
     
    表样设计 
    2.3 新建一数据集名为 ds1 
    SQL 语句 语句 语句 语句: :: :select 订单明细.单价,订单明细.数量,订单.货主地区,订单明细.数量*订单明细.单价 
    as 订单金额 from 订单,订单明细 where 订单.订单 ID = 订单明细.订单 ID 
    2.4 绑定数据列 
     
    绑定数据列 
    按照下列表格将数据集的字段拖入对应单元格内,并作相应的设置。 
    单元格  内容  基本属性设置 
    A2 ds1.货主地区  从上到下 从上到下 从上到下 从上到下扩展,居中,其余默认 
    B2 ds1.数量  数据类型:求和 求和 求和 求和-汇总 汇总 汇总 汇总, ,, ,其余默认 
    D2 ds1.订单金额  数据类型:求和 求和 求和 求和-汇总 汇总 汇总 汇总, ,, ,其余默认 
    绑定好数据列后,预览效果如下图   15 
     
    报表预览 
    2.5 求占比 
     
    求占比 
    在剩余的单元格中填入如图所示的数据,占比求值完成了。 
    2.6 显示格式设置 
    对 C2 和 E2 进行显示格式设置,设置为保留两位小数的百分比格式 
    3.保存预览 保存预览 保存预览 保存预览 
    保存为 
    %FineReport_HOME%/WebReport/WEB-INF/reportlets/com/doc/4.1.cpt 
    启动服务器,在浏览器中输入以下地址进行浏览: 
    http://localhost:8079/WebReport/ReportServer?reportlet=/com/doc/4.1.cpt 
     
     
     
     
     
     
     
     
     
     
     
     
     
     
    更多详情:http://www.finereport.com   16 
    用Web 报表工具—FineReport 制作按段分组报表(八) 
     
    按段分组报表 
    上图报表是对日期的分组。 
    下面我们来看一下上述报表的实现过程 下面我们来看一下上述报表的实现过程 下面我们来看一下上述报表的实现过程 下面我们来看一下上述报表的实现过程 
    1.连接数据库 连接数据库 连接数据库 连接数据库 frDemo 
    2.设计报表 设计报表 设计报表 设计报表 
    2.1 新建报表 
    2.2 表样设计 
    按照下图设计好报表的基本框架 
     
    表样设计 
    2.3 新建一数据集名为 ds1 
    SQL 语句 语句 语句 语句: :: :select 订单.订购日期,订单明细.数量,订单明细.单价,订单明细.折扣,订单明细.数量*
    订单明细.单价 as 订单金额,客户.地区 from 订单明细,订单,客户 where 客户.客户 ID = 订单.
    客户 ID and 订单.订单 ID = 订单明细.订单 ID and 订单明细.数量=12 
    2.4 绑定数据列 
     
    绑定数据列 
    按照下列表格将数据集的字段拖入对应单元格内,并作相应的设置。 
    单元格  内容  基本属性设置   17 
    A3 ds1.地区  从上到下 从上到下 从上到下 从上到下扩展,其余默认 
    B1 ds1.订购日期  从左到右 从左到右 从左到右 从左到右扩展,居中,其余默认 
    B3 ds1.数量  数据设置:汇总 汇总 汇总 汇总-求和 求和 求和 求和,其余默认 
    C3 ds1.订购金额  数据设置:汇总 汇总 汇总 汇总-求和 求和 求和 求和,其余默认 
    2.5 自定义分组 
    双击 B1,分组设为高级,点击自定义。 
    新增四个分组:1996 年圣诞前 年圣诞前 年圣诞前 年圣诞前、 、、 、1996 年圣诞 年圣诞 年圣诞 年圣诞-1997 年国庆 年国庆 年国庆 年国庆、 、、 、1997 年国庆 年国庆 年国庆 年国庆-1998 年五一 年五一 年五一 年五一、 、、 、1998
    年五一过后 年五一过后 年五一过后 年五一过后。具体设置见下图 
     
    自定义分组 1 
     
    自定义分组 2   18 
     
    自定义分组 3 
     
    自定义分组 4 
    3.保存预览 保存预览 保存预览 保存预览 
    保存为 
    %FineReport_HOME%/WebReport/WEB-INF/reportlets/com/doc/3.6.cpt 
    启动服务器,在浏览器中输入以下地址进行浏览: 
    http://localhost:8079/WebReport/ReportServer?reportlet=/com/doc/3.6.cpt 
    更多详情:http://www.finereport.com   19 
    用Web 报表工具—FineReport 制作条件分组报表(九) 
     
    条件分组报表 
    可以看到上图报表是对不同的字段进行分类,对于这种分类可以不用自定义,而用过滤来实现。  
    下面我们来看一下上述报表的实现过程 下面我们来看一下上述报表的实现过程 下面我们来看一下上述报表的实现过程 下面我们来看一下上述报表的实现过程 
    1.连接数据库 连接数据库 连接数据库 连接数据库 frDemo 
    2.设计报表 设计报表 设计报表 设计报表 
    2.1 新建报表 
    2.2 表样设计 
    按照下图设计好报表的基本框架 
     
    表样设计 
    2.3 新建一数据集名为 ds1 
    SQL 语句 语句 语句 语句: :: : select 客户.城市,客户.地区,订单明细.数量,订单明细.单价,订单明细.单价*订单明细.
    数量 as 金额,订单明细.折扣 from 客户,订单,订单明细 where 客户.客户 ID = 订单.客户 ID 
    and 订单.订单 ID=订单明细.订单 ID and 订单明细.数量>=45 and 订单明细.数量<=55 
    2.4 绑定数据列   20 
     
    绑定数据列 
    按照下列表格将数据集的字段拖入对应单元格内,并作相应的设置。 
    单元格  内容  基本属性设置 
    B2,B3,B4,B5  ds1.地区  从上到下 从上到下 从上到下 从上到下扩展,其余默认 
    C2,C3,C4,C5  ds1.金额  数据设置:汇总 汇总 汇总 汇总-求和 求和 求和 求和,其余默认 
    2.5 设置过滤 
    2.5.1 B2 单元格设置过滤 
    双击 双击 双击 双击 B2|过滤 过滤 过滤 过滤,过滤条件:数量 数量 数量 数量  大于 大于 大于 大于 50( (( (整型 整型 整型 整型) )) ) 
     
    单元格过滤 1 
    2.5.2B3 单元格设置过滤 
    双击 双击 双击 双击 B3|过滤 过滤 过滤 过滤,过滤条件:折扣 折扣 折扣 折扣  大于 大于 大于 大于 0.1( (( (双精度型 双精度型 双精度型 双精度型) )) )   21 
     
    单元格过滤 2 
    2.5.3 B4 单元格设置过滤 
    双击 双击 双击 双击 B4|过滤 过滤 过滤 过滤,过滤条件:单价 单价 单价 单价  小于 小于 小于 小于 10( (( (整型 整型 整型 整型) )) ) 
     
     
     
     
     
     
     
    更多详情:http://www.finereport.com   22 
    用Web 报表工具制作重叠分组报表(十) 
     
    重叠分组报表 
    可以看到这个报表比前两个都复杂,属于重叠分组报表。 
    下面我们来看一下上述报表的实现过程 下面我们来看一下上述报表的实现过程 下面我们来看一下上述报表的实现过程 下面我们来看一下上述报表的实现过程  
    1.连接数据库 连接数据库 连接数据库 连接数据库 frDemo 
    2.设计报表 设计报表 设计报表 设计报表  
    2.1 新建报表 
    2.2 表样设计 
    按照下图设计好报表的基本框架 
     
    表样设计 
    2.3 新建一数据集名为 ds1 
    SQL 语句 语句 语句 语句: :: : select 客户.城市,客户.地区,订单明细.数量,订单明细.单价,订单明细.单价*订单明细.
    数量 as 金额, 订单明细.单价*订单明细.数量*订单明细.折扣  as 折扣金额 from 客户,订单,订
    单明细 where 客户.客户 ID = 订单.客户 ID and 订单.订单 ID=订单明细.订单 ID and 订单明
    细.数量=12 
    2.4 绑定数据列 
     
    绑定数据列 
    按照下列表格将数据集的字段拖入对应单元格内,并作相应的设置。 
    单元格  内容  基本属性设置   23 
    A2 ds1.地区  从上到下 从上到下 从上到下 从上到下扩展,其余默认 
    B2 ds1.金额  数据设置:汇总 汇总 汇总 汇总-求和 求和 求和 求和,其余默认 
    C2 ds1.折扣金额  数据设置:汇总 汇总 汇总 汇总-求和 求和 求和 求和,其余默认 
    A3 ds1.城市  从上到下 从上到下 从上到下 从上到下扩展,右对齐,左父格 左父格 左父格 左父格为 A2,其余默认 
    B3 ds1.金额  数据设置:汇总 汇总 汇总 汇总-求和 求和 求和 求和,其余默认 
    C3 ds1.折扣金额  数据设置:汇总 汇总 汇总 汇总-求和 求和 求和 求和,其余默认 
    2.5 自定义分组 
    2.5.1 地区字段自定义分组 
    添加 4 个新的自定义分组:华北 华北 华北 华北,华 华华 华南 南南 南,华东 华东 华东 华东和其他 其他 其他 其他, ,, ,具体设置见图 
     
    自定义报表分组 
     
     
     
     
     
    更多详情:http://www.finereport.com   24 
    用Web 报表工具—FineReport 制作重叠分组报表(十) 
     
    重叠分组报表 
    可以看到这个报表比前两个都复杂,属于重叠分组报表。 
    下面我们来看一下上述报表的实现过程 下面我们来看一下上述报表的实现过程 下面我们来看一下上述报表的实现过程 下面我们来看一下上述报表的实现过程  
    1.连接数据库 连接数据库 连接数据库 连接数据库 frDemo 
    2.设计报表 设计报表 设计报表 设计报表  
    2.1 新建报表 
    2.2 表样设计 
    按照下图设计好报表的基本框架 
     
    表样设计 
    2.3 新建一数据集名为 ds1 
    SQL 语句 语句 语句 语句: :: : select 客户.城市,客户.地区,订单明细.数量,订单明细.单价,订单明细.单价*订单明细.
    数量 as 金额, 订单明细.单价*订单明细.数量*订单明细.折扣  as 折扣金额 from 客户,订单,订
    单明细 where 客户.客户 ID = 订单.客户 ID and 订单.订单 ID=订单明细.订单 ID and 订单明
    细.数量=12 
    2.4 绑定数据列 
     
    绑定数据列 
    按照下列表格将数据集的字段拖入对应单元格内,并作相应的设置。 
    单元格  内容  基本属性设置   25 
    A2 ds1.地区  从上到下 从上到下 从上到下 从上到下扩展,其余默认 
    B2 ds1.金额  数据设置:汇总 汇总 汇总 汇总-求和 求和 求和 求和,其余默认 
    C2 ds1.折扣金额  数据设置:汇总 汇总 汇总 汇总-求和 求和 求和 求和,其余默认 
    A3 ds1.城市  从上到下 从上到下 从上到下 从上到下扩展,右对齐,左父格 左父格 左父格 左父格为 A2,其余默认 
    B3 ds1.金额  数据设置:汇总 汇总 汇总 汇总-求和 求和 求和 求和,其余默认 
    C3 ds1.折扣金额  数据设置:汇总 汇总 汇总 汇总-求和 求和 求和 求和,其余默认 
    2.5 自定义分组 
    2.5.1 地区字段自定义分组 
    添加 4 个新的自定义分组:华北 华北 华北 华北,华南 华南 华南 华南,华东 华东 华东 华东和其他 其他 其他 其他, ,, ,具体设置见图 
     
    自定义报表分组   26 
     
    自定义报表分组 
     
    自定义报表分组   27 
     
    自定义报表分组 
    2.5.2 城市字段设置过滤 
    双击 A3,点击过滤 过滤 过滤 过滤,可选列选择地区 地区 地区 地区,操作符选择被包含 被包含 被包含 被包含,值选择单元格 单元格 单元格 单元格 A2,如图 
     
    城市字段过滤 
    2.5.3 城市字段自定义分组   28 
    添加三个新的组:其中:北京、其中:天津;其中:深圳。具体设置如图 
     
    自定义报表分组 
     
    自定义分组 
    2.6 条件设置 
    预览报表,如图   29 
     
    报表预览 
    我们发现没有城市分组的行也会显示出来,所以要进行一下条件设置,让其隐藏。 
    选择 B3,右击 右击 右击 右击|条件属性 条件属性 条件属性 条件属性,增加一个新的条件,点击选择要改变的属性 点击选择要改变的属性 点击选择要改变的属性 点击选择要改变的属性|行高 行高 行高 行高,条件设为等于 等于 等于 等于 0,
    如图 
     
    报表条件过滤 
    2.7 显示格式设置 
    C2,C3,D2,D3 均设置为保留两位小数的货币格式。 
    3.保存预览 保存预览 保存预览 保存预览   30 
    保存为 
    %FineReport_HOME%/WebReport/WEB-INF/reportlets/com/doc/3.4.cpt 
    启动服务器,在浏览器中输入以下地址进行浏览: 
    http://localhost:8079/WebReport/ReportServer?reportlet=/com/doc/3.4.cpt 
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
    更多详情:http://www.finereport.com   31 
    用web 报表工具—FineReport 来弥补Excel 的不足(十一) 
    作为专业的报表软件来说,对应用人员要求也相对较高,业务人员很难直接使用,而且大多数报
    表工具在表样处理上远不如 EXCEL 方便,故而也不能取代 EXCEL,两种产品会在较长时期内
    相辅相成。 
    在很多信息化水平不高的公司,业务人员仍然用 Excel 来编制报表和处理数据,但是相对于 web
    报表软件,EXCEL 有如下三点不足之处: 
    一 一一 一、 、、 、动态刷新报表数据 动态刷新报表数据 动态刷新报表数据 动态刷新报表数据。 。。 。 
    EXCEL 能够绘制出非常复杂多样的报表,也可以在表内定义复杂的数据关系,但原始数据
    及表的样式都只能是确定的,每张报表都需要临时手工制作,而不能根据业务系统数据库中的数
    据自动更新统计报表。举个简单例子,一张班级同学的明细表,当数据库中增加了一名同学时候,
    excel表格数据不可能自动更新。web 报表软件制作出来报表,数据直接取自数据库,当前数据
    库中的数据变化时,web 报表软件自动计算出新的报表。 
    二 二二 二、 、、 、对报表实现权限控制 对报表实现权限控制 对报表实现权限控制 对报表实现权限控制。 。。 。 
    地区经理销售经理和销售总监看到报表时有存在差别的,如果用 Excel来做报表,需要给销
    售经理和销售总监每人制作一张 Excel表;而 web 报表软件能根据不同角色对应的数据权限调出
    来相应的数据,一张 web 报表模板就能解决问题。 
    三 三三 三、 、、 、数据填报功能 数据填报功能 数据填报功能 数据填报功能。 。。 。 
    如果部门十二个人,每人都有一张员工 Excel 的员工通信录。当某个人电话号码变动时候,
    需要更新 excel 的通信录然后给每个人重新发一份 excel 表样;用 web 报表软件做一张可以更新
    数据的填报表,然后员工只需要修改电话号码,并且将信息入库。其他员工再次打开数据库时候,
    信息就全部更新。 
       web 报表软件在处理报表有上述优势,但作为专业的报表软件来说,对应用人员要求也相
    对较高,业务人员很难直接使用,而且大多数报表工具在表样处理上远不如 EXCEL 方便,故而
    也不能取代 EXCEL,两种产品会在较长时期内相辅相成。 
      一个好的 web 报表软件应当在展现方面与 EXCEL 尽量兼容,无缝导入导出 Excel,易于与
    权限系统继承,具有数据填报功能,这些 FineReport 报表软件等都可以满足。 
     
    转载自:比特网新闻中心(http://news.chinabyte.com/110/9147110.shtml) 
     
     
     
     
     
     
    更多详情:http://www.finereport.com   32 
    用web 报表工具—FineReport 制作主子填报表(十二) 
     
    主子填报表 
    上图所示为一张主子填报表,分上下两部分,上半部分为订单的主表,下半部分为订单明细,这
    两部分数据分别来自不同的物理表,用户修改数据后,同时保存到两张物理表中,并保持数据库
    事务一致性。 
    下面我们就来看一下实现上述报表的过程 下面我们就来看一下实现上述报表的过程 下面我们就来看一下实现上述报表的过程 下面我们就来看一下实现上述报表的过程  
    1.连接数据库 连接数据库 连接数据库 连接数据库 frDemo 
    2.设计报表 设计报表 设计报表 设计报表 
    2.1 新建报表 
    2.2 表样设计 
    按照下图设计好报表的基本框架 
     
    报表表样设计 
    2.3 新建一数据集 
    新建数据集 ds1 
    SQL 语句 语句 语句 语句: :: :select * from 订单明细 
    新建数据库 ds2   33 
    SQL 语句 语句 语句 语句: :: :select * from 订单 where 订单 ID=10248 
    2.4 绑定数据列 
     
    绑定数据列 
    按照下列表格将数据集的字段拖入对应单元格内,并作相应的设置。 
    单元格  内容  基本属性设置 
    B3 ds2.订单 ID  从上到下 从上到下 从上到下 从上到下扩展,其余默认 
    D3 ds2.发货日期  从上到下 从上到下 从上到下 从上到下扩展,其余默认 
    F3 ds2.到货日期  从上到下 从上到下 从上到下 从上到下扩展,其余默认 
    B4 ds2.客户 ID  从上到下 从上到下 从上到下 从上到下扩展,其余默认 
    F4 ds2.货主名称  从上到下 从上到下 从上到下 从上到下扩展,其余默认 
    B5 ds2.运货商  从上到下 从上到下 从上到下 从上到下扩展,其余默认 
    D5 ds2.运货费  从上到下 从上到下 从上到下 从上到下扩展,其余默认 
    F5 ds2.货主城市  从上到下 从上到下 从上到下 从上到下扩展,其余默认 
    A8 =&B8    
    B8 ds1.产品 ID  从上到下 从上到下 从上到下 从上到下扩展,其余默认 
    C8 ds1.单价  从上到下 从上到下 从上到下 从上到下扩展,其余默认 
    D8 ds1.折扣  从上到下 从上到下 从上到下 从上到下扩展,其余默认 
    E8 ds1.数量  从上到下 从上到下 从上到下 从上到下扩展,其余默认 
    F8 =C8*E8    
    2.5 单元格设置过滤 
    双击 B8,进入单元格数据列对话框,点击过滤,设置过滤条件为:订单 订单 订单 订单 ID 等于 等于 等于 等于 B3   34 
     
    单元格过滤 
    2.6 单元格的表单属性设置 
    对 B3,D3,F3,B4,F4,B5,D5,F5,A8,B8,C8,D8,E8,F8 单元格设置表单属性,其中 D3,F3 为日期型,
    C8,D8,E8 均为数字型,并且允许小数,其余均为文本类型。 
    设置完后如图 
     
    表单属性设置 
    2.7 设置报表填报属性 
    打开报表 报表 报表 报表|报表填报属性 报表填报属性 报表填报属性 报表填报属性对话框,如图所示   35 
     
    填报属性设置 
    点击左上角的添加按钮,添加一个新的内置 内置 内置 内置 SQL。 
    数据库选择 frDemo,模式为空,表选择订单 订单 订单 订单,如图所示   36 
     
    添加内置 sql 
    点击智能添加字段 智能添加字段 智能添加字段 智能添加字段,出现下图所示的对话框,用来将模板中的所要填入的字段和数据表中的字段
    对应,您可以自由选择所需对应的字段。   37 
     
    智能添加字段 
    添加完后,单击智能添加单 智能添加单 智能添加单 智能添加单元格 元格 元格 元格,填入对应的单元格。 
    可以选单元格不改变时不参与更新 单元格不改变时不参与更新 单元格不改变时不参与更新 单元格不改变时不参与更新,这样可以加快填报后数据更新速度。 
    添加完后点击确定 确定 确定 确定,显示如下图,可以看到在预览中已经自动生成了相对应的更新数据库的 SQL
    语句。   38 
     
    智能添加单元格 
    再添加一个内置 SQL2,数据库选择 frDemo,模式为空,表选择订单明细。以同样的方式智能
    添加字段 à 智能添加单元格,设置好后如图   39 
     
    智能添加 sql2 
    3.保存预览 保存预览 保存预览 保存预览 
    保存为 
    %FineReport_HOME%/WebReport/WEB-INF/reportlets/com/doc/form/9.2.cpt 
    启动服务器,点击设计器右上角的填报预览,就可以进行预览填报了。 
    或者在浏览器里直接数据地址: 
    http://localhost:8075/WebReport/ReportServer?reportlet=com/doc/form/9.2.cpt&op=wri
    te 
     
     
     
     
     
     
     
    更多详情:http://www.finereport.com   40 
    用 Web 报表工具—FineReport实现网格式填报表(十三) 
     
    网格式填报表 
    如图所示,网格式填报表和普通的网格式报表类似,只是多了一个填写的功能。 
    下面我们就来看一下实现上述报表的过程 下面我们就来看一下实现上述报表的过程 下面我们就来看一下实现上述报表的过程 下面我们就来看一下实现上述报表的过程 
    1.连接数据库 连接数据库 连接数据库 连接数据库 frDemo 
    2.设计报表 设计报表 设计报表 设计报表 
    2.1 新建报表 
    2.2 表样设计 
    按照下图设计好报表的基本框架 
     
    表样设计 
    2.3 新建一数据集名为 emp_sql 
    SQL 语句 语句 语句 语句: :: :select * from 订单 where 雇员 ID=5 
    2.4 绑定数据列   41 
     
    绑定数据列 
    按照下列表格将数据集的字段拖入对应单元格内,并作相应的设置。 
    单元格  内容  基本属性设置 
    A2 ds1.订单 ID  从上到下 从上到下 从上到下 从上到下扩展,其余默认 
    B2 ds1.客户 ID  从上到下 从上到下 从上到下 从上到下扩展,其余默认 
    C2 ds1.订购日期  从上到下 从上到下 从上到下 从上到下扩展,其余默认 
    D2 ds1.发货日期  从上到下 从上到下 从上到下 从上到下扩展,其余默认 
    E2 ds1.运货商  从上到下 从上到下 从上到下 从上到下扩展,其余默认 
    F2 ds1.运货费  从上到下 从上到下 从上到下 从上到下扩展,其余默认 
    G2 ds1.货主地址  从上到下 从上到下 从上到下 从上到下扩展,其余默认 
    2.5 单元格的表单属性设置 
    点击 A2,右击 右击 右击 右击|表单属性 表单属性 表单属性 表单属性,出现如下对话框,勾选是否可写选项 是否可写选项 是否可写选项 是否可写选项,类型默认为文本 
     
    表单编辑器属性 
    以同样的方式设置 B2,C2,D2,E2,F2,G2 的表单属性,其中 C2 和 D2 的类型 类型 类型 类型选择日期 日期 日期 日期,设置如图   42 
     
    日期属性 
    F2 的类型选择数字,设置如图 
     
    数字属性 
    设置完之后,每个单元格的右下角会出现一个蓝色的小圆圈,表示设置了表单属性,如图   43 
     
    表单属性 
    2.6 设置报表填报属性 
    打开报表 报表 报表 报表|报表填报属性 报表填报属性 报表填报属性 报表填报属性对话框,如图所示 
     
    填报属性 
    点击左上角的添加按钮,添加一个新的内置 内置 内置 内置 SQL。 
    数据库选择 frDemo,模式为空,表选择订单 订单 订单 订单,如图所示   44 
     
    新增内置 SQL 
    点击智能添加字段 智能添加字段 智能添加字段 智能添加字段,出现下图所示的对话框,用来将模板中的所要填入的字段和数据表中的字段
    对应,您可以自由选择所需对应的字段。   45 
     
    智能添加字段 
    可选列中包含数据表中所有的字段,值对应模板中的数据字段,这里需要建立数据表中的字段和
    模板字段的一一对应关系,选择右边的智能添加单元格按钮,可选列自动选择订单 ID,值选择
    时你只需要点击相应的单元格 A2,单元格值就会自动传入对话框界面,这里还可以把订单 订单 订单 订单 ID 作
    为主键 主键 主键 主键,然后依次当可选列选择客户 客户 客户 客户 ID,值选择对应 B2,以此类推,如图。 
    主键 主键 主键 主键:主键的作用在于回填数据库时按照将这个字段作为主键,主键字段的各个字段名是唯一的,
    修改后的内容如果是主键中的已有记录则会覆盖以前的内容,如是不同则增加这个记录。   46 
     
    智能添加单元格 
    可以选单元格不改变时不参与更新,这样可以加快填报后数据更新速度。 
    添加完后点击确定,显示如下图,可以看到在预览中已经自动生成了相对应的更新数据库的 SQL
    语句。 
     
    SQL 更新 
    3.保存预览 保存预览 保存预览 保存预览   47 
    保存为 
    %FineReport_HOME%/WebReport/WEB-INF/reportlets/com/doc/form/2.1.cpt 
    启动服务器,点击设计器右上角的填报预览,就可以进行预览填报了。 
     
    填报预览 
    或者在浏览器里直接数据地址: 
    http://localhost:8075/WebReport/ReportServer?reportlet=com/doc/form/2.1.cpt&op=wri
    te  
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
    更多详情:http://www.finereport.com   48 
    用web 报表工具—FineReport 归并分组报表(十四) 
     
    归并分组报表 
    如图所示,将所有的地区都重新分组,将“华南”和“西南”合为“南部地区”,“华北”和“东北”合为北
    部地区,剩下的地区合为“其他” 
    下面我们来看一下在 下面我们来看一下在 下面我们来看一下在 下面我们来看一下在《 《《 《用 用用 用 web 报表工具制作不完全分组报表 报表工具制作不完全分组报表 报表工具制作不完全分组报表 报表工具制作不完全分组报表》 》》 》的基础上实现上述报表的过程 的基础上实现上述报表的过程 的基础上实现上述报表的过程 的基础上实现上述报表的过程 
    1.设计报表 设计报表 设计报表 设计报表 
    1.1 自定义分组 
    点击 A2 单元格,右击 右击 右击 右击|单元格属性 单元格属性 单元格属性 单元格属性|数据列 数据列 数据列 数据列,数据设置 数据设置 数据设置 数据设置中分组 分组 分组 分组选择高级 高级 高级 高级, ,, ,如图   49 
     
    自定义分组 
    点击自定义 自定义 自定义 自定义,出现自定义分组对话框,点击左上角的增加按钮 增加按钮 增加按钮 增加按钮,添加三个新的分组:南部地区 南部地区 南部地区 南部地区、
    北部地区 北部地区 北部地区 北部地区和其他 其他 其他 其他,其具体设置如图。 
     
    分组属性一南部地区   50 
     
    分组属性二北部地区 
     
    分组属性三其他地区 
    2.保存预览 保存预览 保存预览 保存预览 
    保存为 
    %FineReport_HOME%/WebReport/WEB-INF/reportlets/com/doc/4.2.cpt 
    启动服务器,在浏览器中输入以下地址进行浏览: 
    http://localhost:8079/WebReport/ReportServer?reportlet=/com/doc/4.2.cpt     51 
    用Web 报表工具—FineReport 制作不完全分组报表(十五) 
     
    分组报表和不完全分组报表对比 
    比较左右两张图,可以看到右边的图只保留了华东 华东 华东 华东、 华北 华北 华北 华北两个组,其他地区全放置到其他组 其他组 其他组 其他组里了,
    之所以这么做,是因为一些组用户并不关心,将其合并起来,增强了报表的可用性。 
    下面我们来看一下上述报表的实现过程 下面我们来看一下上述报表的实现过程 下面我们来看一下上述报表的实现过程 下面我们来看一下上述报表的实现过程, ,, ,以 以以 以 FineReport 报表工具 报表工具 报表工具 报表工具为例 为例 为例 为例。 。。 。 
    1.连接数据库 连接数据库 连接数据库 连接数据库 frDemo 
    2.设计报表 设计报表 设计报表 设计报表 
    2.1 新建报表 
    2.2 表样设计 
    按照下图设计好报表的基本框架 
     
    表样设计 
    2.3 新建一数据集名为 ds1 
    SQL 语句 语句 语句 语句: :: : select 客户.城市,客户.地区,订单明细.数量,订单明细.单价,订单明细.单价*订单明细.
    数量 as 金额 from 客户,订单,订单明细 where 客户.客户 ID = 订单.客户 ID and 订单.订单
    ID=订单明细.订单 ID and 订单明细.数量=12 
    2.4 绑定数据列   52 
     
    绑定数据列 
    按照下列表格将数据集的字段拖入对应单元格内,并作相应的设置。 
    单元格  内容  基本属性设置 
    A2 ds1.地区  从上到下 从上到下 从上到下 从上到下扩展,其余默认 
    B2 ds1.城市  从上到下 从上到下 从上到下 从上到下扩展,其余默认 
    C2 ds1.金额  数据设置:汇总 汇总 汇总 汇总-求和 求和 求和 求和,其余默认 
    2.5 自定义分组 
    点击 A2 单元格,右击 右击 右击 右击|单元格属性 单元格属性 单元格属性 单元格属性|数据列 数据列 数据列 数据列,数据设置 数据设置 数据设置 数据设置中分组 分组 分组 分组选择高级 高级 高级 高级, ,, ,如图 
     
    自定义分组 
    点击自定义 自定义 自定义 自定义,出现自定义分组对话框,点击左上角的增加按钮 增加按钮 增加按钮 增加按钮,添加一个新的分组,命名为华 华华 华
    北 北北 北。可选列选择地区 地区 地区 地区,操作符选择等于 等于 等于 等于,值选择字符串 字符串 字符串 字符串,填入华东 华东 华东 华东,点击增加 增加 增加 增加,一个分组设置
    好了。以同样的方式设置另外两个组,其具体设置如图。   53 
     
    自定义分组 1 
     
    自定义分组 2   54 
     
    自定义分组 3 
    3.保存预览 保存预览 保存预览 保存预览 
    保存为 
    %FineReport_HOME%/WebReport/WEB-INF/reportlets/com/doc/3.2.cpt 
    启动服务器,在浏览器中输入以下地址进行浏览: 
    http://localhost:8079/WebReport/ReportServer?reportlet=/com/doc/3.2.cpt   
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
    更多详情:http://www.finereport.com   55 
    用 Web 报表工具—FineReport实现纵向分片(十六) 
     
    图 1 
     
    图 2 
    图 1 是一个多层交叉报表,图 2 是在图 1 所示报表基础上建立的纵向分片报表。纵向分片指的
    是报表的纵向被分成了多个区域,每个区域重复规则不同,而又可能相互运算。我们这里所说的
    分片,是各片处于一个统一的报表当中,可以互相运算。分片与多源是紧密相关的,往往分片后
    不同片需要使用不同的数据源。 
    下面我们来看一下上述报表的实现过程 下面我们来看一下上述报表的实现过程 下面我们来看一下上述报表的实现过程 下面我们来看一下上述报表的实现过程 
    1 设计报表 设计报表 设计报表 设计报表   56 
    1.1 表样设计 
    打开已有报表 2.1.1.cpt,界面如图 
     
    报表表样设计 1 
    我们在此界面上添加一些内容,作出如下图所示的报表界面 
     
    报表表样设计 2 
    1.2 增加一个数据集名为 ds2 
    SQL 语句:select 雇员.雇员 ID,订单明细.产品 ID,雇员.职务,雇员.姓氏+雇员.名字  as 姓名,订
    单明细.单价*订单明细.数量  as 业绩  from 雇员,订单,订单明细  where 雇员.雇员 ID = 订单.
    雇员 ID and 订单.订单 ID = 订单明细.订单 ID order by 订单.订购日期  asc 
    1.3 绑定数据列 
     
    绑定数据列 
    单元格  内容  基本属性设置 
    B4 Ds2.职务  从上到下 从上到下 从上到下 从上到下扩展,居中,其余默认 
    C4 Ds2.姓名  从上到下 从上到下 从上到下 从上到下扩展,居中,其余默认 
    D4 Ds2.业绩  数据设置:汇总 汇总 汇总 汇总, ,, ,求和 求和 求和 求和 
    2.保存预览 保存预览 保存预览 保存预览 
    保存为 %FineReport_HOME%/WebReport/WEB-INF/reportlets/com/doc/2.2.cpt 
    启动服务器,在浏览器中输入以下地址进行浏览: 
    http://localhost:8079/WebReport/ReportServer?reportlet=/com/doc/2.2.cpt     57 
    用Web 报表工具—FineReport 制作自由格式报表(十七) 
     
    自由格式报表 
    在我们的应用中,有时会遇到一条记录包含许多的字段,这些字段都要显示在报表中,比如员工
    履历表。如果把它显示在报表的一行上,报表看起来会很拥挤,如果像上图一样设计报表,增强
    了可读性和美观性。自由报表中每一条记录不是分布在一行上,而是按照一定的规则散放在多行
    上,如果报表中要显示记录的图片字段,那么图片字段可以合并多行来显示,打印的时候可以多
    页同时打印出来,每一页都有报表标题。 
    自由报表的设计是通过父格的设置来实现的。 
    下面我们来看一下上述报表的制作过程 下面我们来看一下上述报表的制作过程 下面我们来看一下上述报表的制作过程 下面我们来看一下上述报表的制作过程, ,, ,依旧以 依旧以 依旧以 依旧以 FineReport 为例 为例 为例 为例。 。。 。 
    1.连接数据库 连接数据库 连接数据库 连接数据库 frDemo 
    2.设计报表 设计报表 设计报表 设计报表  
    2.1 新建报表 
    2.2 表样设计 
    按照下图设计好报表的基本框架,并将所有单元格父格设为 B2 
     
    表样设计 
    2.3 新建一数据集名为 emp_sql 
    SQL 语句: select 姓氏+名字 as 姓名,出生日期,雇员 ID,雇用日期,职务,邮政编码,地址 from 雇
    员 
    2.4 绑定数据列   58 
     
    绑定数据列 
    按照下列表格将数据集的字段拖入对应单元格内,并作相应的设置。 
    单元格  内容  基本属性设置 
    B2 emp_sql.姓名  从 从从 从上到下 上到下 上到下 上到下扩展,居中,其余默认 
    D2 emp_sql.出生日期  从上到下 从上到下 从上到下 从上到下扩展,居中,左父格设为 左父格设为 左父格设为 左父格设为 B2,其余默认 
    B3 emp_sql.雇员 ID  从上到下 从上到下 从上到下 从上到下扩展,居中,左父格设为 左父格设为 左父格设为 左父格设为 B2,其余默认 
    D3 emp_sql.雇用日期  从上到下 从上到下 从上到下 从上到下扩展,居中,左父格设为 左父格设为 左父格设为 左父格设为 B2,其余默认 
    B4 emp_sql.职务  从上到下 从上到下 从上到下 从上到下扩展,居中,左父格设为 左父格设为 左父格设为 左父格设为 B2,其余默认 
    D4 emp_sql.邮政编码  从上到下 从上到下 从上到下 从上到下扩展,居中,左父格设为 左父格设为 左父格设为 左父格设为 B2,其余默认  
    B5 emp_sql.地址  从上到下 从上到下 从上到下 从上到下扩展,居中,左父格设为 左父格设为 左父格设为 左父格设为 B2,其余默认  
      
    3.保存预览 保存预览 保存预览 保存预览 
    保存为 
    %FineReport_HOME%/WebReport/WEB-INF/reportlets/com/doc/8.1.cpt 
    启动服务器,在浏览器中输入以下地址进行浏览: 
    http://localhost:8079/WebReport/ReportServer?reportlet=/com/doc/8.1.cpt   
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
    更多详情:http://www.finereport.com   59 
    Web 报表—FineReport 单元格的定位与拉伸(十八) 
     
    单元格定位与伸展 
    如上图所示,报表的标题、“报表日期”、“审核员”,会自动根据其他单元格的扩展进行定位与拉
    伸。 
    下面我们来看一下在 下面我们来看一下在 下面我们来看一下在 下面我们来看一下在《 《《 《用 用用 用 Web 报表工具实现多方面汇总统计 报表工具实现多方面汇总统计 报表工具实现多方面汇总统计 报表工具实现多方面汇总统计》 》》 》的基础上实现上述报表的过程 的基础上实现上述报表的过程 的基础上实现上述报表的过程 的基础上实现上述报表的过程  
    1.设计报表 设计报表 设计报表 设计报表  
    1.1 表样设计 
      
     
    表样设计和数据列绑定 
    如图设计好表样,其中 D2 中填入’=todate(today())’,即获得当前日期。C7 的上父格 上父格 上父格 上父格设置为无 无无 无。  
    1.2 修改扩展属性 
    预览   60 
     
    显示的结果即为我们所要的效果。如果我们不想让“报表日期”单元格扩展呢? 
    单击 C2,右击,进入数据列 数据列 数据列 数据列属性设置,点击高级 高级 高级 高级,将横向可伸展 横向可伸展 横向可伸展 横向可伸展的复选框选项取消,确定。 
     
    取消横向可伸展属性 
      
    预览如下图   61 
     
    取消横向伸展属性效果图 
    可以看到“填报日期”单元格没有扩展,同样,如果我们设置 A1 单元格不横向伸展,会得到类似
    的效果,大家可以自己试一下看看,这里就不演示了。 
    2.保存预览 
    保存为 
    %FineReport_HOME%/WebReport/WEB-INF/reportlets/com/doc/7.4.cpt 
    启动服务器,在浏览器中输入以下地址进行浏览: 
    http://localhost:8079/WebReport/ReportServer?reportlet=/com/doc/7.4.cpt   
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
    更多详情:http://www.finereport.com   62 
    用 Web 报表工具—FineReport实现多方面汇总统计(十九) 
     
    多方面汇总统计 
    为了深入了解汇总规则,我们在《用Web 报表工具制作多层交叉报表》的基础上进行多方面的
    汇总,如上图所示。 
    下面我们来看一下实现上述报表的过程 下面我们来看一下实现上述报表的过程 下面我们来看一下实现上述报表的过程 下面我们来看一下实现上述报表的过程 
    1.设计报表 设计报表 设计报表 设计报表 
    如下图所示在《用Web 报表工具制作多层交叉报表》的基础上扩展,D2 填入=sum(C2),C3 填
    入=sum(C2),D3 填入=sum(D2),C4 填入=sum(C3),D4 填入=sum(D3) 
     
    制作表样和数据列绑定 
    2.保存预览 保存预览 保存预览 保存预览 
    保存为 
    %FineReport_HOME%/WebReport/WEB-INF/reportlets/com/doc/7.3.cpt 
    启动服务器,在浏览器中输入以下地址进行浏览: 
    http://localhost:8079/WebReport/ReportServer?reportlet=/com/doc/7.3.cpt 
     
     
    更多详情:http://www.finereport.com   63 
    用Web 报表工具—FineReport 制作多层交叉报表(二十) 
     
    多层交叉报表 
    把《用Web 报表工具制作交叉报表》中的报表稍作改动,形成上图所示多层交叉报表 
    下面我们来看一下上述报表的实现过程 下面我们来看一下上述报表的实现过程 下面我们来看一下上述报表的实现过程 下面我们来看一下上述报表的实现过程, ,, ,依旧以 依旧以 依旧以 依旧以 FineReport 为例 为例 为例 为例。 。。 。  
    1.设计报表 设计报表 设计报表 设计报表  
    1.1 表样设计 
      
     
    表样设计 
      点击 B 列,右击插入列,将 A1 和 B1 单元格合并,设置好边框 
    1.2编辑数据集,增加性别字段 
    单 击 数 据 集 emp_sql, 右 击 编 辑 , SQL 语 句 修 改 为 : select 
    degree.name,employee.title,employee.empid,employee.sex  from degree,employee where 
    degree.id=employee.degree  
      
    1.3 绑定数据列 
       
    将 sex 字段拖入 B2 单元格,扩展属性为从上到下 从上到下 从上到下 从上到下,其余默认 
      
    1.4 显示值设置 
    点击 B2,右击 右击 右击 右击|形态 形态 形态 形态|数据字典 数据字典 数据字典 数据字典|自定义 自定义 自定义 自定义,建立如下图所示数据字典 
       
      
    2.保存预览 保存预览 保存预览 保存预览  
     保存为 
    %FineReport_HOME%/WebReport/WEB-INF/reportlets/com/doc/7.2.cpt 
    启动服务器,在浏览器中输入以下地址进行浏览:   64 
    http://localhost:8079/WebReport/ReportServer?reportlet=/com/doc/ 7.2.cpt 
     
    自定义数据字典 
      
     
    绑定数据列 
     
     
     
     
     
     
     
     
    更多详情:http://www.finereport.com   65 
    用Web 报表工具—FineReport 制作交叉报表(二十一) 
     
     
     
    交叉报表 
    交叉表,也是报表当中常见的类型,和分组报表一样,也是基本的报表类型。分组报表是只有行
    方向上有分组,而交叉表则是行、列方向都有分组的报表。传统的报表一般都是通过专门的交叉
    表生成向导来设计交叉表,FineReport 的数据模型,天然支持行列对称,因此设计交叉表的方
    法也很简单。 
    下面我们来看一下交叉报表的实现过程 下面我们来看一下交叉报表的实现过程 下面我们来看一下交叉报表的实现过程 下面我们来看一下交叉报表的实现过程  
    1.连接数据库 连接数据库 连接数据库 连接数据库 frDemo 
    2.设计报表 设计报表 设计报表 设计报表  
    2.1 新建报表 
    2.2 表样设计 
    如图做好报表的基本框架,单元格斜线 
     
    表样设计 
    2.3 新建一数据集名为 emp_sql 
    SQL 语句 语句 语句 语句: :: :select degree.name,employee.title,employee.empid from degree,employee where 
    degree.id=employee.degree  
    2.4 绑定数据列 
     
    绑定数据列   66 
    按照下列表格将数据集的字段拖入对应单元格内,并作相应的设置。 
    单元格  内容  基本属性设置 
    A2 emp_sql.title  从上往下 从上往下 从上往下 从上往下扩展,其余默认 
    B1 emp_sql.degree  从左往右 从左往右 从左往右 从左往右扩展,其余默认 
    B2 emp_sql.empID  数据设置为汇总 汇总 汇总 汇总–个数 个数 个数 个数 
      
    3.保存预览 保存预览 保存预览 保存预览 
    保存为 
    %FineReport_HOME%/WebReport/WEB-INF/reportlets/com/doc/7.1.cpt 
    启动服务器,在浏览器中输入以下地址进行浏览: 
    http://localhost:8079/WebReport/ReportServer?reportlet=/com/doc/7.1.cpt 
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
    更多详情:http://www.finereport.com   67 
    用 Web 报表工具—FineReport实现计算列的汇总(二十二) 
     
    计算列的汇总 
    从上图中可以看出,报表不是简单的对某一列进行汇总,而是对库存量和单价两列的乘积进行汇
    总。 
    下面我们来看一下上述报表的实现过程 下面我们来看一下上述报表的实现过程 下面我们来看一下上述报表的实现过程 下面我们来看一下上述报表的实现过程,仍然以 仍然以 仍然以 仍然以 FineReport 报表 报表 报表 报表为例 为例 为例 为例。 。。 。 
    1.连接数据库 连接数据库 连接数据库 连接数据库 frDemo 
    2.设计报表 设计报表 设计报表 设计报表 
    2.1 新建报表 
    2.2 表样设计 
    按照下图设计好报表的基本框架 
     
    2.3 新建一数据集名为 pro_sql 
    SQL 语句 语句 语句 语句: :: :select 产品名称,库存量,单价,产品 ID from 产品  where 中止 =’0′ and 类别 ID =’5′ 
    2.4 绑定数据列 
     
    绑定数据列 
    按照下列表格将数据集的字段拖入对应单元格内,并作相应的设置。 
    单元格  内容  基本属性设置   68 
    A2 pro_sql.产品 ID  从上到下 从上到下 从上到下 从上到下扩展,居中,其余默认 
    B2 pro_sql.产品名称  从上到下 从上到下 从上到下 从上到下扩展,居中,其余默认 
    C2 pro_sql.库存量  从上到下 从上到下 从上到下 从上到下扩展,居中,其余默认 
    D2 pro_sql.单价  从上到下 从上到下 从上到下 从上到下扩展,居中,其余默认 
    C3 =SUM(C2*D2)  居中 
    2.5 显示格式设置 
    将 C3,D2 的显示格式设置为货币型,显示格式设置 
    3.保存预览 保存预览 保存预览 保存预览 
    保存为 
    %FineReport_HOME%/WebReport/WEB-INF/reportlets/com/doc/6.5.cpt 
    启动服务器,在浏览器中输入以下地址进行浏览: 
    http://localhost:8079/WebReport/ReportServer?reportlet=/com/doc/6.5.cpt 
     
     
     
     
     
     
     
     
     
     
     
     
    更多详情:http://www.finereport.com   69 
    用Web 报表工具—FineReport 进行汇总统计(二十三) 
     
    数据汇总 
    对于分组过后的数据,时常要对其每一组的数据进行统计,上图就是对每一个地区的公司数进行
    汇总统计。 
    下面我们来看一下在 下面我们来看一下在 下面我们来看一下在 下面我们来看一下在《 《《 《用 用用 用 Web 报表工具制作多层分组报表 报表工具制作多层分组报表 报表工具制作多层分组报表 报表工具制作多层分组报表》 》》 》的基础上实现上述报表的过程 的基础上实现上述报表的过程 的基础上实现上述报表的过程 的基础上实现上述报表的过程 
    1.设计报表 设计报表 设计报表 设计报表 
    1.1 表样设计 
    在 B3 中输入公司数 公司数 公司数 公司数,A2、A3 合并单元格,C3、D3、E3 合并单元格,在 C3 中输入=count(C2),
    并设置好边框,如图 
     
    表扬设计和数据列绑定 
    count(C2):统计 C2 单元格在当前父格中扩展出来的单元格个数。 
    2.保存预览 保存预览 保存预览 保存预览 
    保存为 
    %FineReport_HOME%/WebReport/WEB-INF/reportlets/com/doc/6.3.cpt 
    启动服务器,在浏览器中输入以下地址进行浏览: 
    http://localhost:8079/WebReport/ReportServer?reportlet=/com/doc/6.3.cpt     70 
    用Web 报表工具—FineReport 制作多层分组报表(二十四) 
     
    多层分组报表 
    上一篇日志《用Web 报表工具制作分组报表》已经介绍了基本分组报表的设计步骤,现在我们
    体验一下多层分组报表。 
    1.设计报表 设计报表 设计报表 设计报表  
    1.1 表样设计 
    选中 A列, ,, ,右击 右击 右击 右击|插入列 插入列 插入列 插入列,在 A1 单元各种写入地区 地区 地区 地区 
    1.2 编辑数据集 
    点击 custom_sql 数据集,右击 右击 右击 右击|编辑 编辑 编辑 编辑,将 SQL 语句改为:select 城市,公司名称,联系人姓名,联
    系人职务,地区 from 客户 
    1.3 绑定数据列 
    将 custom_sql数据集中的地区字段拖入 A2 单元格中,如图: 
     
    绑定数据列 
      
    2.保存预览 保存预览 保存预览 保存预览 
    保存为 
    %FineReport_HOME%/WebReport/WEB-INF/reportlets/com/doc/6.2.cpt 
    启动服务器,在浏览器中输入以下地址进行浏览: 
    http://localhost:8079/WebReport/ReportServer?reportlet=/com/doc/6.2.cpt     71 
    用Web 报表工具—FineReport 制作分组报表(二十五) 
     
    分组报表 
    分组报表,是所有报表当中最普通,最常见的报表类型,也是所有报表工具都支持的一种报表格
    式。从一般概念上来讲,分组报表就是只有纵向的分组。传统的分组报表制作方式是把报表划分
    为条带状,用户根据一个数据绑定向导指定分组,汇总字段,生成标准的分组报表。 
    而 FineReport 当中,制作分组报表的方式,是拖拽数据列,依靠单元格之间的天然的附属关系
    来设计。比如,下面这个报表,我们需要把公司名称按地城市成组,看看各城市都有哪些公司。  
    1.连接数据库 连接数据库 连接数据库 连接数据库 frDemo 
    2 设计报表 设计报表 设计报表 设计报表  
    2.1 新建报表 
    2.2 表样设计 
    按照下图做好报表的基本框架 
     
    表样设计 
    2.3 新建一数据集名为 custom_sql 
    SQL 语句 语句 语句 语句: :: :select 城市,公司名称,联系人姓名,联系人职务  from 客户  
    2.4 绑定数据列 
     
    绑定数据列 
    按照下列表格将数据集的字段拖入对应单元格内,并作相应的设置。 
    单元格  内容  基本属性设置   72 
    A2 custom_sql.城市  从上到下扩展,居中,其余默认 
    B2 custom_sql.公司名称  从上到下扩展,居中,其余默认 
    C2 custom_sql.联系人姓名  从上到下扩展,居中,其余默认 
    D2 custom_sql.联系人职务  从上到下扩展,居中,其余默认 
      
    3.保存预览 保存预览 保存预览 保存预览 
    保存为 
    %FineReport_HOME%/WebReport/WEB-INF/reportlets/com/doc/6.1.cpt 
    启动服务器,在浏览器中输入以下地址进行浏览: 
    http://localhost:8079/WebReport/ReportServer?reportlet=/com/doc/6.1.cpt  
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
    更多详情:http://www.finereport.com   73 
    用 Web 报表工具—FineReport取数排序的实现(二十六) 
     
    web 报表工具取数排序 
    报表中,取数展现的时候往往要求记录按照一定的顺序进行排列,我们称为排序。比如想让 《web
    报表工具中显示格式和显示值的设置》日志中的报表按照员工 id 进行升序排列。此处依旧以
    FineReport 报表工具为例。 
    下面我们来看一下实现排序的具体步骤 下面我们来看一下实现排序的具体步骤 下面我们来看一下实现排序的具体步骤 下面我们来看一下实现排序的具体步骤 
    1.设计报表 设计报表 设计报表 设计报表  
    1.1 方法一:SQL 中排序 
    在报表数据集面板中,点击 emp_sql数据集,右击选择编辑,进入数据集编辑对话框,将 SQL
    语句修改为:select empid,empname,birthday,sex,degree,bonous  from employee order by 
    empid asc 
    order by empid asc 就是指按照 empid 升序排列,如果要按照降序排列,则写 order by empid 
    desc 
    1.2 方法二:单元格属性设置 
    点击 A2 单元格,进入该单元格的数据列属性设置对话框,点击高级,或者直接点击表格上面工
    具栏中的高级按钮(图 1),在排列顺序下拉框中选择升序(图 2),点击确定 
     
    图一 
        74 
     
    图二 
    2.保存预览 保存预览 保存预览 保存预览 
    保存为 
    %FineReport_HOME%/WebReport/WEB-INF/reportlets/com/doc/3.6.cpt 
    启动服务器,在浏览器中输入以下地址进行浏览: 
    http://localhost:8079/WebReport/ReportServer?reportlet=/com/doc/3.6.cpt 
     
     
     
     
     
     
     
    更多详情:http://www.finereport.com   75 
    Web 报表工具—FineReport增加动态背景色(二十七) 
     
     
    报表动态背景色 
     一部分报表因为数据的繁冗单一,设计完之后,整体感观不是很清晰。这时如果对报表做一些
    简单的设置,如上图背景色间隔行显示,可以让报表美观的同时,还能方便我们更清楚的查看数
    据! 
    下面我们讲述一下在 下面我们讲述一下在 下面我们讲述一下在 下面我们讲述一下在《 《《 《Web 报表工具中显示格式和显示值的设置 报表工具中显示格式和显示值的设置 报表工具中显示格式和显示值的设置 报表工具中显示格式和显示值的设置》 》》 》的基础上实现上述报表的过 的基础上实现上述报表的过 的基础上实现上述报表的过 的基础上实现上述报表的过
    程 程程 程  
    1.设计报表 设计报表 设计报表 设计报表  
    条件高亮显示 
    F2 单元格右击 单元格右击 单元格右击 单元格右击|条件属性 条件属性 条件属性 条件属性或菜单中的格式|单元格条件加亮或点击工具栏中的 按钮,出现如下图
    所示条件属性对话框。   76 
     
    点击左上方的添加按钮 ,添加一个新的高亮条件,点击选择要改变的属性,选择背景色,如
    图设置背景色,并在后面的下拉框中选择当前行,选择公式,在公式一栏中输入 row()%2==0(即
    选择偶数行),点击增加。   77 
     
    修改报表条件属性 
      
    2.保存预览 保存预览 保存预览 保存预览 
    保存为 
    %FineReport_HOME%/WebReport/WEB-INF/reportlets/com/doc/3.4.cpt 
    启动服务器,在浏览器中输入以下地址进行浏览: 
    http://localhost:8079/WebReport/ReportServer?reportlet=/com/doc/ 3.4.cpt 
     
     
     
     
    更多详情:http://www.finereport.com   78 
    Web 报表工具FineReport 高亮显示设置(二十八) 
     
    报表中展现的数据可能会非常多,有效信息和其它信息之间的区别有时不能清晰展现,同时使用
    条件加亮功能,可以轻松实现该需求。 
    比如以上表格中,您希望将奖金大于 2500 的记录用红色表示出来。 
    下面我们讲述一下在 下面我们讲述一下在 下面我们讲述一下在 下面我们讲述一下在上篇日志 上篇日志 上篇日志 上篇日志《 《《 《Web 报表工具中显示格 报表工具中显示格 报表工具中显示格 报表工具中显示格式和显示值的设置 式和显示值的设置 式和显示值的设置 式和显示值的设置》 》》 》的基础上实现上述 的基础上实现上述 的基础上实现上述 的基础上实现上述
    报表的过程 报表的过程 报表的过程 报表的过程 
    1.  设计报表 设计报表 设计报表 设计报表 
    1.1 条件高亮显示 
    F2 单元格右击 单元格右击 单元格右击 单元格右击|条件属性 条件属性 条件属性 条件属性或菜单中的格式 格式 格式 格式|单元格条件加亮 单元格条件加亮 单元格条件加亮 单元格条件加亮或点击工具栏中的 按钮,出现如下图
    所示条件属性对话框。  79 
     
    点击左上方的添加按钮 ,添加一个新的高亮条件,点击选择要改变的属性,选择前景色,将前
    景色设置为红色,并在后面的下拉框中选择当前行,条件设置为操作符大于或等于 2500,点击增  80 
    加,如图。
     
    2.  保存预览 
    保存为 
    %FineReport_HOME%/WebReport/WEB-INF/reportlets/com/doc/3.3.cpt 
    启动服务器,在浏览器中输入以下地址进行浏览:
    http://localhost:8079/WebReport/ReportServer?reportlet=/com/doc/ 3.3.cpt  
     
     
     
     
     
    更多详情:http://www.finereport.com   81 
    Web 报表工具FineReport 中显示格式和显示值的设置(二十九)  
    编号 编号 编号 编号  姓名 姓名 姓名 姓名  生日 生日 生日 生日  性别 性别 性别 性别  学历 学历 学历 学历  奖金 奖金 奖金 奖金 
    1 Nancy  1948-12-08  女  Middle  ¥2000.00 
    2 Andrew  1952-02-19  男  High School ¥3000.00 
    3 Janet 1963-08-30  女  Middle  ¥2500.00 
    4 Margaret  1937-09-19  女  College  ¥2600.00 
    5 Steven  1955-03-04  男  Junior  ¥2100.00 
    6 Michael  1963-07-02  男  Master  ¥3500.00 
    7 Robert  1960-05-29  男  Junior  ¥2900.00 
    8 Laura 1958-01-29  女  College  ¥1800.00 
    9 Anne 1966-01-27  女  Junior  ¥2200.00 
    10  Chris 1970-09-18  男  Junior  ¥2300.00 
    如图所示,通过显示格式和显示值的设置,使报表可读性增强,更加美观。 
    下面我们来看一下上述报表的实现过程 下面我们来看一下上述报表的实现过程 下面我们来看一下上述报表的实现过程 下面我们来看一下上述报表的实现过程, ,, ,以 以以 以 FineReport 为例 为例 为例 为例。 。。 。 
    1.  连接数据库 连接数据库 连接数据库 连接数据库 frDemo  
    2.  设计报表 设计报表 设计报表 设计报表  
    2.1 新建报表 
    2.2 表样设计 
    按照下图设计好报表的基本框架 
     
    此示例的基本框架 
    2.3 新建一数据集名为 emp_sql 
    SQL 语句:select empid,empname,birthday,sex,degree,bonous from employee 
    2.4 绑定数据列 
     
    数据列的绑定   82 
    按照下列表格将数据集的字段拖入对应单元格内,并作相应的设置。 
    单元格  内容  基本属性设置 
    A2 emp_sql.EMPID  从上到下 从上到下 从上到下 从上到下扩展,居中,其余默认 
    B2 emp_sql.EMPNAME  从上到下 从上到下 从上到下 从上到下扩展,居中,其余默认 
    C2 emp_sql.BIRTHDAY  从上到下 从上到下 从上到下 从上到下扩展,居中,其余默认 
    D2 emp_sql.SEX  从上到下 从上到下 从上到下 从上到下扩展,居中,其余默认 
    E2 emp_sql.DEGREE  从上到下 从上到下 从上到下 从上到下扩展,居中,其余默认 
    F2 emp_sql.BONUS  从上到下 从上到下 从上到下 从上到下扩展,居中,其余默认 
    3.  显示格式设定 显示格式设定 显示格式设定 显示格式设定  
    •  日期字段显示格式的设定 
    C2 单元格右击 单元格右击 单元格右击 单元格右击|样式 样式 样式 样式|日期 日期 日期 日期,选择 yyyy-MM-dd 格式(如图),点击确定  
     
    日期格式 
    •  奖金字段显示格式的设定  
    F2 单元格右击 单元格右击 单元格右击 单元格右击|样式 样式 样式 样式|货币 货币 货币 货币,选择显示为¥12345.68 的格式(如图),点击确定    83 
     
    货币格式 
    4.  显示值设定  
    •  性别字段显示值的设定 
    双击 D2 单元格弹出单元格数据列(link)设置框,点击高级,在自定义显示值内输入 if($$$==1,’
    男’,'女’),点击确定。If(条件 条件 条件 条件,值 值值 值 1,值 值值 值 2):如果满足条件,等于值 1,若不满足,等于值 2  
     
    性别字段显示值 
    5.  学历字段显示值的设定 
    增加数据集 deg_sqlSQL 语句 语句 语句 语句:elect ID,name from degreesE2 单元格右击 单元格右击 单元格右击 单元格右击|形态 形态 形态 形态|数据字典 数据字典 数据字典 数据字典|数据 数据 数据 数据
    查询 查询 查询 查询,数据集名称选择报表数据集下的 deg_sql,列序号(实际值)设为 1,列序号(显示值)设
    为 2(图 1),预览(图 2),点击确定。列序号 列序号 列序号 列序号( (( (实际值 实际值 实际值 实际值) )) )就是在报表设计时显示的编码字段所在
    的列序号,也就是需要在报表设计时放置到报表当中的字段。 
    列序号 列序号 列序号 列序号( (( (显示值 显示值 显示值 显示值) )) )是指编码所代表的实际数据所在的列序号,也就是通过数据字典转换之后,在
    报表预览时看到的实际数据。    84 
     
    定义数据字典 
     
    预览数据字典 
    6.  保存预览 保存预览 保存预览 保存预览 
    保存为%FineReport_HOME%/WebReport/WEB-INF/reportlets/com/doc/3.2.cpt  
    启动服务器,在浏览器中输入以下地址进行浏览: 
                http://localhost:8079/WebReport/ReportServer?reportlet=/com/doc/ 3.2.cpt 
    更多详情:http://www.finereport.com   85 
    Web 报表工具FineReport 填报之日期自动计算(三十) 
     
    日期自动计算 
    如图所示,多了一个年龄字段,而在数据库中没有这个字段,这就得通过日期的计算获得。 
    下面我们就来看一下实现上述报表的过程 下面我们就来看一下实现上述报表的过程 下面我们就来看一下实现上述报表的过程 下面我们就来看一下实现上述报表的过程 
    1.设计报表 设计报表 设计报表 设计报表 
    1.1 表样设计 
    按照下图设计好报表的基本框架 
     
    报表表样设计 
    1.2 日期自动计算 
    在 E6 单元格中填入”=year(now())-year(E5)+1” 
    “year(now())-year(E5)+1”:用当前年份减去出生年份再加一即为年龄。 
    3.保存预览 保存预览 保存预览 保存预览 
    保存为 
    %FineReport_HOME%/WebReport/WEB-INF/reportlets/com/doc/form/5.3.cpt 
    启动服务器,点击设计器右上角的填报预览,就可以进行预览填报了。 
    或者在浏览器里直接数据地址: 
    http://localhost:8075/WebReport/ReportServer?reportlet=com/doc/form/5.3.cpt&op=wri
    te  
    更多详情:http://www.finereport.com   86 
    Web 报表工具FineReport填报之数值自动计算(三十一) 
     
    报表填报之自动计算 
    自动计算,就是指填报的时候,用户录入了某些数据后,系统会自动算出另外一部分单元格的值,
    由此简化用户的输入,减少错误率。如图所示,当用户输入货物数量后,系统自动根据运货费和
    货物数量算出总运货费。 
    下面我们来看一下实现上述报表的过程 下面我们来看一下实现上述报表的过程 下面我们来看一下实现上述报表的过程 下面我们来看一下实现上述报表的过程。 。。 。 
    1.连接数据库 连接数据库 连接数据库 连接数据库 frDemo 
    2.设计报表 设计报表 设计报表 设计报表 
    2.1 新建报表 
    2.2 表样设计 
    按照下图设计好报表的基本框架 
     
    报表表样设计 
    2.3 新建一数据集名为 emp_sql 
    SQL 语句 语句 语句 语句: :: :select * from 订单 where 雇员 ID=5 
    2.4 绑定数据列 
     
    绑定数据列 
    按照下列表格将数据集的字段拖入对应单元格内,并作相应的设置。 
    单元格  内容  基本属性设置 
    A2 emp_sql.订购日期  从上到下 从上到下 从上到下 从上到下扩展,其余默认 
    B2 emp_sql.发货日期  从上到下 从上到下 从上到下 从上到下扩展,其余默认 
    C2 emp_sql.运货商  从上到下 从上到下 从上到下 从上到下扩展,其余默认 
    D2 emp_sql.运货费  从上到下 从上到下 从上到下 从上到下扩展,其余默认 
    E2 emp_sql.货主地址  从上到下 从上到下 从上到下 从上到下扩展,其余默认 
    2.5 计算总运货费   87 
    在 G2 单元格中填入”=E2*F2” 
    2.6 单元格的表单属性设置 
    点击 D2,右击 右击 右击 右击|表单属性 表单属性 表单属性 表单属性,出现如下对话框,勾选是否可写选项 是否可写选项 是否可写选项 是否可写选项,类型选择数字,设置如图 
     
    表单属性设置 
    设置完后显示如图 
     
    表单可写属性显示 
    3.保存预览 保存预览 保存预览 保存预览 
    保存为 
    %FineReport_HOME%/WebReport/WEB-INF/reportlets/com/doc/form/3.9.2.cpt 
    启动服务器,点击设计器右上角的填报预览,就可以进行预览填报了。 
    或者在浏览器里直接数据地址: 
    http://localhost:8075/WebReport/ReportServer?reportlet=com/doc/form/3.9.2.cpt&op=w
    rite 
     
    更多详情:http://www.finereport.com   88 
    web 报表工具FineReport 填报之合法性数据检查(三十二) 
     
     
     
    数据校验 
    如图所示,当用户在 F6 中输入了不符合条件的数据,点击数据校验 数据校验 数据校验 数据校验或者提交 提交 提交 提交时就会弹出错误对
    话框,提示输入了非法的数据 
    下面我们来看一下在 下面我们来看一下在 下面我们来看一下在 下面我们来看一下在《 《《 《用 用用 用 Web 报表工具实现网格式填报表 报表工具实现网格式填报表 报表工具实现网格式填报表 报表工具实现网格式填报表》 》》 》的基础上实现上述报表的过程 的基础上实现上述报表的过程 的基础上实现上述报表的过程 的基础上实现上述报表的过程 
    1.设计报表 设计报表 设计报表 设计报表 
    1.1 设置数据校验 
    点击报表 报表 报表 报表|填报属性 填报属性 填报属性 填报属性|数据校验 数据校验 数据校验 数据校验打开数据校验对话框,如图   89 
     
    打开报表填报属性 
    点击插入 插入 插入 插入,插入一条数据校验记录,输入如下数据   90 
     
    设置报表填报属性 
    2.保存预览 保存预览 保存预览 保存预览 
    保存为 
    %FineReport_HOME%/WebReport/WEB-INF/reportlets/com/doc/3.8.3.cpt 
    启动服务器,在浏览器中输入以下地址进行浏览: 
    http://localhost:8079/WebReport/ReportServer?reportlet=/com/doc/3.8.3.cpt 
     
     
     
     
     
     
     
     
     
     
     
     
     
    更多详情:http://www.finereport.com   91 
     
    第三章 总结 
    以上一共讲述了 FineReport 使用过程中 32 个经常涉及的报表问题,并以图文并茂的方式教
    大家如何使用 FineReport. 希望对正在学习 FineReport 报表或是对 FineReport 报表感兴趣的
    朋友能有个全面的认识。 
     
    展开全文
  • FineReport报表和水晶报表的比较 FineReport报表软件针对复杂格式的报表数据及Web报表的展现,通过多源分片、不规则分组、双向扩展来轻松拖拽做复杂格式的报表,制作报表从此摆脱了复杂的SQL和表达式,不需要...

    FineReport报表和水晶报表的比较

    FineReport报表软件针对复杂格式的报表数据及Web报表的展现,通过多源分片、不规则分组、双向扩展来轻松拖拽做复杂格式的报表,制作报表从此摆脱了复杂的SQL和表达式,不需要编程,大大提高了报表制作的效率。

    相对于水晶报表(Crystal Report),FineReport报表无论是在报表设计,数据展现,还是表单,应用集成等方面,都具有明显的优势。

     

    报表设计

    在报表设计方面,FineReport报表工具的优势主要体现在以下几个方面:

    • 多数据源

      FineReport报表设计天然支持多数据源(集),同一张报表的数据可同时来自多个数据表,多个不同的数据库,或者多个不同的用户自定义数据视图,然后在报表中可直接相互运算形成最终的报表。

      并且连接数据源的方式也多种多样,支持JDBC,JNDI数据源,如Oracle,DB2,SQLServer,MySQL等主流的数据库,自定义的程序数据源,文本数据源,Hibernate数据源,Remedy等等,同时数据源具有无限的扩展性,可以支持WebService,SOA等标准的数据。

      水晶报表(Crystal Report)在理论上只支持单数据集,对多集的支持依赖于数据库的运算能力(叉乘与联合等或写存储过程),多库一般难以支持。另外一种处理方式,就是将多数据源先变相整理成单一数据源,然后再进行其它操作,并不是真正意义上的多数据源。

    • 分组的调整,不完全分组

      分组是报表数据当中,最常见的方式。FineReport报表工具的分组,是建立在单元格的基础之上,因此删除分组,更改分组字段等操作,就只需要对单元格进行操作,与报表内其它的数据无关。另外,在很多情况下,数据并非枚举式的完全分组,而是一些固定行列,或者按段分组等形式,FineReport报表提供了用户自定义分组,只需要添加一些条件,即可达到不规则分组的目的。

      水晶报表(Crystal Report),所有的数据都被划分在条带状的模型当中,删除分组时会将相关的分组汇总单元一并删除,调整分组字段只能删掉重建,整个操作比较繁琐,且会导致重复工作。而不规则分组,在Crystal Report当中,则仅仅只是修改组名,无法修改其它跟随数据的计算。

    • 数据扩展和交叉表

      FineReport报表工具的数据扩展,是双向的,也就是行列对称,横纵方向能力一致,可以方便地制作交叉报表(多层),可同行式表一样制作复杂表头。

      水晶报表(Crystal Report)制作交叉报表的方式,是采用专门的交叉表模型,其表头是按照向导自动生成的,缺乏灵活性。

    • 报表分片

      复杂报表当中,报表分为多片的现象非常常见,即整个报表是一个大的规则的报表,但是实际上可以分为多个不规则的小区域,各个区域之间看似没有联系,但是数据之间实际可以相互关联。FineReport由于支持多数据源,以及数据的行列对成扩展,因此支持报表的各片独立重复或者相互运算,并且允许固定和变动分片的混合。

      水晶报表(Crystal Report)的单表模型不能支持分片。对于分片的报表,一种处理方法是事先编程准备数据,另一种则是靠子报表拼接来完成。处理相当繁琐,并且这两种处理方法也并非每次都能够达到要求,设计出需要的报表格式。

    • 跨行组运算

      报表中常常需要有跨行组的运算,如比上期、比去年同期等。FineReport报表的单元格层次坐标概念可以精确地引用任何一个扩展之后的单元格,然后通用地写出表达式进行这些跨行组运算。

      水晶报表(Crystal Report)只能简单地支持某些固定的跨行运算,如累积值、比上期等,更复杂的跨行组计算只能事先编程准备数据。

     

    报表展现和输出

    • 类Excel的界面风格

      FineReport报表工具的界面风格,是完全类似于Excel的,格线对齐的编辑方式,极大的便利了报表的设计和输出,并且单元格内属性比较自由灵活,可以得到格式任意复杂的报表。

      水晶报表(Crystal Report)均采用控件拖拽式绘制报表,这种方案完全没有体现表格的规律性,当表头复杂的时候,对齐非常繁琐。而且与分辨率相关,屏幕上对齐的表格,在网页上和打印时又无法对齐。

    • 输入输出

      FineReport报表支持单个或者批量导入Excel文件,这样可以由业务人员,事先画好表样,提高制作报表的效率,并且,批量导入,更加的减轻重复的工作。生成的报表文件可输出为HTML、不失真的PDF、Excel、Word、CSV、SVG和文本文件等多种样式。另外,还可生成内置的模板文件。

      水晶报表(Crystal Report)无法支持导入Excel文件,最多只能从Excel读取数据。其生成的HTML一般只能支持IE;导出EXCEL时经常只有数据而丧失格式,个别工具完成得比较仔细,但也严重依赖于表格绘制时对齐的程度,生成的文本也只包括数据而丧失格式,无法支持字符终端的报表打印需求。

    • 套打

      FineReport报表采用底图描绘,绝对定位的方式完成套打表样的绘制,用户可将要套打的票据扫描进来作为背景图,用报表设计器进行数据的位置摆放,可以精确定位数据的位置。

      水晶报表(Crystal Report)只能采用精确度量的方案,量好套打票据的尺寸来设置表格控件的大小,操作繁琐,效率很低。

    • 分页打印,分栏以及其它打印控制

      FineReport提供了全部的报表打印控制:按照分组或者其它任意的方式来进行强制分页,补足空行。

      分页时标题可重复,不仅是上表头,表格较宽的报表,其左表头也可设置分页时重复显示。

      数据可进行自由分栏,较长的报表,可以按照行分栏,显示成多列;列数较多的报表,可以使用列分栏来多行显示到同一个页面当中。

      水晶报表(Crystal Report),一般只能支持上表头重复,不可以进行强制分页,补足空行,分栏等操作。

     

    表单

    表单的回填是水晶报表(Crystal Report)完全不能支持的功能。FineReport支持基于纯HTML的表单回填,支持各种主流的浏览器。

    • 编辑风格

      表单提供普通文本编辑框、复选框、下拉列表框、下拉日历、文件上传等。

    • 自动计算

      表单可支持类似EXCEL的自动计算功能,程序根据用户的设置在前端生成JavaScript表达式完成自动计算。自动计算还可跨表,多sheet之间的相互运算。

    • 数据一致性校验

      支持对回填的数据进行合法性检查。

    • 数据的扩展

      允许报表单元格与数据库字段间任意对应,并有自动扩展的能力。支持任意格式的表单回填数据。

    • 直接回填到数据库

      用户填写的数据,都直接存储到数据库当中,无需中间环节。

    • 多级汇总填报

      表单的报表同时还是个统计表,单元格数据可以有不同的来源和去向,这样可以先从下级机构汇总出数据再加以补充修改后填写到上级数据库中。

      FineReport报表,其制表效率十倍于以国外产品为代表的传统报表工具。

    对比点FineReportCrystalReport
    应用集成后台的环境支持纯JAVA,全支持个别产品只支持Windows
    前台的环境支持纯HTML,全支持一般仅支持IE
    J2EE的应用服务器管理嵌入应用,可充分利用应用服务器各项能力独立服务器,应用服务器能力不可利用
    J2EE的WEB部署与应用统一部署单独安装部署,操作繁琐
    J2EE的应用接口丰富齐全,结合紧密通过网络协议,力度不足,统计图常采用古老的CGI方式
    Java Application集成支持非纯JAVA的不支持
    .NET的应用集成支持,独立服务支持
    页面的集成完全随意嵌入独立门户,很困难
    用户权限控制与应用程序一致独立机制很繁琐
    IDE集成能力有限支持不支持
    并发能力较强,4万单元格表在512M内存可并发50个以上基础程序对内存要求很高,并发数较少
    数据设计多数据源(集)直接间接支持
    完全分组(多层)支持支持,较繁琐
    完全交叉(多层)支持,无须专门处理支持,用专门的交叉模型
    不完全分组/固定行列支持编程准备数据
    上下分片支持,上下格式可不一致,固定变动混合格式一致的可编程准备数据,否则必须拼子表完成
    左右分片支持,固定变动混合,直接运算性能高固定列的可编程准备数据,采用DB叉乘性能很差
    跨行组运算支持,随意通用固定的简单跨行运算,跨组不支持
    独立格运算支持,随意通用固定几种运算,来自DB的要专门处理
    主从报表无须子表概念即可完成须用子表,数据无法沟通
    子表多层任意,格线可对齐可缩放,横纵向均可自动摆位一般两层,横向表不可自动摆位
    参数与宏均支持仅支持参数
    报表展现基本方案EXCEL网格式,方便快捷控件式,对齐繁琐
    导入EXCEL支持不支持
    套打绘制底图描绘精确度量
    报表输出格式标准HTML,PDF,word完全不失真的EXCEL,带格式文本PDF,特殊HTML,丧失格式的EXCEL,无格式文本
    统计图输出格式GIF,JPG,PNGGIF,JPG
    打印分页分栏横纵向均可,强制分页仅支持纵向,且不可分栏
    其它打印控制一纸多页,补空行,缩放缩放
    表单编辑风格文字编辑、下拉选择等不支持
    自动计算支持
    合法性检查支持
    数据库对应随意自动,行/列/交叉均可
    多级汇总填报支持

     

    部署和应用集成

    • WEB部署

      FineReport报表工具的服务程序以JAR包形式出现,可与应用程序统一打成包一起部署在应用服务器上,安装非常轻松。

      水晶报表(Crystal Report)的独立服务器方案需要单独安装,报表文件也须单独部署,无法和应用程序一起更新。

    • 环境的支持

      FineReport报表采用纯JAVA开发,无论报表设计器还是服务器均支持所有可部署JDK的操作系统、有JDBC接口的数据库,特别对于UNIX/LINUX的支持与Windows是完全一样的。而非JAVA的报表工具在这方面要困难得多。

    • 丰富的API接口

      FineReport报表工具向应用程序员提供了结构清晰,丰富的JAVA API调用,可以对报表进行扩展和深度控制。

      水晶报表(Crystal Report)采用独立服务器方案,应用接口通过网络协议完成,接口数量稀少、控制力度弱,而且严重影响性能。统计图等HTML外置资源还常常采用原始的CGI方式,会在文件系统中留下难以管理的临时文件。

    • 页面的集成

      FineReport报表生成的HTML可在应用页面(JSP)中随意嵌入摆放,对从浏览器端完全看不出集成了第三方产品。

      水晶报表(Crystal Report)均有自己独立的门户机制,很难将生成的HTML随意嵌入到页面中,常常必须带出其产品本身的报表管理界面,难以做到无缝嵌入。

    展开全文
  • FineReport报表使用

    2017-03-16 20:41:00
    FineReport报表是帆软公司推出的可以嵌入java的免费报表。 FineReport有2部分组成,一有c/s端的报表工具制作cpt结尾的报表文件;二是 java调用报表的web程序。 这里主要说web程序的使用。 Struts2与Servlet共存...
    FineReport报表是帆软公司推出的可以嵌入java的免费报表。
    FineReport有2部分组成,一有c/s端的报表工具制作cpt结尾的报表文件;二是 java调用报表的web程序。
    这里主要说web程序的使用。
    Struts2与Servlet共存问题:
    理论上二者是无法共存的,因为Struts2的拦截器StrutsPrepareAndExecuteFilter如果配置为
    <filter-mapping>
      <filter-name>struts2</filter-name>
      <url-pattern>/*</url-pattern>
     </filter-mapping>
    在访问Servlet时会拦截到,误认为Servlet是一个Action。
    处理方法:
    1、配置Struts的<filter-mapping>访问路径,这Servlet还正常配置。
    <filter-mapping>  
    <filter-name>struts2</filter-name>  
    <url-pattern>*.action</url-pattern> 
    </filter-mapping> 
    <filter-mapping>  
    <filter-name>struts2</filter-name>  
    <url-pattern>*.jsp</url-pattern> 
    </filter-mapping> 
    <filter-mapping>  
    <filter-name>struts2</filter-name>  
    <url-pattern>/user/*</url-pattern> 
    </filter-mapping>
    2、在Struts2的配置文件中添加如下代码。
    <constant name="struts.action.extension" value="action"></constant>
    1、直接部署到web service中,通过链接调用报表。
    安装完FineReport报表后,在安装路径文件夹下有WebReport文件夹,这个文件夹就是FineReport的java调用程序。
    制作好的报表文件存放在WebReport\WEB-INF\reportlets路径下。
    通过web.xml文件配置的Servlet调用报表。
      <servlet>
        <servlet-name>ReportServer</servlet-name>
        <servlet-class>com.fr.web.ReportServlet</servlet-class>
        <load-on-startup>0</load-on-startup>
      </servlet>
    
      <servlet-mapping>
        <servlet-name>ReportServer</servlet-name>
        <url-pattern>/ReportServer</url-pattern>
      </servlet-mapping>
    访问路径:http://localhost:8075/WebReport/ReportServer?reportlet=WorkBook13.cpt
    2、嵌入到程序中
    1. 描述
    由报表应用目录结构章节可知,若希望将报表部署到已有的工程中时,需要按照下图所示的目录结构,将报表相关的文件拷贝到相应目录:
     
    2. 复制目录编辑
    2.1 全部复制
    为了简便,可以直接将%FineReport_HOME%\WebReport\WEB-INF目录下面的classes,lib,plugins,reportlets,resources五个目录复制到%Tomcat_HOME% \webapps\jsp-examples\WEB-INF下。
    注意:%FineReport_HOME%\WebReport\WEB-INF\classes文件夹下面可能会放置一些网络报表的class文件,在和您的工程集成时并无冲突。有关网络报表的介绍,可以在二次开发文档中找到。
    2.2 部分复制
    也可以选择性的只复制必要性文件至已有工程中。
    1)必须复制的文件
    fr-chart-8.0.jar、fr-core-8.0.jar、fr-performance-8.0.jar、fr-platform-8.0.jar、fr-report-8.0.jar:包含了报表服务的所有功能,必须拷贝至WEB-INF\lib下;
    fr-third-8.0.jar:包含了报表服务引用的第三方插件,必须拷贝至WEB-INF\lib下;
    plugin-com.fr.plugin.mdnl-0.jar、plugin-com.fr.plugin.mdnl-1.jar、plugin-com.fr.plugin.mdnl-2.jar、plugin-com.fr.plugin.oldui-1.jar、plugin-com.fr.plugin.sap-0.jar、plugin-com.fr.plugin.sap-3.jar等plugin开头的jar:包含了报表插件管理里安装的所有插件,必须拷贝至WEB-INF\lib下;
    plugins:该文件夹包含了报表管理里安装的所有插件的jar包和配置信息,拷贝至WEB-INF下面。
    reportlets:该文件夹为FineReport服务器规定的,不能修改,且必须为小写,其下可以建立子目录,所有报表模板cpt文件必须保存在reportlets文件夹下,且reportlets文件必须放在WEB-INF下面;
    resources:该文件夹也是FineReport服务器规定的,不能修改,且必须为小写,下面包含了报表服务器的配置信息,拷贝至WEB-INF下面。
    以上文件或文件夹是必须拷贝到已有应用目录下的。
    2)选择性复制的文件
    classes:该文件夹是应用服务器规定的,主要作用是存放.class文件。若对FineReport进行了二次开发,如自定义函数、程序数据源、程序网络报表等,也需要将编译后的class类文件拷贝到该文件夹下;
    数据库驱动包:若报表中使用了JDBC连接了数据库,需要将对应的数据库驱动包如Oracle数据库的驱动ojdbc14.jar拷贝到WEB-INF\lib下,其他数据库驱动同样;
    3. 修改web.xml文件编辑
    在已有工程的web.xml中添加相应的servlet与servlet-mapping子元素。
    将%FineReport_HOME%/WebReport/WEB-INF下的web.xml中如下的部分复制到%Web_home%/webapps/Web工程名/WEB-INF下的web.xml中,在最后一个servlet之后插入:
    1.    <servlet>  
    2.        <servlet-name>ReportServer</servlet-name>  
    3.        <servlet-class>com.fr.web.ReportServlet</servlet-class>  
    4.        <load-on-startup>0</load-on-startup>  
    5.    </servlet>  
    6.    <servlet-mapping>  
    7.        <servlet-name>ReportServer</servlet-name>  
    8.        <url-pattern>/ReportServer</url-pattern>  
    9.    </servlet-mapping>  
     
    如上代码复制放到如下目录下面的配置文件里面结果如下:
     
    注:web.xml中对于元素出现的顺序敏感。servlet必须出现在servlet-mapping标志之前。所有将所有servlet集合放置在servlet-mapping之前以便于管理与程序调用。
    4. 检测是否部署成功编辑
    可以通过浏览报表确定是否部署成功。
    重新启动Tomcat, 启动浏览器,在地址栏输入
    http:/ip:服务器端口号/项目所在目录/ReportServer,能成功进入下图所示页面,则表明FineReport应用集成web应用并部署Tomcat服务器成功:

     

    转载于:https://www.cnblogs.com/gynbk/p/6561514.html

    展开全文
  • FineReport报表软件学习

    2018-05-30 11:50:39
    1. 解决初始加载图表联动时选择主图表时,联动图表内容无数据的...2. 解决超级链接参数传递问题分析:超级链接中的参数设置,参数名为对应网络报表的参数,值可以设置当前报表的参数。途径:在当前报表的某个单元格...

    1. 解决初始加载图表联动时选择主图表时,联动图表内容无数据的情况

    分析:联动图表是根据主表的分类名和系列名来动态获取其中,从而使联动图表变换内容。

    途径:在主表的数据绑定中的系列名选择组织ID,同时在特效的超链接的参数加入参数名:origin,值选择“系列名”。

    2. 解决超级链接参数传递问题

    分析:超级链接中的参数设置,参数名为对应网络报表的参数,值可以设置当前报表的参数。

    途径:在当前报表的某个单元格建立超链接,选择网络报表,并在其参数设置中先点击模板参数标记P,之后在参数列表便会出现目标报表的参数名,现在只需设置需要传递的参数值就可,如在origin输入$origin,即传递本报表的组织信息值给目标报表,在时间输入$time,即传递本报表的时间参数给目标报表。

    3. 表格中上升/下降箭头标记制作

    途径:选择某一个空单元格,在条件属性下添加背景图和公式;可参考demo/analytics/financial/商场综合指标分析

    4. 表格标题行固定其他行可滚动问题

    分析:明细表中,表的标题行需固定,具体明细数据可以滚动。
    途径:选择标题行的某一个单元格,然后选择工具栏右侧倒数第二个“冻结”,在重复与冻结设置中,勾上“重复标题行从第1行至第1行”,和“冻结第1行至第1行”,其他不勾选。

    隐藏滚动条:具体参考http://help.finereport.com/doc-view-2425.html

    5. 条形图降序排列显示问题

    途径:帆软条形图要想降序排列显示,需要将结果集进行升序排列

    6. 解决列表固定显示5行,不足五行赋值为null时,同行为null自动合并的问题

    途径:选择单元格,在单元格元素的数据设置选为列表(默认是分组)

    不足5行赋值为null的SQL语句:

    select * from
    (select to_char(组织ID),组织,to_char(计划车次数),to_char(实际车次数) ,CONCAT(to_char(车次完成率*100),'%') from  dbdata 
    UNION ALL
    select NULL,NULL,NULL,NULL,NULL from dual
    UNION ALL  
    select NULL,NULL,NULL,NULL,NULL from dual 
    UNION ALL  
    select NULL,NULL,NULL,NULL,NULL from dual 
    UNION ALL  
    select NULL,NULL,NULL,NULL,NULL from dual 
    UNION ALL  
    select NULL,NULL,NULL,NULL,NULL from dual 
    )t
    WHERE rownum<=5 and (select count(*) from dbdata)<=4

    展开全文
  • 本章主要介绍一个报表中的列设置超链接,链接到另一张报表中,前提是两张报表在同一目录下,这样比较好处理些,如果涉及到不同目录的两个报表进行超链接,这个需要自己研究一下,肯定是可以的。 一、准备第一张报表...
  • finereport 报表工具 教程

    千次阅读 2014-08-19 17:13:20
    推荐报表工具 制作cpt后放入专门的服务器 http://10.6.0.198/wr/ReportServer?reportlet=yn/xs/notice_stutzs.cpt&__cache__=true&info_id=1587&__filename__=[4e8c][7ea7][5bfc][822a][540d]
  • FineReport报表设计功能优势

    千次阅读 2008-10-09 17:53:00
    FineReport报表软件是针对复杂格式的报表数据及Web报表的展现,通过多源分片、不规则分组、双向扩展来轻松拖拽做复杂格式的报表,做报表从此摆脱了复杂的SQL和表达式,不需要编程,大大提高了报表制作的效率。...
  • 提取数据源,设计报表样式。 模板–模板参数,新建模板参数,为参数添加组件: ...建立主从表关联。 为需要填入的字段增加相应的控件。 模板-填报报表属性-新增内置SQL,将字段同单元格最对应。 ...
  • FineReport报表和J2EE应用的集成

    千次阅读 2016-04-27 17:06:28
    FineReport是一个纯Java软件,因此对于J2EE的项目,可以做到无缝集成。 报表服务器并非物理概念的服务器,而是以一个标准的J2EE应用的形式或者jar包的形式提交给程序。应用程序通过url来调用报表,或者通过开放的...
  • 打开finereport并且创建一个决策报表 随便使用windows记事本创建一个txt文件(创建一个excel文档也是可以的),有两个字段月份和分量(如下图所示 在finereport下方新建文件数据集; 选择我们刚才创建
  • 报表开发FineReport优化报表取数1.取数原理设计器拼出最终的SQL,将SQL语句传给数据库,数据库执行,将数据返回给设计器。...2.优化SQLFineReport报表的数据集采用的是表模型,也就是说通过SQL这种DSL语言,从数据库...
  • 这里分享帆软报表设计器FineReport的实现方案,结合实际工作中遇到的的相关内容。 我本地常用数据库是MYSQL,所以比较了解一点,所以实现方式也是基于mysql的。首先了解一下MySQL自带的information_schema数据...
  • 乘着研究生还没有入学来打打暑假工,主要为财务做一些企业级的web报表,使用的软件是finereport,数据库用的orcel。 问题 第一天汇总数据就遇到了问题,leader说财务报表比较严格,数据表头必须固定,而填报时的数据...
  • 建立一个数据源连接。 这个Mysql的连接没什么可讲的,就是后面的连接参数需要注意一下,useUnicode=true&amp;characterEncoding=utf8,指定一下编码,否则以后的中文会出问题。 因为要做移动端的设计,...
  • Finereport8.0的报表操作

    2019-01-18 14:59:54
    Finerepot用法很多,我主要是用的其中一种(也不是很熟练,主要是一些很固定的操作,名字对应基本就可以),即通过finereport工具将数据库和浏览器动态连接 达到在浏览器中修改数据存到数据库,浏览器读取数据库来...
  • FineReport软件是用于制作报表的,由于工作需要,也学习了如何使用,今天来讲一下。 首先是需要连接数据库,操作如下: 初始界面如图 创建一张工作簿,点击左下角的加号创建数据库查询 点击圈住的那个标签...
  • 下面以报表工具FineReport为例介绍。 思路: 通过将模版设置为组织树报表,然后通过设置树节点按钮,最好通过数据分析预览或者form表单预览即可查看效果。 步骤: 1、 初步建立模板  建立模板就相当于...
  • FineReport是一个纯Java软件,因此对于J2EE的项目,可以做到无缝集成。 报表服务器并非物理概念的服务器,而是以一个标准的J2EE应用的形式或者jar包的形式提交给程序。应用程序通过url来调用报表,或者通过开放的...
  • html5 动态图表FineReport优化报表取数1.取数原理设计器拼出最终的SQL,将SQL语句传给数据库,数据库执行,将数据返回给设计器。...2.优化SQLFineReport报表的数据集采用的是表模型,也就是说通过SQL这种DSL语...
  • 但是需求千变万化,而FineReport本身所具备的功能是报表中比较典型的,一些比较有个性的功能无法实现,那么就需要应用开发人间使用网页脚本、API接口等进行深入的开发,而这一点,FineReport报表工具是支持的,那么...
  • 如何用FineReport制作一张报表(一)

    千次阅读 2019-10-22 14:28:05
    这篇文档通过制作一张简单普通报表,让大家可以快速了解 FineReport 报表的制作流程。 1.1 报表设计流程图 1.2 第一张报表效果 在制作这张简单普通报表之前,我们先来看一下报表最终呈现出来的效果,然后我们再...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 763
精华内容 305
关键字:

finereport报表建立