玩转数据显示设置

简介: 在数据显示时,数据库中通常存储的是编号、code 这些代码值,而报表使用人员无法理解其真正含义,或者日期、金额等格式需要按照指定形式进行数据格式化,点击<a href="http://c.raqsoft.

数据库中存储的数据通常会有一些代码值字段,如员工编号、部门代码、类别 ID 等等,报表展示时如果直接展示代码值形式,使用人员无法理解该值的具体含义,所以要求将编码值转换成对应的使用人员能够理解的中文形式,又或者数据库中存储的出生日期是 date 形式,展现时要将其转换成标准的 2018 年 12 月 12 日这种形式。下面通过一个例子的实际操作来介绍下这种需求的实现方法。
首先连接润乾自带的 demo 数据源,从“员工”表中取数制作一个员工信息表,报表模板如下图:
1

此时点击预览,报表结果如下:
2

要求:
1、 将出生日期转换成标准的 yyyy 年 MM 月 dd 日格式
2、 将性别、学历转换成对应的中文形式
3、 将工资加上货币符号
日期格式设置
报表单元格中支持显示格式设置,直接对数据进行格式化操作,选中 C3 单元格,双击右侧的显示格式的值属性,会弹出显示格式设置对话框:
3

里边有各类型格式设置,找到日期分类中的 yyyy 年 MM 月 dd 日,点击确定,这样,出生日期列就能按照想要的格式效果展示。
数值转中文
接下来看下性别和学历设置,性别比较固定,一般就是“男”或者“女”,针对此种比较固定的,可以在显示值表达式中的 if 函数进行控制,在 D4 单元格的显示值表达式中写入:if(value()==1,“男”,“女”),value() 函数是报表自带的一个函数,用于获取当前单元格的真实值,通过判断当前单元格为 1 时,返回显示值“男”,否则显示“女”,注意:value()==1,性别字段在数据库中是整数,所以此处直接写 1,如果是字符串,需要写成”1”,要注意数据类型,如果有多种类型,可以做 if 嵌套,具体可以参考报表函数说明。针对此种数据比较固定的,还有一个函数可以实现:map 函数,也可以在 D4 单元格的显示值表达式中写入:map(list(1,2),list(“男”,“女”)),第一个 list 中列出的是单元格内真实值的列表,第二个 list 会进行显示值的映射。
学历单元格设置和性别有些类似,都要通过显示值表达式进行设置,可以使用 if 或 map 函数,但是学历数据会较多,需要写入大量的表达式,并且学历在数据库中可能是会变化的,比如过段时间会增加个新学历,还要再次修改报表,针对此种形式,数据库中通常会有中文字典表。在报表中新增数据集,从“DEGREE”表中取数,该表中数据如下:
4

可以看到,ID 中的数据就是员工表中学历列的值,NAME 字段存储的是对应的中文,这样可以根据 ID 和 DEGREE 字段的关联,取出需要的中文进行显示,在 E3 单元格的显示值表达式中写入:ds2.select(NAME,ID==value(),1),该表达式含义为从 ds2 数据集中取出 ID 等于当前单元格值的 NAME 字段的值放到显示值中显示,注意后边的 1 为取出满足条件的第一条记录,如果有满足直接进行返回不再向后判断,所以为提高报表计算效率,需要增加“1”的设置。这里用到了从另外一个数据集中取出对应的中文的写法,实际使用中,如果字典表和数据表在同一个库中,建议通过一个 sql 通过 where 关联方式直接取出中文,这样当数据量大时效率更高,如果数据来自不同库,数据量大时导致计算较慢,可以通过集算器将两个数据集 join 在一起返回到报表是一个数据集,这样效率更高,具体看实际需求。
货币格式
最后工资列设置显示格式“¥#0.00”就行了,如图:
5

最终报表展示效果如下:
6

