Foxtable(狐表)用户栏目专家坐堂 → sys_开头的系统列的值不能被引用的问题


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

主题:sys_开头的系统列的值不能被引用的问题

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


加好友 发短信
等级:四尾狐 帖子:976 积分:8527 威望:0 精华:0 注册:2012/2/9 16:35:00
sys_开头的系统列的值不能被引用的问题  发帖心情 Post By:2012/12/27 17:02:00 [只看该作者]

各位老师,

 

我在表中增加了一个“sys_传递说明”的系统列,在PositionChanged全局表事件中用如下代码将每行的传递说明显示在窗口的“传递说明”文本框中,

If e.Table.Cols.contains("sys_传递说明") Then
    Forms("导航").Controls("传递说明").Value = e.Table.Current("sys_传递说明")
End If

 

当以开发者登陆时窗口的“传递说明”文本框中可以看见内容,但如果以其他非开发者的用户登陆时窗口的“传递说明”文本框中就什么都看不见。是什么原因或者有什么改进的办法(在系统列不改为普通列的情况下)?

 

谢谢!


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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2012/12/27 17:15:00 [只看该作者]

e.Table.Current.DataRow.BaseRow("sys_传递说明")

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


加好友 发短信
等级:四尾狐 帖子:976 积分:8527 威望:0 精华:0 注册:2012/2/9 16:35:00
  发帖心情 Post By:2012/12/27 17:24:00 [只看该作者]

谢谢狐爸,还是不可以,我只要把“sys_传递说明”改为“传递说明”的话就没有这个问题。还有没有其他办法?

 


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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2012/12/27 17:39:00 [只看该作者]

应该不会有问题的,说明你代码中列名称错了吧

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


加好友 发短信
等级:四尾狐 帖子:976 积分:8527 威望:0 精华:0 注册:2012/2/9 16:35:00
  发帖心情 Post By:2012/12/27 18:18:00 [只看该作者]

就这么两句

If tbs.Contains(e.Table.name) And Forms("导航").Opened Then
    '给传递说明文本框赋值
    If e.Table.Cols.contains("sys_传递说明") Then
        Forms("导航").Controls("传递说明").Value = e.Table.Current.DataRow.BaseRow("sys_传递说明")
    End If
End If

 

而且问题是以开发者登陆进入后可以啊,而其他用户登陆就没有,是不是红色的代码也要改一下,因为非开发者登陆sys_的列不会显示。关键是如果将表中的列名由“sys_传递说明”改为“传递说明”后就没问题说明也不是这个原因。

 


此主题相关图片如下:360截图20121227181438446.jpg
按此在新窗口浏览图片

此主题相关图片如下:360截图20121227181657307.jpg
按此在新窗口浏览图片
[此贴子已经被作者于2012-12-27 18:24:05编辑过]

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


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

问题出在这里:

 

 If e.Table.Cols.contains("sys_传递说明") Then

 

sys开头的列不可见,所以e.Table.Cols是不会包括这里的,但是你可以使用这列的值。

 

要判断的话,改为:

 

If e.Table.DataTable.BaseTable.Columns.contains("sys_传递说明") Then

 

 


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


加好友 发短信
等级:四尾狐 帖子:976 积分:8527 威望:0 精华:0 注册:2012/2/9 16:35:00
  发帖心情 Post By:2012/12/27 20:59:00 [只看该作者]

果然是这个原因造成的。谢谢有点甜!

 回到顶部