陈小春古惑仔图片带字:决策分析报表教程全攻略

来源:百度文库 编辑:偶看新闻 时间:2024/05/01 06:15:16

概述

报表在展示数据的同时,可以运用仪表盘、趋势图、对比图、三维图等多样化形式展示数据;强大的统计分析函数实现累计、环比、排名等各种业务计算;切片切块多个不同分析维度灵活组合多角度展示数据;高亮不同颜色标识分析不同指标等等,真正地让数据“活起来”,让业务员精确地掌握业务发展趋势,让决策层快速掌握业务运营全局状况。本电子书将对几类常用的决策分析报表进行详细的介绍。

注:若您对报表软件并不熟悉,建议您先查阅有关FineReport的其他相关资料。

 

 

 

 

 

 

 

 

 

 

 

 

 

折叠式动态报表…………………………………… 3

块报表…………………………………………… 6

表制作…………………………………… 36

 

 

 

 

 

 

 

 

 

 

 

 

 

 

折叠式动态报表

FineReport实现了树形折叠式报表,可以在bs浏览界面中动态地展开或收缩某组数据。树形展开的折叠报表可以用控件设置|按钮|树节点按钮来制作,预览树形展开的折叠报表时,需要在报表的分页预览界面加参数op=sheet,即报表分页预览的地址后加&op=sheet,效果如下:

下面以一个简单的例子来说明。  

1. 打开模板

打开模板:

%FR_HOME%\WebReport\WEB-INF\reportlets\doc\Tutorial\advanced\Group_Report\tree.cpt

2. 修改模板

修改模板,将A3、A4单元格分别剪切至B3、C4,如下图:

数据列设置如下:此时我们预览如下:

3. 增加树节点按钮

我们通过设置树节点按钮来实现折叠树,分别右击单元格A2、B3,选择控件设置|按钮类型,按钮类型选择“树节点按钮”。

设置如下:

4. 保存预览

保存模板至%FR_HOME%\WebReport\WEB-INF\reportlets\doc\Tutorial\advanced\Group_Report\Autotree.cpt

点击分页预览,并在浏览器url后面加上&op=sheet,效果如下:

 

由此我们可以看出,动态折叠树的设计思路是点击主格时控制附属于该组的子项内容展开与折叠,由此达到数据分析的效果。

由于我们是通过按钮控件实现该功能的,而普通的分页预览是不会将控件显示出来,需要在op=sheet状态下才能显示。

分块报表

分块报表,即将几种类型的报表合并按照仪表板式显示,是dashboard报表的一种。

提到Dashboard,大家马上想到的往往是汽车仪表盘。其实,Dashboard是一个覆盖了远远超过一种显示方法的概念和理念。

作为突破了纸张限制和超越了打印的界面——Dashboard,它频频出现在一些大型企业的信息应用系统中。

FR创新性地使用一个控件——网页框来实现如下分块报表的制作。

上面四个模块对应四张模板,我们将四张模板分别用网页框控件嵌入到一张模板中即可。下面我们来看上述报表的实现方法:

1. 收入利润图表

1.1 连接数据库FRDemo

1.2 设计模板

1.2.1 新建报表

1.2.2 添加数据源

新建数据集ds1,SQL语句为

SELECT * FROM 订单,订单明细

where 订单.订单ID=订单明细.订单ID

and year(订购日期)=1998 

and month(订购日期)=5

即选择两张表中订购日期在1998年5月份的相关数据。

1.2.3 绑定数据列

如下将数据集的字段拖入对应单元格内,并作相应的设置:

1.3 建立图表

1.3.1 合并单元格B5—G18

1.3.2 选择图表类型

右击,选择单元格元素|图表,弹出图表向导对话框,选择柱形图。

1.3.3 绑定图表数据源

点击下一步设置图表数据源,选择图表数据区域|数据区域,按照下图绑定格子数据源

1.3.4 数据系列设置

选中图表区域,右击选择设置数据系列格式

按照下图,添加透明度、标签内容和标签格式等属性。

