以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 请教选择性加载数据的问题 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=33332) |
-- 作者:audience68 -- 发布时间:2013/5/16 8:12:00 -- 请教选择性加载数据的问题 请专家和高手指点: 我想实现当每个用户登录数据库时,数据库加载时根据该用户负责的“装置名称”进行数据库的加载,我参考帮助维护了下面的语句,可是怎么测试都不对,总是在登录时出现无法加载表的错误,请各位帮我看看是不是我的条件语句有问题,谢谢了!语句如下: 在"before loadoutertable"项目事件中编写了: If e.User.Name = "张三" Then
我使用的是外部数据库。 |
-- 作者:Bin -- 发布时间:2013/5/16 8:35:00 -- 你要先判断一下当前连接的表示什么,再设置它的SelectString 你这样不管任何表都一股脑的设置为这样,肯定有问题. 而且你这样设置2个SelectString 没有意义,第一个已经被第二个覆盖了. 帮助里都有简单例子可以供你参考的 http://www.foxtable.com/help/topics/0670.htm
|
-- 作者:audience68 -- 发布时间:2013/5/16 13:07:00 -- If e.DataTableName = "监造统计" AndAlso e.User.Name = "张三" Then
按照例子修改成上面的表述,还是出错! |
-- 作者:狐狸爸爸 -- 发布时间:2013/5/16 18:38:00 -- 错误提示? |
-- 作者:ybil -- 发布时间:2013/5/16 18:46:00 -- If e.DataTableName = "监造统计" AndAlso e.User.Name = "张三" Then e.SelectString = "Select * From {监造统计} Where [工程项目/用户] = \'炼油改造项目\'" End If If e.DataTableName = "合同明细表" AndAlso e.User.Name = "张三" Then e.SelectString = "Select * From {合同明细表} Where [项目名称] = \'炼油改造项目\'" End If [此贴子已经被作者于2013-5-16 18:46:03编辑过]
|
-- 作者:audience68 -- 发布时间:2013/5/16 21:33:00 -- 按照ybil的要求进行了修改: If e.DataTableName = "监造统计" AndAlso e.User.Name = "郭宗平" Then e.SelectString = "Select * From {监造统计} Where [工程项目/用户] = \'炼油改造项目\'" End If If e.DataTableName = "合同明细表" AndAlso e.User.Name = "郭宗平" Then e.SelectString = "Select * From {合同明细表} Where [项目名称] = \'炼油改造项目\'" End If 运行没有报错,但是却没有实现仅仅加载“炼油改造项目”的目的,而是把所有的项目都加载了。不知是什么原因,我真不知道该如何是好了。请高手不吝赐教。谢谢了。
|
-- 作者:fjlclxj -- 发布时间:2013/5/16 21:43:00 -- 确定 if 条件都满足了,表名、用户名? |
-- 作者:audience68 -- 发布时间:2013/5/16 22:23:00 -- 我把表的内容结构传上来,请高手指导,总之,我用上面的语句运行后没有报错,但却没有实现有条件的加载,即仅仅加载“炼油改造项目” |
-- 作者:audience68 -- 发布时间:2013/5/16 22:36:00 -- 这是表内容 |
-- 作者:audience68 -- 发布时间:2013/5/16 22:40:00 -- 此主题相关图片如下:表.png 这样总可以了吧
|