[已解决]分录空行保存时自动删除的问题
金蝶云社区-135xxxx7100
135xxxx7100
0人赞赏了该文章 2136次浏览 未经作者许可,禁止转载编辑于2015年07月29日 10:46:31

我自定义了一个单据,只有一个分录表,分录表只有一个字段可输入,分录表已经做了必录设置了,并且也设置了关键分录、分录关键字段,我最终想要的效果是:分录强制30行,在保存的时候验证要求每行都要输入数据。
由此需求带来了我几个疑问:

1、我尝试在BOS平台设置了默认行数30行,保存操作的时候添加一个单据合法性验证:字段值>0,结果却是只要输入一行就能保存,满足不了需求。那么在BOS平台通过配置能否实现(尽量不要在单据头和分录中增加额外字段)?

2、我尝试在表单插件的BeforeSave方法中进行验证,调试的时候发现几个问题,虽然我设置了默认行数30行,前台显示是30行,但是进入到BeforeSave方法后,实际行数变成了仅输入数据的几行,其他的空行全部消失了,这样虽然可以验证输入不完整,但是提示返回后,原本的30行,空行都没有了,这样造成无法输入了,只能在代码里添加缺失了空行,这样虽然也能满足需求,但是感觉太繁琐,我也很好奇系统的实现逻辑,依据什么判断是不是空行?

3、分录的这个字段输入的是一个整数,但是Cloud有一个我很不理解的默认逻辑,就是数值型字段如果你不输入任何数据尽然强制给默认值0,因为这个字段我是允许输入0的,我怎么判断是没输入还是故意输0的?如何实现不输入数值的时候保存为null?

解决方法:
1.默认分录表(单据体)为30行,并去掉新增、删除行菜单:使用户无法主动删除、添加行,只能使用此30行
2.关键字段属性清空:保存时,系统如果发现关键字段为空,则自动删除此行,这显然不符合楼主要求,因此清空关键字段;
3.现在K/3 Cloud规则确实如此,整数字段,默认值就是0,请自行设法规避此规则(如设置字段默认值为-100)。