Foxtable(狐表)用户栏目专家坐堂 → 关于e.SelectString使用


  共有2995人关注过本帖树形打印复制链接

主题:关于e.SelectString使用

帅哥哟,离线,有人找我吗?
skyman1188
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:109 积分:1104 威望:0 精华:0 注册:2012/2/26 17:36:00
关于e.SelectString使用  发帖心情 Post By:2014/11/5 17:53:00 [只看该作者]

我在BeforeLoadOuterTable里面下的如下语句

'e.SelectString = "Select * From {订单表} Where [D2] = e.User.Name"

每一条订单我都有录入人员的工号,当登陆后希望只能显和登陆工号相等的订单,结果出错“加载表失败”,请问这一句该怎么写?

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/11/5 17:55:00 [只看该作者]

e.SelectString = "Select * From {订单表} Where [D2] = '" & e.User.Name & "'"

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/11/5 17:57:00 [只看该作者]

e.SelectString = "Select * From {订单表} Where [D2] = '" & e.User.Name & "'"

 回到顶部
帅哥哟,离线,有人找我吗?
skyman1188
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:109 积分:1104 威望:0 精华:0 注册:2012/2/26 17:36:00
还是不行啊  发帖心情 Post By:2014/11/5 18:19:00 [只看该作者]

我列属性是整数,但是这样做还是不行啊,还是所有行都加载了。后面的LOAD语句是可以筛选掉,但是加载时间就比较长了。
我用的是sql server 2005
[此贴子已经被作者于2014-11-5 18:32:46编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/11/5 19:09:00 [只看该作者]

 1、肯定是可以的。

 

 2、你可以最初不加载任何数据,在afterOpenProject的时候再设置loadfilter,重新load一下


 回到顶部
帅哥哟,离线,有人找我吗?
skyman1188
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:109 积分:1104 威望:0 精华:0 注册:2012/2/26 17:36:00
可以了  发帖心情 Post By:2014/11/6 10:33:00 [只看该作者]

谢谢群主是可以了。
我还有一个新问题,有一张员工资料表,表里面有工号和负责区域
载入订单表,根据这个负责的区域载入,我在BeforeLoadOuterTable该怎么写
e.SelectString = "Select * From {订单表} Where [区域] = 这里是员工资料表的区域那一项"

[此贴子已经被作者于2014-11-6 10:32:57编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/11/6 10:34:00 [只看该作者]

 1、初始不要加载数据;

 

 2、在afterOpenProject事件里,根据登陆用户,查找数据,再设置loadfilter,重新load


 回到顶部
帅哥哟,离线,有人找我吗?
skyman1188
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:109 积分:1104 威望:0 精华:0 注册:2012/2/26 17:36:00
似乎有点问题  发帖心情 Post By: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行。


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/11/6 10:57:00 [只看该作者]

e.SelectString = "Select TOP 0 * From {订单表}"

 

改成

 

e.SelectString = "Select * From {订单表} where 1=2"


 回到顶部
帅哥哟,离线,有人找我吗?
skyman1188
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:109 积分:1104 威望:0 精华:0 注册:2012/2/26 17:36:00
应该试试可以了  发帖心情 Post By:2014/11/6 11:44:00 [只看该作者]

打开速度应该快了很多,不然在BeforeLoadOuterTable后默认打开一次数据库,在LoadUserSetting设置权限时候,又打开一次数据库,变成重复工作了。

我这么说是否有道理?

 回到顶部
总数 11 1 2 下一页