[align=left] Redmine 中报表功能的优化上 [/align]
在 Redmine 原生系统中有 “摘要功能”,通过跟踪、优先级、指派给、提交者、集成版本给出不同维度代开和关闭问题个数,实现了最基础的报表功能。
在 redmine_monitoring_controlling 中同样提供了跟踪,指派给,状态等几个分组的图形统计,可以生成最简单的统计图。
在使用这两个报表相关的功能遇到两个问题:一、需要在代开不同的页面才能同时看到统计表格和分布图形;二、两个统计过程中都没有过滤器的概念。实际上默认的分组数据大部分情况下不能突出想表达的重点。
为了解决上述问题,设计了自己的报表功能。参考问题查询中的过滤器、概要中的统计表和 redmine_monitoring_controlling 中的图形,实现一个能够进行自定义过滤,同时统计图和统计表的简单报表功能。具体实现如下:
1、 添加路由
get '/reports',:controller => 'redmine_reports', :action => 'index'
2、 添加页面
redmine_ reports/ index.html.erb 按照 issues/ index.html.erb 格式组织
redmine_ reports/ index.html.erb 按照 redmine_monitoring_controlling/app/views/mc_time_mgmt_project/_scripts.html.erb 格式组织
redmine reports/_indexsimple.html.erb 按照 reports/_simple.html.erb 组织内容
页面内容太多了,这里就不赘诉了,按照原始内容改成自己喜欢的样式就可以。
3、 添加处理逻辑
添加控制器 redmine_queries_controller.rb
[code] def index
retrieve_query
unless @query.group_by.nil?
@issue_count_by_group = @query.issue_count_by_group
unless @issue_count_by_group.nil?
@chart = Hash.new
@chart[:xAxis] = @issue_count_by_group.keys
@chart[:legend] = @query.group_by_column.caption
@chart[:series] = [{
name: @query.group_by_column.caption,
type: 'bar',
data: @query.values
}]
end
end
end[/code]
通过上面修改,我们基本可以实现简单的统计报表功能,但是在后续使用过程中,还有两个继续解决的问题:一、不能保存,每次使用都需要重新设置条件;二、只有一个分组提交,对数据的趋势显示不好。稍后会完善上述两个方面。