Foxtable(狐表)用户栏目专家坐堂 → 自己动手设计筛选树


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

主题:自己动手设计筛选树

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/5/21 10:43:00 [显示全部帖子]

Dim Filter As String
Dim dr As DataRow = e.Node.DataRow '获取生成此节点的行
If e.Node.Text <> "显示所有行" Then
    Select Case e.Node.Level
        Case 0
            Filter = "[物资编码] = '" & dr("物资编码") & "'"
        Case 1
            Filter = "[物资编码] = '" & dr("物资编码") & "' And [物资类别] = '" & dr("物资类别") & "'"
        Case 2
            Filter = "[物资编码] = '" & dr("物资编码") & "' And [物资类别] = '" & dr("物资类别") & "' And [物资名称] = '" & dr("物资名称") & "'"
    End Select
End If
DataTables("仓库管理系统_Table3").loadFilter = Filter
DataTables("仓库管理系统_Table3").load

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/5/21 12:13:00 [显示全部帖子]

以下是引用1234567在2018/5/21 12:02:00的发言:
在Tables("仓库管理系统_Table3")增加数据后,目录树上不能马上体现,必须重新打开后才能加载进目录树,如何解决?

 

做一个【刷新】按钮,把你afterLoad事件的代码拷贝出来,放进去,即可。


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/5/21 14:45:00 [显示全部帖子]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:仓库管理.table


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/5/21 15:57:00 [显示全部帖子]

上传具体出错实例说明,不然自行调试 http://www.foxtable.com/webhelp/scr/1485.htm

 


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/5/21 16:09:00 [显示全部帖子]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:仓1库管理.table


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/5/21 16:31:00 [显示全部帖子]

DataColChanged事件,修改代码

 

Select e.DataCol.Name
    Case "物资类别_三级"
        If e.DataRow.IsNull("物资类别_三级") Then
            e.DataRow("物资编码") = Nothing
        Else
            Dim lb As String = e.DataRow("物资类别_三级")
            If e.DataRow("物资编码").StartsWith(lb) = False '如果单据编号前缀不符
                Dim max As String
                Dim idx As Integer
                max = e.DataTable.Compute("Max(物资编码)","物资类别_三级 = '" & lb & "' And [_Identify] <> " & e.DataRow("_Identify")) '取得该类别的最大编号
                If max > "" Then '如果存在最大编号
                    idx = CInt(max.Substring(lb.length,3)) + 1 '获得最大编号的后三位顺序号,并加1
                Else
                    idx = 1 '否则顺序号等于1
                End If
                e.DataRow("物资编码") = lb & Format(idx,"000")
            End If
        End If
End Select


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/5/23 15:00:00 [显示全部帖子]


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/5/23 15:25:00 [显示全部帖子]

1、click、doubleclick事件

 

e.table.StartEditing

 

2、没看懂你的意思。你把数量改成正数、负数,不就可以了?


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/5/24 8:44:00 [显示全部帖子]

如果你目录树根据表A生成,你就不能在重新load表A的数据了,不然就会报错。

 

或者,重新load表A数据后,重新生成一次目录树,这样也能解决。


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/5/24 9:31:00 [显示全部帖子]

以下是引用1234567在2018/5/24 9:28:00的发言:
,重新load表A数据后,重新生成一次目录树,程序怎么写?

 

1、你在哪里写了DataTables("表A").Load的代码?

 

2、在Load的代码后面,重新buildTree;或者表格afterLoad事件,重新buildTree。


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