关于布尔类型做为通用过滤查询字段说明原创
金蝶云社区-Hadwin
Hadwin
1人赞赏了该文章 291次浏览 未经作者许可,禁止转载编辑于2021年07月31日 10:58:20

如下图所示,在业务数据源加上了一个布尔类型字段,在通用过滤查询面板报错

image.png

通用过滤界面打开报错堆栈如下:

java.lang.NullPointerException: null

        at: com.kingdee.eas.base.commonquery.client.CommonFilterUtil.isEnumType(CommonFilterUtil.java:131)

        at: com.kingdee.eas.base.commonquery.client.CommonFilterPanel.setCompareCell(CommonFilterPanel.java:2357)

        at: com.kingdee.eas.base.commonquery.client.CommonFilterPanel.onMouseClicked(CommonFilterPanel.java:2468)


问题分析:

布尔类型自读对应的计算式#0 一般是xxx.id,对应的返回类型为String,而#0作为计算式时,#0的对应的字段类型必须与数据类型一致,类型为布尔类型,故变通处理方式如下#0用布尔类型代替,查询时用#1做条件即可,类似写法:CASE WHEN EXISTS (SELECT FID FROM T_XXX WHERE FXXX = #1) THEN 1 ELSE 0 END,详参下图。

image.png







赞 1