电脑桌面
添加蚂蚁七词文库到电脑桌面
安装后可以在桌面快捷访问

数值类型允许为空,您了解吗?

来源:金蝶云社区作者:金蝶2024-09-2312

数值类型允许为空,您了解吗?

您是否遇到如下的业务场景?


金额为0为空,含义不同。如在银企互联-银行账户余额查询列表的昨日余额、可用余额要允许为空,而不能置为0,其含义不是金额是0,而是银行未提供此数据。


实际业务场景中,为空往往指未发生业务,为0指发生了金额、数量为0的业务


那当我们该如何解决此类业务场景问题呢?别急,听小编缓缓为您道来~




1 配置字段属性


针对上述的业务场景,“数值类型允许为空”应运而生。


打开苍穹开发平台,添加一个金额字段,我们会看到“允许为空”按钮,点击开启。苍穹默认情况下是关闭为零显示按钮的,既然要区分0和空值,自然要把为零显示开关也一并打开了,之后点击保存允许为空的金额字段就设计好了。



2 数据库变更


新增的字段平台会生成表建字段语句,如果历史数值字段想改成支持允许为空,除历史数据升级之外,还需要修改数据表字段属性。


下图以Oracle数据库可视化工具Navicat操作为例:


方法1.使用可视化工具修改


具体操作内容如下图所示:



方法2.使用SQL脚本修改


以Oracle数据库操作为例:


语法:ALTER TABLE  <表名>  MODIFY <列名> NULL;


示例:ALTER TABLE T_TESTNULL MODIFY FINTEGERFIELD NULL;


默认值可设置亦可不设置。



那么小伙伴们又有问题了,敲黑板划重点了。。。


问题一:处理金额支持允许为空,还有其他数值类型支持么?


当然了,为了满足更多的业务场景,我们的整数、长整数、小数、单价、数量控件也都支持允许为空的设置。


问题二:开启允许为空后,后续如果想关闭允许为空该怎么做呢?


对于已经录入空值的数据,此时因为关闭了允许为空,虽然数据库保存的是空值,但页面展示的是0。既然都不允许为空了,最好把数据库表中的空值改为0,这个时候需要使用到SQL脚本,下面以Oracle数据库操作为例:


语法:UPDATE <表名> SET <列名>  = 0  WHERE  <列名>  IS NULL;


示例


UPDATE T_TESTNULL SET FINTEGERFIELD = 0 WHERE FINTEGERFIELD IS NULL;


必要的情况下,字段设置成不允许为空


ALTER TABLE T_TESTNULL MODIFY FINTEGERFIELD NOT NULL;


问题三:数值为空的情况下对BOTP业务流有影响吗?


BOTP反写方式为累加或扣减时,如果数据为空值,将当做0来参与计算;配置的转换规则中;如果源单行所有数据都为空值,那么合计、最大、最小、平均值结果

数值类型允许为空,您了解吗?

您是否遇到如下的业务场景?金额为0与为空,含义不同。如在银企互联-银行账户余额查询列表的昨日余额、可用余额要允许为空,而不能置为0,...
点击下载文档文档为doc格式

声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。

确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息
QQ群
  • 答案:my7c点击这里加入QQ群
支持邮箱
微信
  • 微信