1.4 添加图表标题

合并B4—G4单元格,根据图表中柱状图的位置给图表添加标题:“营业收入     营业利润”。

1.5 设置1-3行行高设置为0,A列列宽设置为0

1.6 根据下图对报表的样式进行设置

1.7 保存模板

将模板保存为:

%FR_HOME%\WebReport\WEB-INF\reportlets\demo\analytics\dashboard\payment.cpt

2. 公司雇员构成占比图表

2.1 连接数据库FRDemo

2.2 设计模板

2.2.1 新建报表

2.2.2 添加数据源

新建数据集ds1,SQL语句为

SELECT year(now())-year(birthdate) as age,

sex,empid,qualification FROM EMPLOYEE

新建数据集ds2,SQL语句为

SELECT '小于25' as age,empid FROM EMPLOYEE

where year(now())-year(birthdate)<25

union

SELECT '25岁到35' as age,empid FROM EMPLOYEE

where year(now())-year(birthdate)>=25

and year(now())-year(birthdate)<35

union

SELECT '大于35' as age,empid FROM EMPLOYEE

where year(now())-year(birthdate)>=35

2.2.3 添加报表参数

选择报表|报表参数,添加一个参数名为para的参数,如下图:

2.2.4 绑定数据列

在B1单元格内输入公式:

=if(para = 1, ds1.group(sex, true, false), if(para  = 2, ds1.group(qualification, true, false), if(para = 3, ds2.group(age, true, false), ds1.group(sex, true, false))))

在C1单元格内输入公式:

=if($para = 1, count(ds1.select(empid, sex = B1)),  if(para = 2, COUNT(ds1.select(empid, qualification = B1)), if(para = 3,  count(ds2.select(empid, age = B1)), count(ds1.select(empid, sex = B1)))))

上面的数据列表示:根据参数的变化,B1中数据列不同,且C1根据B1做相应数据列的汇总。

2.2.5 建立图表

合并单元格B2—F11,右击选择单元格元素—>图表,弹出图表向导对话框,选择 三维分离饼图。

点击下一步设置图表数据源,选择图表数据区域>数据区域,按照下图绑定格子 数据源。 

选中图表区域,右击选择设置数据系列格式

按照下图,添加标签内容和标签位置属性。

2.2.6 添加图表类型

选择图表区域,右击选择管理图表类型;

添加柱形图和条形图,并分别设置数据系列格式。

2.3 参数设计

2.3.1 选择默认的参数界面

参数控件选择单选按钮组,调整布局如下

2.3.2 控件设置

按照如下格式设置参数控件:

添加事件编辑:

添加代码this.options.form.getWidgetByCell("F2").fireEvent("click")。意义:参数控件的状态改变会执行自动查询。

2.3.3 设置查询按钮控件为不可见

2.4 条件属性

右击B1单元格,选择条件属性,添加如下条件属性

2.5 按照下面的效果调整报表样式

2.6 保存模板

将模板保存为:

%FR_HOME%\WebReport\WEB-INF\reportlets\demo\analytics\dashboard\stuff.cpt

3. 销售业绩top10

3.1 连接数据库FRDemo

3.2 设计模板

3.2.1 新建报表

3.2.2 表样设计

按照下图设计好报表的基本框架

3.2.3 添加数据源

新建数据集ds1,SQL语句为:

SELECT 订单明细.单价*订单明细.数量 as 收入,订单明细.进价,订单

明细.折扣,订单.* FROM 订单,订单明细

where 订单.订单id=订单明细.订单id

3.2.4 绑定数据列

如下将数据集的字段拖入对应单元格内,并作相应的设置:

双击C4单元格,添加过滤条件,过滤出1998年5月份的收入数据:

双击D4单元格,添加过滤条件,过滤出1997年5月份的收入数据:

选择F4单元格,右击添加如下三个条件属性,如果E4>0,添加背景条件 ;如果 E4=0,添加条件背景 ;如果E4<0,添加条件背景

双击B4单元格,选择高级选项:

