Foxtable(狐表)用户栏目专家坐堂 → [求助]目录树


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

主题:[求助]目录树

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


加好友 发短信
等级:七尾狐 帖子:1700 积分:11344 威望:0 精华:0 注册:2015/6/22 8:11:00
[求助]目录树  发帖心情 Post By:2019/12/6 18:51:00 [只看该作者]

老师,想直接引用窗口绑定的非副本表(通讯录)。


If e.Node.Name = "显示所有行" Then
    Tables(e.Form.Name & "_Table2").Filter = ""
Else
    Dim FilterCol() As String = e.Form.Controls("复选").Value.Split(",")
    Dim TmpStr() As String = e.Node.FullPath.Split("\")
    Dim FilterStr As String
    For i As Integer = 0 To e.Node.Level
        FilterStr = FilterStr & "[" & FilterCol(i) & "] = '" & TmpStr(i) & "' And "
    Next
    FilterStr = FilterStr.SubString(0,FilterStr.Length - 5)
    Tables(e.Form.Name & "_Table2").Filter = FilterStr 
End If

 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:105489 积分:536436 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/12/6 20:31:00 [只看该作者]

normal非副本表,直接写主表名称即可
Tables(“通讯录”).Filter = ""

如果要通用一点,可以这样

e.Form.Controls("Table2").Table.Filter = ""

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


加好友 发短信
等级:七尾狐 帖子:1700 积分:11344 威望:0 精华:0 注册:2015/6/22 8:11:00
  发帖心情 Post By:2019/12/6 22:21:00 [只看该作者]

老师,这是窗口代码和内部函数也要修改成直接引用窗口非副本表。谢谢老师

With Tables(e.Form.Name & "_Table2")
    .EnterKeyActionDown = True
    .AutoSizeCols
    Dim dz_FilterCol As WinForm.CheckedComboBox = e.Form.Controls("复选")
    For Each C As Col In .Cols
        dz_FilterCol.Items.Add(C.Name)
    Next
    dz_FilterCol.Value = "客户供应商,姓名"
End With




[此贴子已经被作者于2019/12/6 22:22:46编辑过]

 回到顶部
帅哥,在线噢!
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:105489 积分:536436 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/12/6 22:33:00 [只看该作者]

用法完全一样

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


加好友 发短信
等级:七尾狐 帖子:1700 积分:11344 威望:0 精华:0 注册:2015/6/22 8:11:00
  发帖心情 Post By:2019/12/6 22:51:00 [只看该作者]

老师,这组代码报错。


.EnterKeyActionDown = True

 回到顶部
帅哥,在线噢!
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:105489 积分:536436 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/12/6 22:56:00 [只看该作者]

报什么错?

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


加好友 发短信
等级:七尾狐 帖子:1700 积分:11344 威望:0 精华:0 注册:2015/6/22 8:11:00
  发帖心情 Post By:2019/12/7 7:19:00 [只看该作者]

老师,代码报错。
With e.Form.Controls("Table2")
 .EnterKeyActionDown = True
    .AutoSizeCols
    Dim dz_FilterCol As WinForm.CheckedComboBox = e.Form.Controls("复选")
    For Each C As Col In .Cols
        dz_FilterCol.Items.Add(C.Name)
    Next
    dz_FilterCol.Value = "客户供应商,姓名"
End With



.NET Framework 版本:2.0.50727.8669
Foxtable 版本:2017.4.22.1
错误所在事件:窗口,供应商客户信息,AfterLoad
详细错误信息:
未找到类型“Table”的公共成员“EnterKeyActionDown”。


 回到顶部
帅哥,在线噢!
有点蓝
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:105489 积分:536436 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/12/7 9:06:00 [只看该作者]

既然不懂就要认真分析查看别人是怎么用的。不懂还闭着眼睛用那就是在给自己找麻烦,本来几分钟就能解决的问题...

With e.Form.Controls("Table2").table

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


加好友 发短信
等级:七尾狐 帖子:1700 积分:11344 威望:0 精华:0 注册:2015/6/22 8:11:00
  发帖心情 Post By:2019/12/7 9:51:00 [只看该作者]

老师,下面代码有错了。
If e.Node.Name = "显示所有行" Then
   ' Tables(e.Form.Name & "_Table2").Filter = ""
e.Form.Controls("Table2").Table.Filter = ""

Else
    Dim FilterCol() As String = e.Form.Controls("复选").Value.Split(",")
    Dim TmpStr() As String = e.Node.FullPath.Split("\")
    Dim FilterStr As String
    For i As Integer = 0 To e.Node.Level
        FilterStr = FilterStr & "[" & FilterCol(i) & "] = '" & TmpStr(i) & "' And "
    Next
    FilterStr = FilterStr.SubString(0,FilterStr.Length - 5)
    'Tables(e.Form.Name & "_Table2").Filter = FilterStr 
e.Form.Controls("Table2").Filter = FilterStr 
End If


.NET Framework 版本:2.0.50727.8669
Foxtable 版本:2017.4.22.1
错误所在事件:窗口,供应商客户信息,筛选树,AfterSelectNode
详细错误信息:
未找到类型"Table"的公共成员"Filter".

 回到顶部
帅哥,在线噢!
有点蓝
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:105489 积分:536436 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/12/7 11:06:00 [只看该作者]

同样的问题,请自行解决

 回到顶部
总数 27 1 2 3 下一页