帆软社区
首页
服务平台
文档
学院
问答
论坛
认证
招聘
任务
市场
登录
请
登录
后使用快捷导航
没有帐号?
立即注册
用户操作
任务管理
我的任务
详情
摇摇乐
大转盘
许愿墙
积分商城
每日签到
设置
我的收藏
退出
腾讯QQ
微信登录
提问
针对SWITH函数的增强
番薯交流
发表于 2020-9-27 14:28
关注主题
取消关注
最新回复
取消
置顶回复
取消
最新编辑
楼主
x1205607030
Lv5
当前离线
经验值
1384
|
F豆
650 个
|
F币
0 元
贡献
0
|
最后登录
2024-12-9
加为好友
发送消息
x1205607030
Lv5
关注ta
我是社区第429104位番薯,欢迎点我头像关注我哦~
package
plus;
import
com.fr.function.SWITCH;
import
com.fr.general.ComparatorUtils;
import
com.fr.script.Calculator;
import
com.fr.stable.Primitive;
import
com.fr.stable.UtilEvalError;
import
com.fr.stable.script.Node;
public class
SwitchExtension
extends
SWITCH {
@Override
public
Object evalExpression(Node[] args)
throws
UtilEvalError {
if
(args.
length
<
2
) {
return
Primitive.
ERROR_NAME
;
}
else
{
Calculator calculator =
this
.getCalculator();
Object cal = calculator.evalValue(args[
0
]);
int
argsLength=args.
length
;
for
(
int
i =
1
; i < (argsLength%
2
==
0
?argsLength-
1
:argsLength); i +=
2
) {//新增判断是否有默认值
Object var5 = calculator.evalValue(args
);
if
(ComparatorUtils.
equals
(cal, var5) && i +
1
< args.
length
) {
return
calculator.eval(args[i +
1
]);
}
}
if
(argsLength%
2
==
0
) {
return
calculator.eval(args[argsLength-
1
]);//无符合条件的结果情况下且有默认值则采用默认值
}
return
Primitive.
NULL
;
}
}
}
0
0
分享扩散:
举报
沙发
x1205607030
Lv5
当前离线
经验值
1384
|
F豆
650 个
|
F币
0 元
贡献
0
|
最后登录
2024-12-9
加为好友
发送消息
x1205607030
Lv5
关注ta
发表于 2020-9-27 14:33:35
用法参照
https://help.fanruan.com/finereport/doc-view-698.html
中的3.3
示例:switchplus(表达式,结果1,值2,结果2...[,默认值])
如果表达式的结果是值1,整个函数返回结果1
如果表达式的结果是值2,整个函数返回结果2
如果表达式的结果是值3,整个函数返回结果3等等
如果无相符的结果且有默认值,则返回默认值
赞
举报
返回列表
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
本版积分规则
发表回复
回帖后跳转到最后一页
1
回帖数
1
关注人数
4344
浏览人数
最后回复于:
2020-9-27 14:33
任务进行中
话题进行中...
我花8个小时,写出了小白也能看懂的数仓搭建方案
浏览数:16
单元格自动重算问题
浏览数:113
我的报表工程师学习之旅
浏览数:95
终于有人讲清楚如何搭建指标字典(附金融和物流指标参考图)
浏览数:596
连续八年!帆软蝉联中国商业智能软件市场占有率第一
浏览数:299
帆软本地部署后,设置90天密码有效期,到期后修改密码,无法修改密码,无法用旧密码
浏览数:161
请教如何实现点击单元格快捷复制内容
浏览数:229
获得FCRA,我的心路历程
浏览数:268
文科生的报表分析师坎坷学习之路
浏览数:250
学习不止于此,是结束也是新的开始
浏览数:170
主题链接
复制
返回顶部
返回列表