Foxtable(狐表)用户栏目专家坐堂 → [求助]为什么有字段却提示字段不属于表


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

主题:[求助]为什么有字段却提示字段不属于表

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


加好友 发短信
等级:九尾狐 帖子:2239 积分:18446 威望:0 精华:0 注册:2011/11/26 20:21:00
[求助]为什么有字段却提示字段不属于表  发帖心情 Post By:2014/3/4 19:03:00 [只看该作者]

我一打开这个窗口就报出错误,说是sysadd不属于窗口表。
但我检查了一下代码,没发现什么错误,而且点了报错窗口的确定之后,这个表数据显示出来,有sysadd这个字段啊。
还请各位狐神指点迷津。
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目19.table


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


加好友 发短信
等级:版主 帖子:5246 积分:33163 威望:0 精华:8 注册:2013/1/17 21:28:00
  发帖心情 Post By:2014/3/4 20:07:00 [只看该作者]

If e.Table.Cols.Contains("SysAdd") = False Then
    Return
End If

Dim tv As WinForm.TreeView = e.Form.Controls("TreeView1")
If tv Is Nothing Then Return

If e.Table.Current IsNot Nothing Then  '一定要判断是不是空表
    If e.Table.Current("SysAdd") = True Then
        For Each node As WinForm.TreeNode In tv.AllNodes
            If node.FullName.replace("\",".") = e.Table.Current("SplitCode")   Then
                tv.SelectedNode = node
                Exit For
            End If
        Next
    End If
End If


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


加好友 发短信
等级:九尾狐 帖子:2239 积分:18446 威望:0 精华:0 注册:2011/11/26 20:21:00
  发帖心情 Post By:2014/3/4 20:27:00 [只看该作者]

为啥子要加这个?


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


加好友 发短信
等级:版主 帖子:5246 积分:33163 威望:0 精华:8 注册:2013/1/17 21:28:00
  发帖心情 Post By:2014/3/4 20:33:00 [只看该作者]

CurrentChanged先执行了,表后生成。

那就等表生成,有了SysAdd才执行CurrentChanged


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


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

以下是引用chnfo在2014-3-4 20:27:00的发言:
为啥子要加这个?

 

你设置了 TableConChD 表是 sqltabel 类型,但并没有指定打开窗口的时候往表里填充真正的表。

 

方法一,把表改成副本表,绑定

 

方法二,编写sql语句


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


加好友 发短信
等级:九尾狐 帖子:2239 积分:18446 威望:0 精华:0 注册:2011/11/26 20:21:00
  发帖心情 Post By:2014/3/4 20:57:00 [只看该作者]

方法二,编写sql语句

---这个咋个整法?

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


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

 select * from {xxx} where 1=2

 

http://www.foxtable.com/help/topics/1907.htm


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


加好友 发短信
等级:九尾狐 帖子:2239 积分:18446 威望:0 精华:0 注册:2011/11/26 20:21:00
  发帖心情 Post By:2014/3/4 22:07:00 [只看该作者]

再请教一下。
1、是不是在“SQLTable型Table-例如按照下图所示设置Table控件的属性”里写了SQL就可以不用加
If e.Table.Cols.Contains("SysAdd") = False Then
    Return
End If
这个判断了?
2、在SQLTable型Table-例如按照下图所示设置Table控件的属性"里写SQL可不可以用表达式变量,例如
select * from {TbA} where ID = '" &  全局变量X & "' and Code = '" & tables("MM").current("Code") & "'" 
之类?

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


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

 第一个问题:是的,只要你的这个SqlTable里有SysAdd列,就不需要判断了。

 

 第二个问题:不能用变量。这个是最初始生成的时候执行的,不要太在意,因为你在运行过程中还用fill动态改变了


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


加好友 发短信
等级:九尾狐 帖子:2239 积分:18446 威望:0 精华:0 注册:2011/11/26 20:21:00
  发帖心情 Post By:2014/3/4 22:32:00 [只看该作者]

意思是不是这样?
1、我直接在设置界面里写上select * from {A} ,而表A里正好有sysadd列,就不用加这个了
If e.Table.Cols.Contains("SysAdd") = False Then
    Return
End If
2、然后我在运行过程中用fill改变了,也没有什么影响了。
---根本目的是不用写这个判断

这样做也行?因为我的加密狗今天忘了带回来,没法测,所以先在这里请教一下,免得明天还要调试一会。

 回到顶部