禅道自定义报表需通过五种路径实现:一、统计→自定义界面配置分组与统计字段;二、sql查询编写复杂逻辑;三、复用可视化大屏数据集;四、扩展bug语言包字段;五、添加变量实现交互筛选。

如果您希望在禅道中根据业务需求灵活呈现数据,但默认报表无法满足特定维度或逻辑,则需通过自定义报表功能构建专属统计视图。以下是实现该目标的多种操作路径:
一、通过“统计→自定义”入口创建报表
该方式适用于已有基础报表结构、仅需调整分组逻辑、统计字段或条件的场景,无需编写SQL,适合权限受限或非技术人员快速上手。
1、点击顶部导航栏的统计,再点击下拉菜单中的自定义。
2、若页面未显示“自定义”选项,请前往组织→权限,确认当前用户角色是否被授予自定义报表访问权限。
3、点击新增报表按钮,进入报表设计页。
4、在第一分组字段中选择必填项(如“所属项目”“任务类型”或“指派给”);第二分组字段为可选项(如“优先级”“状态”)。
5、在统计字段中选择待汇总的数据项(如“已消耗”“总消耗”“任务数”),并指定统计方式(计数、求和、平均值等)。
6、设置报表名称与所属类目后,点击保存。
7、保存成功后,可在统计→自定义列表中找到该报表,并点击设计进一步调整条件,或点击编辑修改名称与类目。
二、使用SQL直接查询构建报表
该方式适用于需要跨表关联、复杂过滤、聚合计算或调用数据库函数的高级统计需求,要求具备基本SQL能力且拥有对应数据库表读取权限。
1、在统计→自定义页面点击新增报表。
2、切换至SQL查询标签页。
3、在查询语句输入框中编写单条SELECT语句(禁止包含INSERT/UPDATE/DELETE/DDL等非查询语句)。
4、点击查询按钮验证语句有效性并预览结果集。
5、如需动态传参,点击添加变量,设置变量名(如:startDate)、变量类型(日期、字符串、数字)及默认值。
6、变量将在报表运行时以输入框形式弹出,用户可手动填写或选择。
7、确认无误后,填写报表名称与类目,点击保存。
三、通过可视化大屏的数据集复用生成报表
该方式适用于已有成熟数据集、希望快速生成多维度图表报表的场景,避免重复编写SQL,提升复用性与一致性。
1、进入统计→可视化→数据集,确认所需数据集已存在(如“项目任务消耗汇总”)。
2、若不存在,点击创建数据集,输入名称并在查询语句中编写SQL,点击查询验证后保存。
3、返回统计→自定义,点击新增报表。
4、选择基于数据集模式,在下拉列表中选取已创建的数据集。
5、系统自动加载该数据集的字段列表,可从中拖拽字段至X轴(分组维度)与Y轴(统计指标)区域。
6、在筛选条件中配置固定过滤规则(如“状态 IN ('done', 'closed')”)。
7、填写报表名称与类目,点击保存。
四、为BUG模块扩展自定义字段并纳入报表
该方式适用于需将新增业务字段(如“客户端”“部署环境”)纳入统计分析的场景,需同步修改语言包与报表配置,确保字段可被识别和聚合。
1、登录服务器,定位到语言包文件:zentaopms/module/bug/lang/zh-cn.php。
2、在文件末尾插入报表字段定义代码:$lang->bug->report->charts['bugsPerClient'] = '按客户端';
3、紧接着添加空对象声明:$lang->bug->report->bugsPerClient = new stdclass();
4、重启Web服务或清空ZenTao缓存,使语言包生效。
5、进入统计→自定义,新建报表,在第一分组字段下拉菜单中即可看到按客户端选项。
6、选择该字段作为分组依据,继续配置统计字段与方式,完成保存。
五、设置报表变量实现交互式筛选
该方式适用于同一报表需适配不同时间范围、项目、人员等动态条件的场景,提升报表复用率与用户体验。
1、在统计→自定义中打开已存在的报表,点击设计。
2、在报表条件配置区,点击添加变量按钮。
3、在弹出窗口中输入变量标识符(如:projectID),选择变量类型为项目,并勾选多选(如需支持批量项目筛选)。
4、在SQL语句中引用该变量:WHERE t1.project = :projectID(若为多选,需配合IN语法)。
5、点击查询测试变量输入效果,确认下拉列表能正确加载项目名称。
6、保存报表后,每次查看时将自动弹出项目选择控件,用户可实时切换筛选范围。