上面排列顺序一项,选择降序,点击后面的编辑按钮,输入公式:SUM(ds1.select(收入,货主地区==$$$&&year(订购日期)==1998&&month(订购日期)==5))                                 

结果筛选集一项,选择前N个,并在后面编辑框中输入:10.;即选择前10个结果。

3.3 按照下面效果设置报表样式

3.4 保存模板

将模板保存为:

%FR_HOME%\WebReport\WEB-INF\reportlets\demo\analytics\dashboard\top10.cpt

4. 产品收入线构成图

4.1 连接数据库FRDemo

4.2 设计模板

4.2.1 建立格子数据源

新建数据集ds1,SQL语句为:

SELECT 类别名称,订单明细.单价*数量 as 收入,订购日期 FROM 产品,类别,订单明细,订单where 类别.类别ID=产品.类别ID

and 产品.产品ID=订单明细.产品ID

and 订单.订单ID=订单明细.订单ID

and year(订购日期)=1998

and month(订购日期)=5

绑定数据列,看如下表:

表样如下图:

4.2.2 建立图表
合并单元格A4—F16,右击,选择单元格元素|图表,弹出图表向导对话框,选 择柱形图:

点击下一步设置图表数据源,选择图表数据区域|数据区域,按照下图绑定格子数据源:

4.2.3 设置数据系列格式

选中图表数据区域,右击选择设置数据系列格式,添加如下属性

4.2.4 添加数据点提示

选中图表空白区域,右击选择数据点提示

4.2.5 添加图表标题

合并单元格A2—F3,输入“产品收入线构成”。

4.3 隐藏数据列

选择单元格B1,右击选择条件属性,添加行高为0的条件属性,将数据列所在行隐藏

4.4 按照下面的预览效果对图表样式进行设置

4.5 保存模板

将模板保存为:

%FR_HOME%\WebReport\WEB-INF\reportlets\demo\analytics\dashboard\product.cpt

5. 总表——dashboard

5.1 设计模板

5.1.1 新建报表

5.1.2 表样设计

按照下图设计好报表的基本框架:

在A1单元格内输入“DashBoard:1998年5月统计”,居中调整字体大小跟颜色,显示如下:

5.2 添加网页框控件

5.2.1 选择A3单元格,右击,选择控件设置,选择网页框

需要在单元格A3中加载报表payment.cpt,所以设置控件名为1,在地址栏中输入:

${servletURL}?reportlet=demo/analytics/dashboard/payment.cpt

 

5.2.2 选择B3单元格,添加如下网页框

控件名为2,地址:

${servletURL}?reportlet=demo/analytics/dashboard/top10.cpt

5.2.3 选择A4单元格,添加如下网页框

控件名为3,地址:

${servletURL}?reportlet=demo/analytics/dashboard/stuff.cpt&op=form

5.2.4 选择B4单元格,添加如下网页框

控件名为4,地址:

${servletURL}?reportlet=demo/analytics/dashboard/product.cpt

5.3 分页预览并保存

将模板保存为:

%FR_HOME%\WebReport\WEB-INF\reportlets\demo\analytics\dashboard\dashboard.cpt

点击分页预览,在地址栏中添加:&op=form

效果如下:

上图中存在滚动条,这是因为在网页框中加载的报表纸张大小超过了单元格的大小。

如果需要不显示滚动条,需要对每张报表进行一些设置;

打开其中任意一张报表,选择工具栏上面的页面设置,在弹出的对话框中进行设置:

 

多维度报表制作 

用户利用报表分析数据,往往希望站在不同的角度对数据进行观察分析;这样的需求在FR报表中体现出来就是给一组按钮,代表用户需要的不同的观察角度,然后点击不同的按钮的时候就会显示出不同的报表,这些报表都是根据用户希望观察的不同角度制作出来的分析报表。

我们可以参考FR产品演示|数据分析|多维度营收分析的报表:

点击总体概况按钮:

点击按时间统计按钮

还可以点击如下等等按钮,查看你需要的报表:


