1 统计信息公众服务系统概述
1.1. 功能概述
该功能以拖拽的人性化方式选择汇总报表的行和列,并选择报表数据的报告期进行即席查询;报告期可以选择当前期、固定报告期和相对报告期,其中相对报告期可以设置指标为上一期、去年同期、前n期等;不同报告期的指标可以进行自定义运算,方便计算出同比环比的增长率来分析数据的变化趋势;使用行列转换,对汇总报表的查询结果进行转换,以便从不同角度进行数据对比;自定义表头功能可以根据业务的需要对汇总表头进行设置;图形转换功能可以将汇总报表的数据转换为图形,让用户更直观的看到数据的变化趋势;条件设计功能对汇总内容填加条件限制,例如我们经常会遇到的需求是只汇总某一地区的数据而不是所有的数据; 设计好一张汇总报表并保存,以后可以在资源管理器中查看,对预览结果不满意还可以返回继续设计。
1.2. 公用文件
JSP页面位置 |
jsp/solutions/analystic目录 summary-report.jsp 报表设计 defaultSummaryReportView.jsp 报表回显 |
Controller |
com.berheley.bi.report.web.controller. SummaryReportController 报表查询相关操作 com.berheley.bi.report.web.controller.OperateSummaryReportController 报表保存回显相关操作 |
BO |
com.berheley.bi.report.service.def.SummaryReportService com.berheley.bi.report.service.impl.SummaryReportServiceImpl |
DAO |
com.berheley.bi.dao.impl.JdbcOpDaoImpl |
TABLE |
t_reportsummary 汇总报表保存表 |
1.3. 数据库
表名 |
t_reportsummary |
日期 |
|
||
作者 |
|
版本 |
|
||
描述 |
|
||||
字段 |
说明 |
输入格式 |
是否必填 |
||
ID_ |
主键 |
VARCHAR(32) |
是 |
||
NAME_ |
报表名称 |
VARCHAR(255) |
|
||
AUTHOR_ |
创建人 |
VARCHAR(32) |
|
||
DESCRIPTION_ |
报表描述 |
VARCHAR(500) |
|
||
REPORT_DATASOURCE_ |
报表数据源名称 |
VARCHAR(100) |
|
||
HEAD_ |
报表表头配置 |
TEXT |
|
||
IS_SUM_ |
是否汇总 |
TINYINT(1) |
|
||
IS_ROTATE_ |
是否行列转换 |
TINYINT(1) |
|
||
SPACE_ROW_INDEX_ |
空白行索引 |
VARCHAR(100) |
|
||
SPACE_ROW_TEXT_ |
空白行文本 |
VARCHAR(255) |
|
||
REPORT_DATE_ |
报表创建日期 |
DATETIME |
|
||
READER_JSON_ |
表头reader配置 |
TEXT |
|
||
REPOSITORY_ID_ |
资源管理目录 |
VARCHAR(32) |
|
||
XML_ID_ |
Report模型id |
VARCHAR(32) |
|
||
ROW_LIST_HTML_ |
主栏html代码 |
TEXT |
|
||
COL_LIST_HTML_ |
宾栏html代码 |
TEXT |
|
||
TYPE_ |
报表类型 |
VARCHAR(1) |
|
||
QUERY_CONDITIONS_ |
报表查询条件 |
TEXT |
|
1.4. 后台功能模块描述
加载指标分类根目录:
访问路径 |
/summaryReport.report?method=getRoot |
JSP名称 |
/jsp/solutions/analystic/summary-report.jsp |
后台方法 |
getRoot |
备注 |
|
加载指标分类子目录:
访问路径 |
/summaryReport.report?method=getChilds |
JSP名称 |
/jsp/solutions/analystic/summary-report.jsp |
后台方法 |
getChilds |
备注 |
|
报表查询:
访问路径 |
/summaryReport.report?method=query |
JSP名称 |
/jsp/solutions/analystic/summary-report.jsp |
后台方法 |
query |
备注 |
|
报表保存和修改:
访问路径 |
operateSummaryReport.report?method=saveOrUpdate |
JSP名称 |
/jsp/solutions/analystic/summary-report.jsp |
后台方法 |
saveOrUpdate |
备注 |
|
报表回显:
访问路径 |
operateSummaryReport.report?method=view |
JSP名称 |
/jsp/solutions/analystic/defaultSummaryReportView.jsp |
后台方法 |
View |
备注 |
|
报表设计回显:
访问路径 |
operateSummaryReport.report?method=edit |
JSP名称 |
/jsp/solutions/analystic/summary-report.jsp |
后台方法 |
Edit |
备注 |
|
报表删除:
访问路径 |
operateSummaryReport.report?method=delete |
JSP名称 |
jsp/solutions/repository/repositoryManage.jsp |
后台方法 |
delete |
备注 |
|
2 设计思路与主要环节
2.1. 设计思路
首先通过四步组表创建出报表模型,报表模型中保存了所有事实表和维表的表信息与表的连接关系,查询时根据用户选择表的指标自动进行表关联查询出结果返回给客户。
2.2. 主要环节
进入汇总报表设计器,选择要设计的报表,这时会看到报表模型中的事实表与维表以树型结构展示在左侧,客户可以展开树结点,选择需要的报告期下的指标,可以将事实表指标拖拽到宾栏,维表指标拖拽到主栏。单击预览后会将宾栏主栏的信息传到后台。后台通过报表引擎分析宾栏、主栏所有涉及到的表的信息和报告期的信息,结合报表模型加以分析,最后生成报表查询sql,执行sql后将查询结果根据宾栏、主栏的顺序位置依次排列处理成json,前台grid组件接收到json展示出最终的汇总结果。客户可以进一步对表头等进行设计。
3 使用说明
3.1. 选择行业套表
在下拉框中选择要设计的行业套表,并点击确定。
3.2. 选择指标
选择行业套表后左侧指标分类会被填充指标,例如下图显示的是三资专业处的套表:
3.3. 更换报告期
报告期分为当前期、固定报告期和相对报告期,其中当前期是要查看报表数据的基准时间,相对报告期是相对当前期的时间又分为上一期、去年同期、前n期,固定报告期是选择具体年月的报告期,不受当前期变化的影响。
点击文件夹后‘[]’里面的文字会弹出修改报告期的窗口,如下图:
可以弹出选择报告期的窗口,如下图:
3.4. 拖拽指标到宾栏和主栏并预览
3.5. 自定义宾栏
可以拖拽左侧指标到指标表达式,写好表达式后点击提交。提供了函数库和操作键盘,方便进行表达式的编写。
3.6. 自定义查询条件
可以拖拽左侧指标到条件表达式。提供了函数库和操作键盘,方便进行表达式的编写。
3.7. 复杂表头
在首行表头上单击鼠标右键,选择插入行即可在上方插入一个空白行。
在新插入的行上可以进行各种编辑操作,包括插入行、删除行、合并拆分单元格、编辑列名等操作,与word操作相同,在此不再赘述。
3.7. 报表保存
点击保存按钮后,下面窗口,填写报表名称,选择保存位置后点击确定。
报表保存需要等待一段时间,得到保存成功的提示后,便可以进入资源管理器对刚保存的报表进行管理。
3.8. 查看汇总报表
在资源管理器找到刚刚保存的名叫“三资专业处汇总报表”的汇总报表:
点击报表名称进行查看:
选择报告期后点击查询按钮可以刷新汇总报表
3.9. 设计汇总报表
对已有汇总报表不满意,需要增加或删改指标时,可以在资源管理器找到这张报表点击设计按钮,如下图:
进入设计页面,对上一次保存的宾栏、 主栏等进行修改,满足需求后点击保存即可。
4 数据资源的管理
这是一个报表资源的仓库,所有的明细报表和汇总报表都保存在这里,用户可以创建自己的分类,把报表保存在不同的分类下以便管理,在这里还可以进行报表查询、查看、设计、删除等操作。
4.1. 管理分类
在左侧树形目录上,点击鼠标右键可以弹出下面菜单:
点击添加或修改后弹出下面窗口:
填写目录名称、描述、是否隐藏、顺序等信息并在右侧按照目录的组织结构、角色、用户等权限信息挑钩保存即可,以后具有该权限的访客才能看到这个目录。
4.2. 报表查询
点击左侧目录可以在右侧表格显示出当前目录下的报表。菜单栏的查询条件也可以帮助您快速找到想看的报表,例如输入条件“三资”,资源名称包含“三资”的报表就会查询出来。
4.3. 报表查看、设计与删除
点击报表名称即可查看该报表内容,点击设计可以重新设计该报表,点击删除删掉不再使用的报表。
5 项目模块概述
四步组表模块利用spring的webflow提供将表单分类中事实表、维表、法人表通过各种条件联系在一起,并生成明细、汇总报表能够识别的xml文件的功能。
JSP页面位置 |
/jsp/solutions/customReportFlow目录 |
COTROLLER |
com.berheley.bi.report.web.controller.CreateReportController.java |
ACTION |
ReportSource.com.berheley.bi.report.service.impl.CustomReportAction |
XML |
WEB-INF/flows/ customReportBeans.xml WEB-INF/flows/ customReportFlows.xml |
TABLE |
dic_table_items 表单分类表 dic_report_query 明细汇总xml数据表 |
其他 |
|
5.1. 选择表
5.1.1 功能描述
该功能主要用于从表单分类中选出事实表、维表、法人表以及对应的法人码。
访问路径 |
/flow/customReportFlow.html |
JSP名称 |
step1.jsp |
备注 |
|
5.1.2 设计约束
必须选择事实表、维表、法人表以及法人码,否则无法进入下一步。
5.1.3 业务流程描述(设计思路、主要环节)
从左侧表单分类树中分别拖动子节点到事实表、维表和主表中,除主表不可向外拖动外,其他表节点均可互相拖动。
5.1.4 技术实现
1. 利用ext的DropTarget将各个各个表区域联系在一起,保证树节点能够自由准确的拖动。表单分类、事实表和维表互相拖动时,属于ext树节点的普通拖动,不做其他操作。
2. 当其他表的树节点向主表拖动时,除了将节点拖动到主表下,还调用了CreateReportController下的getTableColumns方法,取出被拖动节点代表的表的所有字段,作为此节点的子节点,用来选择法人码。
3. 点击下一步时,将事实表、维表、主表的树节点转化为json串,传入到CustomReportAction的step1方法中,存入webflow流中,方便随时调用。
5.2. 设置事实表
5.2.1 功能描述
该功能主要用于对上一步选择的事实表进行更加详细的修改,包括每个表的主键,连接的表及其外键。
访问路径 |
|
JSP名称 |
step2.jsp |
备注 |
|
5.2.2 设计约束
每个事实表的主键和关联表外键都要选择,可以使用默认值,但不能选择无。
5.2.3 业务流程描述(设计思路、主要环节)
此步针对上一步选择的事实表,对每个表进行详细的配置,为每一个表选择主键,从主表和事实表中选择关联表,再从关联表外键中选择与事实表关联的外键,完成事实表的控制。
5.2.4 技术实现
1.在页面上获取上一步存入webflow流中的事实表的数据,循环排列在页面中。
2.关联表外键下拉框与关联表下拉框联动,动态显示选择关联表的字段。
3.点击下一步,将重新配置好的事实表数据传入到CustomReportAction的step2方法中,存入webflow流中。
5.3. 设置维表
5.3.1 功能描述
该功能主要用于对第一步选择的维表进行更加详细的配置。
访问路径 |
|
JSP名称 |
step3.jsp |
备注 |
|
5.3.2 设计约束
除每个维表的父节点可以不选择外,其他必须进行选择,不能为空。
5.3.3 业务流程描述(设计思路、主要环节)
对第一步选择的维表进行更为详细的配置,为每个维表设置主键,主键别名,父节点,关联表,关联表外键和匹配方式。其中关联表为第一步选择的主表和事实表。
5.3.4 技术实现
1.在页面上获取上一步存入webflow流中的维表的数据,循环排列在页面中。
2.关联表外键下拉框与关联表下拉框联动,动态显示选择关联表的字段。
3.点击下一步,将重新配置好的事实表数据传入到CustomReportAction的step3方法中,存入webflow流中。
5.4. 设置条件并保存
5.4.1 功能描述
该功能主要对已经配好的关系添加一些额外条件。
访问路径 |
|
JSP名称 |
step4.jsp |
备注 |
|
5.4.2 设计约束
设置条件可以为空,但必须为要生成的报表添加中文名并赋予相应角色。
5.4.3 业务流程描述(设计思路、主要环节)
为已经配好的主表和事实表及维表的关系添加额外的条件,条件涉及的表数据从建立的相应枚举类中获取,枚举类中的数据可根据需要进行增减和修改。选择其中一个条件后即可对连接方式,条件表,条件字段和陪方式进行设置。
5.4.4 技术实现
1.在页面中获取ConstantEnumDefine类中Condition枚举类型的数据循环排列。
2.点击下一步,将数据传入到CustomReportAction的step4方法中,结合前几步存入webflow流中的数据,一起生成相应的xml数据,存入数据库,供明细和汇总报表进行调用。
6. 系统管理功能
该模块主要包含了对用户,组织结构,角色,菜单的管理。
6.1. 用户,组织结构,角色管理
在系统菜单栏上选择系统管理,在下拉菜单中选择“用户管理”,进入用户管理界面。
此界面分左中右三个部分,分别是组织机构模块,用户管理模块和角色管理模块。
在左侧的组织机构树上,通过单击右键可以弹出(添加,修改,删除)的子菜单:
点击添加,或修改 会弹出窗口,用户可以进行添加或者修改组织机构的操作。
在中间用户管理模块,用户可以点击增加,删除,修改链接来进行相应的用户管理操作。
当用户点击增加或者修改链接时,会弹出如下窗口。
当填写完相关的用户信息后,点击确认即可保存。
选择某个用户,点击“分配角色”链接时,可在右边角色列表中勾选多个角色分配给当前所选择的用户。
在右侧角色管理模块,用户可以点击增加或者删除来进行相应的角色管理操作。
6.2. 菜单管理
在系统菜单栏上选择系统管理,再下拉菜单中选择“菜单管理”,进入菜单管理界面。
在左侧树形目录中,在菜单节点上单击右键可弹出(添加/删除/修改)按钮,单击添加/修改按钮时会弹出如图(图8-8)窗口。
在左侧树形目录中,在菜单节点上单击左键后,可在右侧的角色列表中勾选多个角色,分配给所单击的菜单。
在左侧选项卡,选择”首页管理”,右键单击“首页管理”节点,会弹出(添加/删除)按钮,单击添加即可新增首页(如图8-9),对新增完的首页可以分配一个特定的权限,这样具有此权限的用户登录系统后的首页即为此新增的首页。