FineReport表格软件教程:[3]报表设计示例

 时间:2024-10-17 04:45:01

下面通过FineReport表格软件来展示几个经常用到的报表样例,来实际领会单元格扩展和父子格设置。

工具/原料

表格软件FineReport7.1.1

大小:148.2M 适用平台:windows/linux

行式报表—数据纵向扩展

1、行式报表即清单式明细表,是最常见也是最简单的报表样式,如下图效果:行式报表利用了报表当中的纵向扩展属性,展现了一个列表式的表格,该节通过介绍行式报表的实现过程来体验数据的扩展。

FineReport表格软件教程:[3]报表设计示例

2、准备数据数据准备包括两步,准备数据连接和数据集,FineReport安装exe的时候会内置一个名为FRDemo的数据连接,连接的是工程下的一个WebReport的ACCESS数据库,接下来文档中所有的示例数据全部来源于该数据库。连接数据库FRDemo,我们使用内置数据库表订单来制作一张订单列表。新建工作薄,添加数据集ds1,SQL语句为SELECT * FROM 订单。

3、模板设计表样设计根据实际情况设计表样,如下图:

FineReport表格软件教程:[3]报表设计示例

4、字段绑定根据表样中的字段标题将数据集中的字段拖曳至相应单元格中,如下图:

FineReport表格软件教程:[3]报表设计示例

5、数据显示方式FineReport数据显示有3种方式:列表、分组和汇总。

FineReport表格软件教程:[3]报表设计示例

6、列表:如上效果图所示,即数据以列表的方式展示,不做任何分组处理;分组:指后面的单元格会根据前面的单元格的数据,进行数据过滤分组,合并相同项显示;汇总:指对单元格中的数据进行汇总计算,汇总包括求和、平均、最大值、最小值和个数,只针对单元格中字段时数值类型的单元格。在效果图中看到行式报表是以列表的方式展示的,故需设置订单ID字段的数据显示方式设置为列表。注:只需要将最左边的单元格订单ID的显示方式设置为列表即可,在父子格中介绍了,单元格会默认将其左侧纵向扩展的单元格作为父格,那么A2是B2的父格,B2是C2的父格,以此类推,经过数据传递,可以看到所有的单元格的父格均是订单ID所在的A2单元格,所以只需要将A2的数据显示方式设置为列表,其他的单元格会跟随该单元格来显示数据。

7、单元格样式设置由于数据库中运货费的是小数形式,为了整齐美观,可设置其数据格式保留两位小数,选中F2单元格,在右侧下方的单元格属性表中选择单元格属性表-样式,在格式里面选择数字,并设置其保留两位小数,如下图:

FineReport表格软件教程:[3]报表设计示例

分组报表—父子格

1、分组报表就是将报表中的数据按组显示,即将数据列中相同项合并为一组显示,如下图最简单的分组报表:

FineReport表格软件教程:[3]报表设计示例

2、新建报表,添加数据集新建工作簿,添加数据集,SQL语句为:SELECT * FROM [销量]。

3、拖拽数据列将数据列拖拽入相应单元格(默认的就是分组显示,因此不需要做其他设置),如下图所示:设置销量数据列为汇总-求和,其余默认。预览便可看到上方的分组效果了。

FineReport表格软件教程:[3]报表设计示例

4、总结由该例子可以看出:拖拽的数据列默认就是分组显示的,会将相同项合并起来;数据列在同一行时,会产生默认的父格关系:同行的单元格会以其左侧相邻的扩展格为父格,就如这边销售员默认父格为地区,销量默认父格为销售员;数据列在同一行且来自于同一数据集时,子格会自动将父格作为过滤条件,形成一种附属关系,就如这边销售员会自动罗列在所属地区下。

交叉报表—数据横向扩展

1、交叉表,也是常见的基本报表类型,分组报表只是从上到下将数据分组显示,而交叉表则是从上到下、从左到右都将数据分组的报表,如下图:FineReport天然支持行列对称,设计交叉表的方法也很简单。

FineReport表格软件教程:[3]报表设计示例

2、新建工作簿,添加数据集新建工作薄,添加数据集ds1,SQL语句为SELECT * FROM [销量]。

3、制作交叉表设计好表样后,将数据列拖入对应单元格:

FineReport表格软件教程:[3]报表设计示例