本例中通过显示格式和显示值表达式的使用能够控制单元格的显示样式,此时更改的只是单元格显示效果,如果在其他单元格引用这些单元格的话,引用的还是报表单元格的原值,如果要引用显示值,可以使用 disp() 函数。
显示格式表达式控制
显示格式目前用到最多的是直接在显示格式中选择,实际上显示格式支持表达式对其进行控制,比如某个单元格表达式为:=list(11,12.5345,14,15.66),这个单元格展示时既有浮点数,又有整数,好多客户希望如果是整数则直接显示整数, 如果是浮点数,则保留两位小数显示,这样就用到了显示格式表达式,如在该单元格的显示格式表达式中写入:if(value()==int(value()),“#”,“#0.00”),判断该单元格的数值是否是整数,如果是则显示格式为”#”, 否则显示格式为”#0.00”, 该单元格预览后效果如下:
7

可以看到报表属性可以通过表达式进行动态控制,达到动态的显示效果。
显示值实现特殊格式
润乾自带了显示格式,但有些格式可能无法满足客户的特殊需要,比如 2018-11-30 这种日期格式需要显示成:30 Nov. 2018,此时可以使用显示值表达式进行特殊设置,比如 B2 单元格为日期,则在 B2 单元格显示值表达式中写入:string(day(value()))+"“+case(string(month(value())),“1”:“Jan.”;“2”:“Feb.”;“3”:“Mar.”;“4”:“Apr.”;“5”:” May.“;“6”:“Jun.”;“7”:“Jul.”;“8”:“Aug.”;“9”:“Sept.”;“10”:“Oct.”;“11”:“Nov.”;“12”:“Dec.”)+” "+string(year(value()))
该表达式先通过润乾函数分别截取日期中的日、月、年,然后通过 case 函数将月转换成想要的格式再拼接在一起,这样就能够实现特殊显示格式的控制。
总结
通过显示格式能将数据进行格式话操作,通过显示值能够将单元格内的值换成其他值进行显示而不影响原单元格的真实值,并且两个属性都可以通过表达式灵活设置,使得数据显示设置真的灵活运用于各种需求之中。

作者:gxy
链接:http://c.raqsoft.com.cn/article/1543563271737?r=IBelieve
来源:乾学院
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

目录
相关文章
|
Linux
Linux 查看进程PID和线程CPU和内存占用情况
Linux 查看进程PID和线程CPU和内存占用情况
1277 0
|
6月前
|
域名解析 人工智能 安全
回答我!会不会搭建 DeepSeek 版个人知识库?
本文介绍如何基于 DeepSeek 模型创建 RAG 应用,帮助大家更好地管理和利用知识,提高效率和创新能力。
444 14
回答我!会不会搭建 DeepSeek 版个人知识库?
|
7月前
|
人工智能 前端开发 JavaScript
纯干货!如何用Cursor+宜搭,3天完成三周开发量(附超详细视频教学)
Cursor是热门代码编辑器之一,通过与宜搭(Yida)结合,提供了强大的低代码页面和自定义组件生成能力。方案利用Claude模型的代码生成能力及MCP支持,大幅提升开发效率。开发者可通过Cursor连接宜搭表单设计器或自定义组件设计器,实现React源码的生成与同步,并支持二次编辑。现有功能涵盖文本、数字、图片、链接等多种字段类型,以及属性面板配置、JS代码生成等。
1621 83
|
8月前
|
人工智能 运维 数据可视化
1分钟集成DeepSeek满血版!搭建智能运维助手
阿里云 AI 搜索开放平台面向企业及开发者提供丰富的组件化AI搜索服务,本文将重点介绍基于AI搜索开放平台内置的 DeepSeek-R1 系列大模型,如何搭建 Elasticsearch AI Assistant。
916 173
1分钟集成DeepSeek满血版!搭建智能运维助手
|
12月前
|
存储 弹性计算 固态存储
阿里云服务器收费标准租用价格及价格计算器使用参考
阿里云服务器租用价格参考,不同时期阿里云服务器的租用价格不同,2024年阿里云多款云服务器的收费标准都做了降价调整,最高降幅达93%,同时,阿里云还推出了多款价格比较实惠的云服务器,现在购买阿里云轻量应用服务器2核2G3M带宽82元1年,经济型e实例ECS云服务器2核2G3M带宽新购和续费优惠价99元1年,通用算力型u1实例2核4G5M带宽新购和续费优惠价199元1年,4核8G云服务器955元1年,本文为大家介绍一下阿里云服务器的最新收费标准租用价格以及使用价格计算器查询云服务器价格的方法。
|
SQL 监控 数据库
MSSQL性能调优秘籍:索引深度优化、SQL重构技巧与高效锁策略
在Microsoft SQL Server(MSSQL)环境中,性能调优是确保数据库高效运行、满足业务快速增长需求的关键
|
人工智能 自然语言处理 数据挖掘
产品更新|宜搭AI 新增「智能数据分析」「智能表单」两项功能!
「宜搭AI」开放新一期功能:智能数据分析、智能表单,已支持在宜搭网页端使用体验。
802 0
产品更新|宜搭AI 新增「智能数据分析」「智能表单」两项功能!
|
机器学习/深度学习 自然语言处理 搜索推荐
探索深度学习与自然语言处理(NLP)在智能客服系统中的创新应用
探索深度学习与自然语言处理(NLP)在智能客服系统中的创新应用
741 1
|
网络协议 安全 Linux
在Linux中,什么是端口扫描?如何使用工具如nmap进行端口扫描?
在Linux中,什么是端口扫描?如何使用工具如nmap进行端口扫描?