反馈已提交

网络繁忙

报表开发规范手册

  • 文档创建者:Carly
  • 历史版本:4
  • 最近更新:Alicehyy 于 2024-06-27
  • 1. 概述

    1.1 版本

    报表服务器版本
    11.0

    1.2 应用场景

    系统的开发和建设,必须要有统一的报表开发规范。

    统一的开发规范,可以将一部分场景问题的排查手段前置,让用户在开发阶段就可以规避部分问题。

    1.3 功能简介

    本文主要针对设计器使用、报表命名、功能实现方法、报表UI设计四个模块,提供推荐的报表开发规范。

    希望用户能够参照本文,系统地进行报表开发和展示。

    注:本文仅作为一个推荐示例,不强制要求必须完全按照本文进行开发,请用户结合自身实际情况调整。

    2. 设计器使用规范

    项目
    规范
    分离开发1. 每一张模板的制作应当经历三个步骤

    开发环境:首先在开发环境(设计器)开发,修改,内部测试通过。

    测试环境:然后发布到测试环境供业务人员测试,关键用户测试通过。

    生产环境:最后发布到生产环境,供最终用户使用。

    2. finedb数据库

    开发环境、测试环境、生产环境使用的finedb数据库必须分离开

    开发环境和测试环境使用生产环境上的finedb数据库的副本

    3. 数据连接的数据库

    非填报报表:报表使用的业务数据库,除了填报报表外,三个环境可以连同样的库,因为只是取数据出来展现,不会涉及到数据库表的增删改。

    填报报表:填报报表使用到的数据库表,开发环境、测试环境、生产环境,需要区分开来,因为在开发测试过程中会涉及数据的增删查改,报表未上线之前,不建议使用生产环境的数据库表来调试。

    远程设计1. 模板开发过程中,在保证Jar及插件版本与服务器一致的前提下,尽量远程设计。

    远程设计使用方法请参考:远程设计

    2. 远程设计连接的目标服务器需要授权远程设计功能点,否则远程设计无法使用。
    3. 设计器和服务器的jar包和插件版本需要保持一致
    4. 远程设计前保证服务器的端口对外开放,开发人员能通过浏览器正常访问决策平台。

    内网通过vpn连接远程设计时,需要检查网络是否通、vpn权限是否正常。

    5. 协同开发过程中,注意分配账号及权限,开启报表角色权限控制。

    远程设计的权限区别于平台的模板权限控制,需要管理员给开发人员分配相关的模板及数据连接远程设计权限,否则切换远程设计报错用户名密码错误。

    具体设置方法请参见:给用户分配远程设计权限示例

    6. 启用 https 或修改 https 配置(证书路径、https 密钥),必须重启设计器才能生效。
    协同开发

    1. 协同开发或模块开发过程中,需保证UI风格相对一致,配色可以使用设计器的预定义配色去控制。

    详情请参见:图表预定义配色

    2. 协同开发或模块开发过程中,报表中有多个组件、控件时,需保证组件命名的一致性、规范性。
    模板备份

    1. 整体备份模板

    手动备份整个工程文件,或者在决策平台开启自动备份或者手动备份。

    开发时,在开发环境、测试环境,开启自动备份,默认备份路径为../backup,备份文件存储在工程的%FR_HOME%/webapps/webroot/backup文件夹下。

    用户可修改 backup 文件夹为其他文件夹,但是不支持保存到非工程路径下。

    需要定期将备份文件移动到其他服务器或者其他目录,避免大量的备份文件导致应用过大,以及一台服务器出故障导致工程损坏。

    2. 单张模板备份

    1)优先在开发环境调整、验证与测试。

    2)如果没有开发环境,必须先模板备份(名称可以加上日期后缀,比如*** _V20210627.cpt),基于备份的模板做修改调整,不影响正式使用。

    3)模板调整修改需记录在案,方便追踪,可以使用设计器的模板版本管理功能。

    详情请参见:模板版本管理

    3. 报表命名规范

    项目
    规范
    目录命名规范1. 不使用中文,名称整体由26个字母、数字、下划线组成,首位必须为字母

    2. 目录名需做到见名知意,与业务模块相关。

    例如:

    财务:FINANCE

    人事:HR

    营销:MARKET

    3. 下层目录建议用‘_’来分隔命名

    例如:

    营销的销售二级目录名:MARKET_SALE

    营销的回款部分:MARKET_GETIN

    4. 报表目录层级尽量不要超过四层

    5. 建议独立创建测试目录TEST,作为各实施人员或运维人员自己的测试空间

    二级目录为TEST+下划线+名字

    例如:TEST_NAME

    6. 测试模板一旦正式启用必须另存到正式目录中
    模板命名规则1. 模块目录名+下划线+编号

    例如:MARKET_SALE_001

    2. 编号可以按照制作顺序递增,不可重复

    3. 准备一张报表映射excel,可以放在文件管理系统中,根据开发情况及时更新。

    形如:

    数据集命名规则

    1. 参数面板数据集:以para_开头

    例如:地区选择下拉框的数据集para_area

    2. 数据字典数据集:以dic_开头

    例如:产品映射字典数据集dic_product

    3. 报表主体数据集:以report_开头

    例如:客户销售数据report_customerSaleData

    4. 图表数据集:以chart_开头

    例如:产品占比图表chart_productRatio

    参数命名规则1. 不能以数字、$ 符号开头。
    2. 变量名只能是字母 (a-z A-Z)、数字 (0-9)、下划线(_)、(@) 或中文的组合,并且之间不能包含空格。
    3. 变量名中不能含有 ? * . -  +/等字符和空格。

    4. 变量名是不区分大小写的, 但不能用保留字

    比如true、false;FALSE、TRUE,因为写公式引用的时候容易搞错,跟保留字冲突

    5. 全局参数:以g开头

    例如:gSaleGroup,gProduct,gPerson

    6. 模板参数:以p开头

    例如:pDate,pCurrency,pUnit

    7. 数据集参数:以s开头

    例如:sCompany,sProject

    条件属性命名规则1. 建议使用简短的中文命名,方便业务和开发

    2. 格式:条件类型_具体功能

    例如:列宽_隐藏projguid列

    超链接命名规范1. 建议使用简短的中文命名,方便业务和开发

    2. 格式:超链接类型_具体功能

    例如:网络报表_跳转到明细

    FVS 组件命名规则

    1. 不允许使用复制组件自动填充的名称

    例如:表格1_页面1_c1、表格1_页面1_c1_c1

    2. 每个组件应按照组件类型+序号+页面的形式,方便后期维护调整

    例如:表格1_页面1、表格2_页面1表格1_页面2

    3. 每个组件名称中加上实际用途

    例如:表格1_页面1_销量明细、饼图1_页面1_销量占比

    普通报表悬浮元素命名规则

    1. 每个悬浮元素名称中加上实际用途,方便后期维护调整

    例如:Float0_sale_detail_line_chart

    4. 报表功能实现规范

    常见需求的实现方法规范,在满足功能的前提下,以性能、便于维护为目标。

    项目
    规范
    展示报表制作

    1. 图块多的报表(如驾驶舱、大屏)使用 FVS 可视化看板开发

    2. 减少单元格过滤的使用,尽量在数据集中过滤。
    3. 报表不要使用隐藏行、列,如有需要使用条件属性隐藏
    4. 公式要注意格式,如嵌套公式应做到每个公式换行,每个条件或结果换行
    5. 数据量大的模板需要导出,使用大数据导出excel插件或者流式导出插件
    6. 预览数据量大的模板使用sql参数限制数据量,或者使用分页sql、新引擎、行式引擎、新填报预览等功能
    7. 减少跨组件获取单元格值使用

    8. 控件数据字典数据量大且重复数据多时,避免直接使用数据库表

    建议专门创建专用的数据字典数据集

    9. 如非必要,不要在公式和 JS 中使用 SQL函数
    10. 设计时尽量减少行列和格子数
    11. 设计时尽量减少层次坐标、SQL 类函数在扩展行的使用
    12. 设计时尽量减少公式调用图片
    13. 设计时尽量减少控件数量
    14. 同一行不同格子设置过滤的时候,尽量只对第一个格子设置过滤
    15. 所有格子尽量使用同一个父格、而不是依次继承
    16. 控件数据字典尽量用“数据查询”,并开启缓存,尽量不要直接用数据库表
    填报报表制作1. 大数据量填报报表要尽量读写分离,查询报表和填报报表分离

    2. 填报报表设置参数,新增导入时不展现数据

    查询修改时尽可能添加过滤控件,减少查询结果集

    3. 业务主键字段通常设置不可修改

    如必须修改则应用数据库表中代理主键UUID字段做填报主键,新增数据时公式赋值新的UUID

    4. 没有导入需求时,尽可能在单元格做即时校验

    有导入需求时则应将所有校验设置在提交校验中

    5. 填报的数据库表设计

    设计思路:

    1)要有自己的主键,有主键在做数据的修改、流程流转时很有用,不用去用很多字段确定唯一的记录

    2)要有填报时间、填报用户。用于追溯数据的来源,时间等。

    6. 填报报表设计

    在页面的单元格中写参数$fine_username,公式now()。分别记录填报的用户,页面打开的时间。

    1)添加E1、F1两个单元格,分别写入公式now()和$fine_username,这两个单元格不扩展,并隐藏。

    2)设置填报属性,这里要勾选上未修改不更新,注意使用该功能时,填报属性中的值一定要是单元格,不能填公式,所以上一步特地新加了两个单元格。

    参数开发1. 参数统一采用英文命名方式

    2. 参数采用26个英文字母和0-9这十个自然数,加上下划线_组成,共36个字符,不出现其他字符。

    采用英文单词或英文短语(包括缩写)作为名称,参照字典表给出的基础命名,没有的去翻译,不使用无意义的字符或汉语拼音。

    3. 大屏中设置参数要考虑到不同报表块参数加载速度的问题,避免一个大屏模块过多的不同参数
    4. 多个数据集中的同一个参数默认值设置成相同,避免出现异常

    5. 涉及到不同TAB模块的同样指标的参数,参数名建议带上对应TAB模块的名称,

    以地区参数为例,例如:TAB1AREA、TAB2AREA

    6. 对于多个模板都要使用的参数,可以设置成服务器参数,供多个模板使用
    7. 超级链接传递参数,设计模板时建议在子页面的单元格用=$参数把参数值显示出来确认传递的值没有问题,设计完毕后删掉公式
    8. 控件实际值统一用id,控件显示值统一用名称,sql过滤条件统一用id过滤
    9. 数据集sql中使用参数时,使用公式if(len(参数)==0,"","sql条件")规避参数为空的情况,避免特殊情况下出现报错或者打印、导出没有数据
    10. 避免使用单元格的过滤功能,尽量用sql进行处理,单元格过滤会影响报表展示性能
    条件属性1. 设置条件属性时候需要考虑到性能问题,一行上面一个条件属性能解决的问题不要用多个条件属性
    2. 尽量合并多个条件属性为一个,通过多写条件判断实现,条件属性过多降低前端展示速度
    3. 隐藏行列一定不要直接隐藏行列。通过条件属性设置行高or列宽=0达到隐藏行列,方便维护
    4. 条件属性根据实际需求命名,不要用默认的“条件属性1”“条件属性2”
    5. 要考虑性能问题,能不使用条件属性则不使用

    5. 报表UI设计规范

    在FineReport报表的开发过程中,对于报表的UI,需要注意字体、格式、配色这几方面。具体实施,不同用户会有不同需求。

    若您有专门的UI设计规范,则以您的设计规范为准,若没有则在报表的开发过程中,建议遵循本UI设计规范。

    UI设计规范方面,不同的人有不同的看法,核心是:

    1)风格一致,整齐清爽。

    例如,标题都是黑体,正文都是宋体等;配色风格,如都是暗色系,则不应突然冒出个亮色系。

    2)字体、格式、配色,可因地制宜,根据实际情况处理。 

    举例:财务的报表,要求字段都左对齐,那应当遵循其既有规则。有些商用收费的字体应该避免使用。

    注:推荐在制定规范前,学习一些视觉设计原则:颜色搭配一致性原则色彩与配色基础页面布局

    项目

    规范
    字体通用规则

    1. 中文字体里,建议使用宋体、仿宋、黑体、楷体、隶书、幼圆。

    另外,思源黑体、思源宋体、庞门正道标题体、文泉驿系列、站酷系列,以及方正的楷体、黑体、仿宋、书宋,都可以免费商用

    明细表2. 明细表的标题和图表的标题,建议加粗,且字号大于正文。

    3. 明细表示例


    4. 不同报表的标题,字体、字号应一致。

    若出现表头,或是二级标题,字体应小于主标题,大于正文,建议加粗

    正文,字体、字号应一致

    图表

    5. 图表中涉及文字的地方有标题、标签、轴标签、提示。

    这四类,同类应保持字体、字号一致。

    标题字号一般大于其他三类。

    建议这四类,字体一致,后三类字号一致。

    格式大规则

    1. 所有标题居中;数字的小数位一致。

    明细表

    2. 明细文字,格式统一,都居左或居中。

    3. 明细表第一行、第一列空出来,留出点余白。

    行高最好一致,自动换行不建议开,字数不一致的情况下,会导致行高不一,显得很乱。

    4. 网格线方面,保持风格一致即可,即线型、颜色一致。
    5. 明细表的行列不许直接隐藏,用条件属性实现。
    图表

    6. 图表标题居中。

    坐标轴标题,若有,如Y轴标题,则位置应保持一致,都居上或居中。

    7. 标签的位置,至少同一类图表,如柱形图,应保持一致,都在外侧或是内侧。
    配色明细表

    1. 字体颜色一般都是黑色,特殊情况,如数值预警高亮,因地制宜。

    2. 表头加背景色,不建议大红大紫那些过于鲜艳的颜色,建议蓝色或灰色等。

    表头字色根据背景色调整,建议白色、灰色等。

    3. 明细表建议设置奇偶行的间隔色,以达到好区分不同行的目的。

    颜色同样不可过于鲜艳,建议灰色或淡蓝色等。

    4. 明细表配色示例

    图表

    1. 根据背景颜色来设置标题等字体颜色。

    如图表都是暗色系,那文字的颜色建议白色这样的亮色系。

    2. 不同系列色,应遵循美观、舒适的原则,颜色不可太亮太刺眼,要让人看得舒服。
    3. 大屏的背景色建议暗色系,因为白色在大屏上的展示效果不好。

    附件列表


    主题: 部署集成
    已经是第一篇
    已经是最后一篇
    • 有帮助
    • 没帮助
    • 只是浏览
    中文(简体)

    鼠标选中内容,快速反馈问题

    鼠标选中存在疑惑的内容,即可快速反馈问题,我们将会跟进处理。

    不再提示

    10s后关闭



    AI

    联系我们
    在线支持
    获取专业技术支持,快速帮助您解决问题
    工作日9:00-12:00,13:30-17:30在线
    页面反馈
    针对当前网页的建议、问题反馈
    售前咨询
    采购需求/获取报价/预约演示
    或拨打: 400-811-8890 转1
    qr
    热线电话
    咨询/故障救援热线:400-811-8890转2
    总裁办24H投诉:17312781526
    提交页面反馈
    仅适用于当前网页的意见收集,帆软产品问题请在 问答板块提问前往服务平台 获取技术支持