U8出纳管理下的账务管理,如果要筛选未制单的日记账记录,即使选择了未制单选项也不能筛选出任何记录来,这一很囧的问题让我的客户非常抓狂(当然也包括我),经过研究分析终于发现了问题所在,真的很无语,明显的数据库开发经验不足和数据结构分析定义不规范所造成的悲剧!
修改cn_acctbookview视图,将
SELECT ...
CASE WHEN ISNULL(CN_AcctBook.VouchOutSignNum, '')
<> '' THEN T.ino_id ELSE VoucherNum END AS VoucherNumU8
改为 :
CASE WHEN ISNULL(CN_AcctBook.VouchOutSignNum, '')
<> '' THEN T.ino_id ELSE isnull(VoucherNum,0) END AS VoucherNumU8
后问题解决。
因为在筛选 未制单日记账记录时出现一个条件:VoucherNumU8 <=0,因为在未赋予默认值的情况下,VoucherNumU8 得出的是null值,最终导致该条件无论什么情况都不成立,最终无法筛选记录。
建立库表的时候不为字段设置默认值是很基本的误区(也是很没有设计经验的表现),最终会为以后的软件维护和性能优化带来无穷的困扰。Ufida作为一个上市公司,开发的产品标准化上还存在不小的问题,出纳这个问题就算是最基本的测试都不可能通过的,真不明白是怎么就发布出来了呢,实在是佩服ufida的测试组成员的水平!!