当判断条件较为复杂时,若使用 if 函数,需逐层嵌套、逐一比对各种情形,不仅编写费时,后期维护也相对困难。此时推荐使用 switch 函数——它仅需指定一个表达式,即可实现多分支匹配,逻辑清晰、写法精炼、执行高效。以下以国产专业报表工具 finereport 为例,简要说明 switch 函数的实际应用场景与配置步骤。
1、 基本语法结构
2、 根据输入表达式的计算结果,在预设的键值对中查找匹配项,并返回对应值;若所有项均不匹配,则返回设定的默认结果(如未指定默认值,则返回空)。
3、 若表达式运算结果为 1,则函数整体输出 1。
4、 若表达式运算结果为 2,则函数整体输出 2。
5、 若表达式运算结果为 3,则函数整体输出 3。
6、 新建空白模板
7、 新增数据集 ds1,SQL 查询语句为:SELECT * FROM stscore,用于加载学生分数原始数据。
8、 模板设计思路
9、 设置单元格样式及布局:

10、 在模板中调用 switch 函数实现分类映射
11、 定位至 A2 单元格,右键选择【插入数据列】→【高级】,或直接双击该单元格进入编辑模式。在“自定义显示值”栏中输入如下表达式:switch($$$,Class1,一班,Class2,二班,Class3,三班,Class4,四班)
该表达式的作用是将字段值 Class1、Class2、Class3、Class4 分别映射为中文班级名称“一班”“二班”“三班”“四班”,完成字段语义转换,实际效果如下图所示:

12、 预览最终呈现效果
13、 支持分页渲染,展示效果如下:
