报表也好,界面也好,用户也好,它们能用什么,不能用什么,统统都在《用户权限》这一个表单中设定。今天就遇到了一件蹊跷的事情。
本人在《PO表单》中开发了一个按钮“通”,是方便用户查询收料、发料情况的。按照俺的设想,不管用户们在这个表单里面具有什么权限,添加\修改\删除,或者干脆只有查看权,--只要他们能够进来看得到这个按钮,俺就能够帮他们做一些实事,因为这是一个纯浏览的报表而已。那么思路就很简单,只要PO表单中哪些人有何等权限,俺就照抄这些权限给”PoTong报表”就可以了。
结果发现PO表单中,有各种权限的人员或者组别达22人之多。难道要我一个个地拷贝粘貼?GAMMA的难操作是出了名的,而且越是枯燥的反复操作,越是笨拙的要命。所以还不如直接到后台数据库中实现。将PO的UserRight抄给PoTong,回到前台一看,怪事情来了:
没有用户,连一个也没有!
这是咋回事情呢?试着加一个其实在底部已经存在的用户,保存时果然报错说“破坏了唯一性的原则”,这就说明所有的记录都的的确确在后台存在着,可为什么前台就是看不见?
在《个人设定》中勾选了“显示SQL语句”,忍受着毫无必要的防盗版语句(每分钟两次)的骚扰,在GRID中上下滑动,结果它根本不捕捉这个事件!
转了一大圈子,还是回到底部数据中来。仔细地比较了一下PO和PoTong的记录行区别: Select * From UserRight Where Name In (‘PO’,’PoTong’)
发现了两个苗头:一个是Type,前者的为“S”(代表表单),后者应该为“R”(代表报表)才对!可后者也是S,这不奇怪,照抄的嘛。另外一个就是MenuFormItem,前者是表单,自然有菜单项;而后者是报表,理应没有才是,结果它也有,原来照抄过来了。分别Update这些错误,再到前台一看,哈哈,所有“遁形”的用户全部现形!