如上报表的设计思路:在一张报表上将制作出上面的按钮,可以把每个按钮当成报表中 的一个参数,点击某一个按钮即选择某一个参数时,会展示相应的报表;现在我们要做的就是怎么将这么多张报表放在一张报表中通过选择参数来展现。

FR提供了网页框控件,用户可以通过设置参数,选择不同的报表通过iframe的方式嵌入到一张主表中。报表模板见:

%FR_HOME%\WebReport\WEB-INF\reportlets\demo\analytics\multi_report文件夹下。

下面我们来看看这种报表的具体制作方法:

总体营收情况报表

时间营收分析报表

地区营收分析报表

各产品营收分析报表

各城市营收分析报表

总报表

 

1. 总体营收情况

按照日期、订单货主城市、产品类别将对应的营业额、利润、和排名直接展现出来,从整体上把握公司的营收情况。报表结构如下:

1.1 准备报表数据集

新建数据集ds1,SQL语句为:

SELECT

订单明细.产品ID as 订单明细_产品ID,

YEAR(订单.订购日期) AS 订单_订购日期,

订单.货主城市 AS 订单_货主城市,

订单.货主地区 AS 订单_货主地区,

sum(订单明细.单价*订单明细.数量*(1-订单明细.折扣)) as 营业额,

sum(订单明细.进价*订单明细.数量) as 成本

FROM

订单 订单 INNER JOIN 订单明细 订单明细 ON 订单.订单ID = 订单明细.订单ID

group by

YEAR(订单.订购日期),订单.货主城市,订单.货主地区,订单明细.产品ID

取出来的数据结构如下:

新建数据集ds2,SQL语句为:

SELECT

产品.产品名称 AS 产品_产品名称,

产品.产品ID AS 产品_产品ID,

类别.类别名称 AS 类别_类别名称

FROM

产品 产品 INNER JOIN 类别 类别 ON 产品.类别ID = 类别.类别ID

where

类别.类别ID<=3

取出来的数据结构如下:

1.2 绑定数据列

将数据集字段拖入对应的单元格内,并作相应的设置:

E19单元格内写入公式:=C19-D19,求出利润;

F19单元格内写入公式:=count(E19[!0]{A19==$A19 && E19>$E19 && C17==$C17})+1,求出年内各城市的销售利润排名;

C20单元格内写入公式:=SUM(c19)/1000,算出总营业额;

E20单元格内写入公式:=SUM(E19)/1000,算出总利润。

1.3 数据集关联

设置过滤条件,使得报表内两个数据集关联。

单元格C19中数据列过滤条件设置如下:

单元格D19中数据列过滤条件设置如下:

设置完如上的过滤条件后,就能够通过产品ID关联起数据集ds1和ds2了。

1.4 条件属性

对于不需要显示出来的列和行,可以用条件属性中的列宽和行高为0的属性将这些行隐藏起来。

设置单元格D19的条件属性如下:

设置E20单元格的条件属性如下:

1.5 设置重复标题行

设置17、18行为重复标题行。

1.6 添加图表

在报表的上面区域,插入悬浮元素|图表,插入如下两张图表:

总金额表的类型为仪表盘,数据来源为:

总利润表的类型为柱形图,数据来源:

1.7 保存预览

这张表保存在安装目录下,具体路径如下:

%FR_HOME%\WebReport\WEB-INF\reportlets\demo\analytics\multi_report\all.cpt

2. 时间营收分析

根据时间列出对应的营业额和利润;时间的维度可以设置为年、月或者具体到某一天。报表结构如下:

2.1 准备数据集

新建数据集ds1,SQL语句为:

SELECT

订单明细.产品ID as 订单明细_产品ID,

format(订单.订购日期,'yyyy-MM-dd') AS 订单_订购日期,

YEAR(订单.订购日期) AS 年份,

LEFT (format(订单.订购日期,'yyyy-MM-dd'),7) AS 月份,

订单.货主城市 AS 订单_货主城市,

订单.货主地区 AS 订单_货主地区,

sum(订单明细.单价*订单明细.数量*(1-订单明细.折扣)) as 营业额,

