yhdata_Zuihou5白银一
2022-2-16 09:27:43 发布在问答
【数据处理】 新建计算列中逻辑表达式不能嵌套?
报表中的新建计算列中if...else的逻辑表达式,不能使用嵌套吗?新建计算列和脚本好像是有很大的不同!

最佳答案

永洪tech-Bella 白银二

2022-02-16 09:27:44

请问下这样调整能否解决呢?这个问题已经进行了内部确认,在新的版本中对这种返回布尔类型的函数统一做了优化,目前924版本没有包含这个优化 当前924版本,可以考虑用sql计算列或者将原本的写法调整一下,会有语法检测错误,这个错误不影响执行。如果不介意这个语法检测,可以在924上这样用,如果介意就建议升级,比如941 ...
查看完整内容
3965
11
精彩评论11
永洪tech-Bella白银二
发表于 2022-2-16 09:27:44 显示全部楼层
永洪tech-Bella 发表于 2022-2-16 13:41
您试一下换成这种写法呢,是否就正常了

CASE

请问下这样调整能否解决呢?这个问题已经进行了内部确认,在新的版本中对这种返回布尔类型的函数统一做了优化,目前924版本没有包含这个优化
当前924版本,可以考虑用sql计算列或者将原本的写法调整一下,会有语法检测错误,这个错误不影响执行。如果不介意这个语法检测,可以在924上这样用,如果介意就建议升级,比如941
8.png
回复

使用道具 2#

永洪tech-Bella白银二
发表于 2022-2-16 09:43:09 显示全部楼层
是用的新语法吗?可以看下提示,如果是下图这样就是新语法另外可以说下想要实现的逻辑,咱们具体看看
24.png
回复

使用道具 3#

yhdata_Zuihou5白银一
发表于 2022-2-16 10:23:39 显示全部楼层
永洪tech-Bella 发表于 2022-2-16 09:43
是用的新语法吗?可以看下提示,如果是下图这样就是新语法另外可以说下想要实现的逻辑,咱们具体看看

...

if(isNull(col['QXTYPE'])==true and col['客户所属系统']==1) then 'a'
elseIf(isNull(col['QXTYPE'])==true and col['客户所属系统']==2) then 'b'
elseIf(col['QXTYPE']==14883 or col['QXTYPE']==14884) then 'c'
elseIf(col['QXTYPE']==14885) then 'd'
elseIf(col['QXTYPE']==14886) then 'e'
elseIf(col['QXTYPE']==14887) then 'f'
end

结果显示 true 标识符无效?
回复

使用道具 4#

yhdata_Zuihou5白银一
发表于 2022-2-16 10:24:28 显示全部楼层
yhdata_wLFD4qwF 发表于 2022-2-16 10:23
if(isNull(col['QXTYPE'])==true and col['客户所属系统']==1) then 'a'
elseIf(isNull(col['QXTYPE'])== ...

TRUE 标识符无效?
计算列问题(True标识符无效).jpg
回复

使用道具 5#

yhdata_Zuihou5白银一
发表于 2022-2-16 10:26:46 显示全部楼层
永洪tech-Bella 发表于 2022-2-16 09:43
是用的新语法吗?可以看下提示,如果是下图这样就是新语法另外可以说下想要实现的逻辑,咱们具体看看

...


这也有false 和 ture的表示啊
回复

使用道具 6#

永洪tech-Bella白银二
发表于 2022-2-16 10:44:46 显示全部楼层
yhdata_wLFD4qwF 发表于 2022-2-16 10:23
if(isNull(col['QXTYPE'])==true and col['客户所属系统']==1) then 'a'
elseIf(isNull(col['QXTYPE'])== ...

试下修改成这样呢,还是一样的报错吗?
if(isNull(col['QXTYPE']) and col['客户所属系统']==1) then 'a'
elseif(isNull(col['QXTYPE']) and col['客户所属系统']==2) then 'b'
elseif(col['QXTYPE']==14883 or col['QXTYPE']==14884) then 'c'
elseif(col['QXTYPE']==14885) then 'd'
elseif(col['QXTYPE']==14886) then 'e'
elseif(col['QXTYPE']==14887) then 'f'
end
回复

使用道具 7#

yhdata_Zuihou5白银一
发表于 2022-2-16 11:03:00 显示全部楼层
永洪tech-Bella 发表于 2022-2-16 10:44
试下修改成这样呢,还是一样的报错吗?
if(isNull(col['QXTYPE']) and col['客户所属系统']==1) then 'a' ...

这次报错是:无效的关系运算符
回复

使用道具 8#

永洪tech-Bella白银二
发表于 2022-2-16 11:07:21 显示全部楼层
yhdata_wLFD4qwF 发表于 2022-2-16 11:03
这次报错是:无效的关系运算符

and  修改为 &&
or  修改为 ||
然后再看看呢,另外咱们产品是什么版本,我这边对应版本再试试看呢
回复

使用道具 9#

yhdata_Zuihou5白银一
发表于 2022-2-16 11:22:18 显示全部楼层
永洪tech-Bella 发表于 2022-2-16 11:07
and  修改为 &&
or  修改为 ||
然后再看看呢,另外咱们产品是什么版本,我这边对应版本再试试看呢 ...

还是不行,我用的版本现在是Z的9.2.4
回复

使用道具 10#

12  
高级模式
您需要登录后才可以回帖 登录 | 免费注册

  • 官方微信

    欢迎关注永洪服务号!收费为0,价值无限

    扫码关注
  • 新浪微博

    让每位用户轻松挖掘数据价值!

    访问新浪微博
  • 智能客服
1500W

用户等你来哦

Copyright   ©2012-2025  北京永洪商智科技有限公司  (京ICP备12050607) 京公网安备110110802011451号 |《永洪社区协议》
返回顶部