Rss & SiteMap
搭建论坛 http://bbs.diylsoft.com:8118/starforum/index.asp
根据手册,我(谁都也会同样)认为和理解:将数据表属性中的‘过滤活动’设为‘假’时,就等同于无条件的将所有过滤变量赋值释放(清空),也就是常说的回位或归零概念吧,所有过滤条件都将不能执行(不管曾经执行过多少个(次)的过滤活动),数据表中的记录回复到原始排列状态。
——但事实上,将数据表属性中的‘过滤活动’设置为‘假’后,看似过滤活动停止了,所有过滤条件都将不能执行,数据表中的记录也回复到原始排列状态。可是。曾经给过滤变量赋过的值却并没有清空(回位或归零)。
——这样,在设置有多个过滤变量时,就出现问题了,(比如:变量甲:ABC,赋值甲:ACB1;变量乙:EDC,赋值乙:EDC1;变量丙:JKL,赋值丙:JKL1;变量丁:QAZ,赋值丁:QAZ1)。第一次执行甲、乙、丙、丁全部过滤后,将数据表属性中的‘过滤活动’设置为‘假’,数据表中的记录回复到原始排列状态。第二次,再需要执行过滤,而是只执行变量甲一个条件的过滤,这时,却会将第一次执行过的变量乙、丙、丁赋值都会加入其中一同过滤了。只有再次先将变量乙、丙、丁的赋值用手工设置为‘空字符’去覆盖曾经赋过的值(其实就是一个清空变量赋值的动作),才能达到第二次过滤的目的。(将‘过滤活动为假有效’属性,在需要时动态改变为‘真’或‘假’,也可能达到目的。但没有清空变量赋值来得保险)。
——因此,应该让将数据表属性中的‘过滤活动’设置为‘假’的过程中自动无条件的清空所有过滤变量赋值(回位或归零),只有这样才能放手去作自己的编程,不考虑任何干扰,重新定义自己的过滤赋值。否则,靠手工去设置,不但凭空增加了语句量而且很麻烦很容易出错和乱套,特别是变量多时。并且,这个错误是很不容易查出的,因为,它根本没有任何表现,程序很正常在执行着,只是不能达到过滤目的罢了。就这个问题阻挡和困扰了我很长时间,人都差点被它害死了!因此,提出来提请大家注意。
——这也应该算是一个BUG吧,(不管公司怎样有自己的定义和解释,但我相信大家和程序本身,应该是上述的认为和理解)。BUG会害死人啊!!
——大家可自己去测试一下就体会到了。
——请公司火速更正!不要把本能简单化的问题,复杂化了。
简单的解决办法,每次将过滤属性设置为假后紧跟着进行过滤的定义设置即可,比如第一次将"日期=':date and 客户号=':khh"赋值给过滤的定义属性,此时若变量甲为"date",变量已为"khh",则需要分别给两个变量赋值,若在执行过程中再把"日期=':date"赋值给过滤的定义属性,则只要设置赋值甲即可.
其实,在一楼的楼主帖子已经提出解决办法,意思完全与水手的意思相同(都是替代与覆盖的清除意义)。
只是,将数据表属性中的‘过滤活动’设为‘假’时,本来通行的认识和理解就是要将所有过滤赋值清除的意思。最为简单的办法就是星本身要完成这个通行的认识和理解就可以了,一切麻烦就彻底解决了,余下的事情编程者自会按照通行的认识和理解去做程序了。