sum(订单明细.进价*订单明细.数量) as 成本

FROM

订单 订单 INNER JOIN 订单明细 订单明细 ON 订单.订单ID = 订单明细.订单ID

group by

YEAR(订单.订购日期),LEFT(format(订单.订购日期,'yyyy-MM-dd'),7),format(订单.订购日期,'yyyy-MM-dd'),订单.货主城市,订单.货主地区,订单明细.产品ID

取出来的数据结构如下:

2.2 绑定数据列

将数据集中字段拖入对应的单元格中,并作相应的设置:

    B21单元格中输入公式:

=if(type = 1, ds1.group(年份), (if(type = 2, ds1.group(月份), ds1.group(订单_订购日期))))

并且设置属性为从上到下扩展,居中,其余默认。

    公式意义:根据参数type的值不同,选择不同的字段进行分组。

    A21单元格中输入公式:=&B21;设置单元格左父格为B21,居中,其余默认。

    E21单元格中输入公式:=C21-D21;设置单元格居中,其余默认。

2.3 添加条件属性

    设置D21单元格条件属性为:

2.4 添加报表参数,设置参数界面

选择报表|报表参数,添加一个参数,名为type。

点击参数设计,格式如下:

参数type的控件设置如下:

2.5 添加图表

在报表数据上方,插入悬浮元素|图表,如下:

图表类型为柱形图,图表数据源为:

.6 保存预览

这张报表保存在安装目录下,具体路径为:

%FR_HOME%\WebReport\WEB-INF\reportlets\demo\analytics\multi_report\datetime.cpt

3. 地区营收分析

列出各地区营业额和利润。报表结构如下:

3.1 准备数据集

新建数据集ds1,SQL语句为:

SELECT

订单明细.产品ID as 订单明细_产品ID,

YEAR(订单.订购日期) AS 订单_订购日期,

订单.货主城市 AS 订单_货主城市,

订单.货主地区 AS 订单_货主地区,

sum(订单明细.单价*订单明细.数量*(1-订单明细.折扣)) as 营业额,

sum(订单明细.进价*订单明细.数量) as 成本

FROM

订单 订单 INNER JOIN 订单明细 订单明细 ON 订单.订单ID = 订单明细.订单ID

group by YEAR(订单.订购日期),订单.货主城市,订单.货主地区,订单明细.产品ID

取出来的数据结构如下:

3.2 绑定数据列

将数据集字段拖入对应的单元格内,并作相应的设置:

D17单元格中输入公式:=B17-C17;属性为居中,其余默认。

E17单元格中输入公式:=D17/B17;属性为居中,其余默认。

3.3 添加条件属性

C17单元格中添加一个条件属性,使得其列宽为0。

3.4 添加图表

在报表数据上方,插入悬浮元素|图表,如下:

图表类型为柱形图,数据源设置如下:

3.5 保存预览

这张报表保存在安装目录下,具体路径为:

%FR_HOME%\WebReport\WEB-INF\reportlets\demo\analytics\multi_report\district.cpt

4. 各产品营收分析

列出各类产品的销售情况。报表结构如下:

4.1 准备数据集

新建数据集ds1,SQL语句为:

SELECT

订单明细.产品ID as 订单明细_产品ID,

YEAR(订单.订购日期) AS 订单_订购日期,

订单.货主城市 AS 订单_货主城市,

订单.货主地区 AS 订单_货主地区,

sum(订单明细.单价*订单明细.数量*(1-订单明细.折扣)) as 营业额,

sum(订单明细.进价*订单明细.数量) as 成本

FROM

订单 订单 INNER JOIN 订单明细 订单明细 ON 订单.订单ID = 订单明细.订单ID

group by YEAR(订单.订购日期),订单.货主城市,订单.货主地区,订单明细.产品ID

取出来的数据结构:

新建数据集ds2,SQL语句为:

SELECT

产品.产品名称 AS 产品_产品名称,

产品.产品ID AS 产品_产品ID,