4、纵表头:地区与销售员默认纵向扩展实现从上到下分组;横表头:将产品类型与产品设置为从左到右扩展,让产品横向分组,实现横表头;数据:根据父子格的概念,销量会以销售员为左父格,产品为上父格,自动匹配出销售员与产品对应的销量。预览即可看到上图交叉表。注:此处销售员与产品对应的销量是唯一的,因此,直接将销量拖入单元格即可。

自由报表—自定义父子格

1、内置的数据库中有一张雇员表,他有很多字段,这些字段都要显示在报表中,如果把它显示在报表的一行上,看起来会很拥挤,如果报表中要显示图片字段,把图片和非图片字段都显示在报表的同一行上,会严重的影响报表的美观,这个时候就可以做成自由格式的报表。如下面的订单统计自由报表:

FineReport表格软件教程:[3]报表设计示例

2、可以看到,自由报表不像网格式报表或者分组报表那样规则,其特点是数据库表中的一条记录不是分布在一行上,而是散放在多行上,记录分块或者分页显示,以提高报表的可读性和美观性。

3、新建工作簿,添加数据集新建工作薄,添加数据集ds1,SQL语句为SELECT * FROM [订单]。

4、表样设计自由格式报表相当随意,按照需要的样式在对应单元格中拖入数据列即可,如下图所示:

FineReport表格软件教程:[3]报表设计示例

5、父格设置由于数据列不在同一行上,因此不会自动形成父子关系,我们希望客户ID、订购日期等数据列能附属于订单ID而扩展,同时报表标题及数据列标题也会跟随订单ID的扩展而复制。将B1、B2至B6单元格,父格设为订单ID单元格。同样,C3至C6单元格,也设置父格为订单ID单元格。预览即上图效果。注:根据父子格原理,D3至E6可以不另设父格,因为他们会自动将C3至C6单元格为左父格。

纵向分组报表

1、如下图所示,数据按照地区字段进行了分组,分组后,地区字段作为组的标题,自成一行,这样的报表我们称之为纵向分组报表。

FineReport表格软件教程:[3]报表设计示例

2、实现思路通过父子格章节,我们知道,数据列在同一行时会自动形成父子关系,若数据列都来自于同一个数据集,就会自动形成附属关系,产生分组效果。而纵向分组报表,组头单独一行,数据列不在同一行,组头与数据间就没有父格关系了,即其他数据列就不会将地区字段作为过滤条件了。因此,这样的分组报表,只要将数据字段的父格重新设置为组头字段,就会产生分组效果了。

3、打开报表修改报表样式将销售员与销量字段剪切至下一行,此时预览可以看到,数据与组头并没有附属关系。

FineReport表格软件教程:[3]报表设计示例

4、设置父格为了使数据分组显示,选中销售员数据列单元格,设置其左父格为地区单元格。由于地区字段作为组的标题,为了凸显标题,可改变地区字段所在行的背景色,点击单元格属性表-样式,选择背景选项,设置背景色为黄色,如下图:

FineReport表格软件教程:[3]报表设计示例

分组汇总

1、在分组报表中往往需要对组内的数据进行数量汇总,如下图对每个地区的销售额进行汇总:

FineReport表格软件教程:[3]报表设计示例

2、打开报表设置父格的汇总在下面加上汇总一栏,对销量进行求和,并设置“小计”单元格的左父格为地区单元格:预览模板,可以看到“小计”一栏跟随父格地区的扩展而复制,即对扩展出来的每个地区都进行一次小计,图中蓝色部分。

FineReport表格软件教程:[3]报表设计示例

3、不设置父格的汇总再加上一栏汇总,不进行父格设置,“合计”单元格无父格:预览模板,可以看到“合计”一栏仍然在最下面,是在上方单元格全部扩展出来后才显示,图中红色部分。

FineReport表格软件教程:[3]报表设计示例
  • 如何在FineReport报表设计报表单元格加下拉框
  • 如何使用FineReport报表工具添加模板参数并使用
  • 在ultraedit中如何将空格变成下划线
  • web报表控件FineReport数据列过滤条件常用处理
  • oracle视图view
  • 热门搜索
    争当美德少年手抄报 我爱我家手抄报图片 儿童手抄报模板 爱国手抄报资料 关于三月三的手抄报 关于古诗词的手抄报 爱国主义手抄报图片 有关科学的手抄报 关于环保手抄报的内容 小年手抄报