以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 关于e.SelectString使用 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=59514) |
-- 作者:skyman1188 -- 发布时间:2014/11/5 17:53:00 -- 关于e.SelectString使用 我在BeforeLoadOuterTable里面下的如下语句 \'e.SelectString = "Select * From {订单表} Where [D2] = e.User.Name" 每一条订单我都有录入人员的工号,当登陆后希望只能显和登陆工号相等的订单,结果出错“加载表失败”,请问这一句该怎么写?
|
-- 作者:有点甜 -- 发布时间:2014/11/5 17:55:00 -- e.SelectString = "Select * From {订单表} Where [D2] = \'" & e.User.Name & "\'" |
-- 作者:有点甜 -- 发布时间:2014/11/5 17:57:00 -- e.SelectString = "Select * From {订单表} Where [D2] = \'" & e.User.Name & "\'" |
-- 作者:skyman1188 -- 发布时间:2014/11/5 18:19:00 -- 还是不行啊 我列属性是整数,但是这样做还是不行啊,还是所有行都加载了。后面的LOAD语句是可以筛选掉,但是加载时间就比较长了。 我用的是sql server 2005
[此贴子已经被作者于2014-11-5 18:32:46编辑过]
|
-- 作者:有点甜 -- 发布时间:2014/11/5 19:09:00 -- 1、肯定是可以的。
2、你可以最初不加载任何数据,在afterOpenProject的时候再设置loadfilter,重新load一下 |
-- 作者:skyman1188 -- 发布时间:2014/11/6 10:33:00 -- 可以了 谢谢群主是可以了。 我还有一个新问题,有一张员工资料表,表里面有工号和负责区域 载入订单表,根据这个负责的区域载入,我在BeforeLoadOuterTable该怎么写 e.SelectString = "Select * From {订单表} Where [区域] = 这里是员工资料表的区域那一项"
[此贴子已经被作者于2014-11-6 10:32:57编辑过]
|
-- 作者:有点甜 -- 发布时间:2014/11/6 10:34:00 -- 1、初始不要加载数据;
2、在afterOpenProject事件里,根据登陆用户,查找数据,再设置loadfilter,重新load |
-- 作者:skyman1188 -- 发布时间:2014/11/6 10:54:00 -- 似乎有点问题 我在BeforeLoadOuterTable里面设置 If e.DataTableName = "订单表" Then e.SelectString = "Select TOP 0 * From {订单表}" End If 就是载入0行。 然后在LoadUserSetting或者AfterOpenProject中写如下代码
Dim msg As String
msg = "" DataTables("订单表").LoadFilter = msg DataTables("订单表").Load 结果打开后,还是没有载入内容,表显示了,内容是0行。 |
-- 作者:有点甜 -- 发布时间:2014/11/6 10:57:00 -- e.SelectString = "Select TOP 0 * From {订单表}"
改成
e.SelectString = "Select * From {订单表} where 1=2" |
-- 作者:skyman1188 -- 发布时间:2014/11/6 11:44:00 -- 应该试试可以了 打开速度应该快了很多,不然在BeforeLoadOuterTable后默认打开一次数据库,在LoadUserSetting设置权限时候,又打开一次数据库,变成重复工作了。 我这么说是否有道理?
|