类别.类别名称 AS 类别_类别名称

FROM

产品 产品 INNER JOIN 类别 类别 ON 产品.类别ID = 类别.类别ID

where 类别.类别ID<=4

取出来的数据结构为:

4.2 绑定数据列

将数据集字段拖入对应的单元格内,并作相应的设置:

在C17单元格内输入公式:=B17+"汇总"

在F17单元格内输入公式:=D17-E17

在F18单元格内输入公式:=D18-E18

4.3 数据集关联

数据集ds1和ds2可以通过产品ID字段进行关联,表现在报表中,就是D17、D18、E17、E18单元格中的数据列设置过滤条件:

4.4 添加条件属性

在E17单元格中添加条件属性,设置列宽为0。.

4.5 添加树节点控件

在B17单元格中添加控件——按钮|树节点按钮。

4.6 添加图表

在报表数据上面,插入悬浮元素|图表,如下:

营业额表类型为饼图,数据源设置如下:

利润表类型为饼图,数据源设置如下:

4.7 保存和预览

这张报表保存在安装目录下,具体路径为:

%FR_HOME%\WebReport\WEB-INF\reportlets\demo\analytics\multi_report\product.cpt

5. 各城市营收分析

列出各城市的营业额和利润。报表结构如下:

这张模板的制作与地区营收分析的模板制作相同,这里就不做详细介绍了。

模板保存在:%FR_HOME%\WebReport\WEB-INF\reportlets\demo\analytics\multi_report\subcompany.cpt

6. 总表的制作

将上面的报表用网页框嵌入到总表中,设置出对应每张报表的按钮,当用户点击按钮时,可以直接加载显示出需要的某一张报表。

6.1 添加参数

选择报表|报表参数,添加一个参数,名为table。

6.2 添加按钮

点击参数设计界面,设计如下:

上面从左到右的五个按钮对应BS端的五个按钮:

注:最右边的控件为查询按钮,属性为不可见,下面的文本控件对应参数table,同样设置为不可见。

下面我们看看这五个按钮的制作方法:

总体概况

点击事件编辑,添加点击事件

具体代码如下:

this.options.form.getWidgetByName("table").setValue("1");

this.options.form.getWidgetByCell("L3").fireEvent("click");

第一行代码意义时给table控件赋值为1,第二行代码是点击单元格L3中的控件,即点击查询按钮。

按时间统计

跟总体概况按钮的设计方法一样,其中添加的代码如下:

this.options.form.getWidgetByName("table").setValue("2");

this.options.form.getWidgetByCell("L3").fireEvent("click");

按产品统计

跟总体概况按钮的设计方法一样,其中添加的代码如下:

this.options.form.getWidgetByName("table").setValue("3");

this.options.form.getWidgetByCell("L3").fireEvent("click");

按地区统计

跟总体概况按钮的设计方法一样,其中添加的代码如下:

this.options.form.getWidgetByName("table").setValue("4");

this.options.form.getWidgetByCell("L3").fireEvent("click");

按分公司统计

跟总体概况按钮的设计方法一样,其中添加的代码如下:

this.options.form.getWidgetByName("table").setValue("5");

this.options.form.getWidgetByCell("L3").fireEvent("click");

6.3 添加控件——网页框

上面五个按钮的意义就是给报表参数table赋不同值;所以我们用网页框嵌入报表的时候,可以根据table参数的值嵌入对应的报表。

合并单元格,添加如下网页框控件:

其中参数reportlet对应的值公式为:

"demo/analytics/multi_report/"+if($table==1,"all",if($table==2,"datetime",if($table==3,"product",if($table==4,"district",if($table==5,"subcompany","all")))))+".cpt"

上面公式的含义:当table的值不同的时候,选择嵌入的模板不同。

6.4 保存预览

模板保存在:

%FR_HOME%\WebReport\WEB-INF\reportlets\demo\analytics\multi_report\multi_report.cpt

到这里这张报表就制作完成了,我们可以通过查看总表,然后根据需要点击不同的按钮查看不同的报表。