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


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

主题:目录树

美女呀,离线,留言给我吧!
采菊东篱下
  71楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1863 积分:10262 威望:0 精华:0 注册:2019/4/6 8:45:00
  发帖心情 Post By:2021/3/4 13:57:00 [只看该作者]

这样写还是不行
Dim Vals() As String = e.Node.FullPath.Split("\")
Dim tr As Row
If e.Form.DropTable IsNot Nothing Then '如果下拉窗口是从表中打开
    tr = e.Form.DropTable.Current '获取此表的当前行
Else '如果下拉窗口是通过DropdownBox打开
    Dim nm As String = e.Form.DropDownBox.BindingField '获取绑定的字段
    nm = nm.Split(".")(0) '获取绑定的表名
    tr = Tables(nm).Current '获取此表的当前行
End If
If e.Form.DropTable IsNot Nothing Then
    Select Case e.Form.DropTable.Name
        Case "月租收费_Table1"
            Vals(0) = DataTables("分类").DataRows(0)("分类")
            If e.Node.Level = 0 Or e.Node.Level = 1 Or e.Node.Level = 2 Or e.Node.Level = 3 Then '如果是顶层节点
                Return '则返回
            End If
            Dim drs As List(Of DataRow) = DataTables("车辆基本信息").Select("分类 = '" & Vals(0) & "' And 住址_巷 ='" & Vals(1) & "' And 住址_号 ='" & Vals(2) & "'And 住址_房 ='" & Vals(3) & "'")
            For Each dr As DataRow In drs
                If dr IsNot Nothing Then
                    tr("分类") = dr("分类")
                    tr("住址_巷") = dr("住址_巷")
                    tr("住址_号") = dr("住址_号")
                    tr("住址_房") = dr("住址_房")
                    tr("姓名") = dr("姓名")
                    tr("车牌号码") = dr("车牌号码")
                    tr("固定电话") = dr("固定电话")
                    tr("手机号码") = dr("手机号码")
                    tr("备注") = dr("备注")
                    e.Form.DropDownBox.Value = tr("车牌号码")
                    e.Form.DropDownBox.CloseDropdown()
                End If
            Next
        Case "临时收费录入_Table1"
            Vals(0) = DataTables("分类").DataRows(1)("分类")
            If e.Node.Level = 0 Then '如果是顶层节点
                Return '则返回
            End If
            Dim dr1 As DataRow = DataTables("车辆基本信息").Find("分类 = '" & Vals(0) & "' And 车牌号码 ='" & Vals(1) & "'")
            If dr1 IsNot Nothing Then
                tr("分类") = dr1("分类")
                tr("亲属临时停车") = dr1("亲属临时停车")
                tr("车牌号码") = dr1("车牌号码")
                e.Form.DropDownBox.Value = tr("车牌号码")
                e.Form.DropDownBox.CloseDropdown()
            End If
        Case "缴费情况"
            If Vals(0) = DataTables("分类").DataRows(0)("分类") Then
                If e.Node.Level = 0 Or e.Node.Level = 1 Or e.Node.Level = 2 Or e.Node.Level = 3 Then '如果是顶层节点
                    Return '则返回
                End If
                Dim drs As List(Of DataRow) = DataTables("车辆基本信息").Select("分类 = '" & Vals(0) & "' And 住址_巷 ='" & Vals(1) & "' And 住址_号 ='" & Vals(2) & "'And 住址_房 ='" & Vals(3) & "'")
                For Each dr As DataRow In drs
                    If dr IsNot Nothing Then
                        tr("分类") = dr("分类")
                        tr("住址_巷") = dr("住址_巷")
                        tr("住址_号") = dr("住址_号")
                        tr("住址_房") = dr("住址_房")
                        tr("姓名") = dr("姓名")
                        tr("车牌号码") = dr("车牌号码")
                        tr("固定电话") = dr("固定电话")
                        tr("手机号码") = dr("手机号码")
                        tr("备注") = dr("备注")
                        e.Form.DropDownBox.Value = tr("车牌号码")
                        e.Form.DropDownBox.CloseDropdown()
                    End If
                Next
            ElseIf Vals(0) = DataTables("分类").DataRows(1)("分类") Then
                If e.Node.Level = 0 Then '如果是顶层节点
                    Return '则返回
                End If
                Dim dr1 As DataRow = DataTables("车辆基本信息").Find("分类 = '" & Vals(0) & "' And 车牌号码 ='" & Vals(1) & "'")
                If dr1 IsNot Nothing Then
                    tr("分类") = dr1("分类")
                    tr("亲属临时停车") = dr1("亲属临时停车")
                    tr("车牌号码") = dr1("车牌号码")
                    e.Form.DropDownBox.Value = tr("车牌号码")
                    e.Form.DropDownBox.CloseDropdown()
                End If
            End If
    End Select
End If

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


加好友 发短信
等级:超级版主 帖子:105475 积分:536366 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/3/4 13:59:00 [只看该作者]

学会调试

调试技巧:http://www.foxtable.com/webhelp/scr/1485.htm

if e.Form.DropTable IsNot Nothing Then
    Select Case e.Form.DropTable.Name
        Case "月租收费_Table1"
            If e.Node.Level = 0 Or e.Node.Level = 1 Or e.Node.Level = 2 Or e.Node.Level = 3 Then '如果是顶层节点
                Return '则返回
            End If
msgbox("分类 = '" & Vals(0) & "' And 住址_巷 ='" & Vals(1) & "' And 住址_号 ='" & Vals(2) & "'And 住址_房 ='" & Vals(3) & "'")
            Dim drs As List(Of DataRow) = DataTables("车辆基本信息").Select("分类 = '" & Vals(0) & "' And 住址_巷 ='" & Vals(1) & "' And 住址_号 ='" & Vals(2) & "'And 住址_房 ='" & Vals(3) & "'")

 回到顶部
美女呀,离线,留言给我吧!
采菊东篱下
  73楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1863 积分:10262 威望:0 精华:0 注册:2019/4/6 8:45:00
  发帖心情 Post By:2021/3/4 14:24:00 [只看该作者]

保存上面的代码不报错的,
msgbox("分类 = '" & Vals(0) & "' And 住址_巷 ='" & Vals(1) & "' And 住址_号 ='" & Vals(2) & "'And 住址_房 ='" & Vals(3) & "'")
弹出的窗口有字节名称,只是在窗口中点字节不录入数据。

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


加好友 发短信
等级:超级版主 帖子:105475 积分:536366 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/3/4 14:27:00 [只看该作者]

认真看了吗!弹出的窗口条件有没有问题?有符合这个条件的数据吗,查询有结果吗?

 回到顶部
美女呀,离线,留言给我吧!
采菊东篱下
  75楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1863 积分:10262 威望:0 精华:0 注册:2019/4/6 8:45:00
  发帖心情 Post By:2021/3/4 14:50:00 [只看该作者]


图片点击可在新窗口打开查看此主题相关图片如下:qq图片20210304143640.png
图片点击可在新窗口打开查看
这条件在缴费表中执行是没问题的,为什么在窗口中就不行了呢?

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


加好友 发短信
等级:超级版主 帖子:105475 积分:536366 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/3/4 14:56:00 [只看该作者]

哪段代码是处理窗口的?在处理窗口的代码中调试,比如打开月租收费窗口

If e.Form.DropTable IsNot Nothing Then
    Select Case e.Form.DropTable.Name
        Case "月租收费_Table1"
            Vals(0) = DataTables("分类").DataRows(0)("分类")
            If e.Node.Level = 0 Or e.Node.Level = 1 Or e.Node.Level = 2 Or e.Node.Level = 3 Then '如果是顶层节点
                Return '则返回
            End If
msgbox("车辆基本信息").Select("分类 = '" & Vals(0) & "' And 住址_巷 ='" & Vals(1) & "' And 住址_号 ='" & Vals(2) & "'And 住址_房 ='" & Vals(3) & "'")
            Dim drs As List(Of DataRow) = DataTables("车辆基本信息").Select("分类 = '" & Vals(0) & "' And 住址_巷 ='" & Vals(1) & "' And 住址_号 ='" & Vals(2) & "'And 住址_房 ='" & Vals(3) & "'")
msgbox(drs.count)
            For Each dr As DataRow In drs
                If dr IsNot Nothing Then
msgbox(dr("分类"))
                    tr("分类") = dr("分类")
                    tr("住址_巷") = dr("住址_巷")
                    tr("住址_号") = dr("住址_号")
                    tr("住址_房") = dr("住址_房")

 回到顶部
美女呀,离线,留言给我吧!
采菊东篱下
  77楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1863 积分:10262 威望:0 精华:0 注册:2019/4/6 8:45:00
  发帖心情 Post By:2021/3/4 19:22:00 [只看该作者]

这样写没问题了:
DropDownOpening事件:
Dim cmd As New SQLCommand
Dim dt As DataTable
'cmd.C '内部数据源,这行代码不需要
cmd.CommandText = "SELECT [_Identify],分类,住址_序号,住址_巷,住址_号,住址_房,姓名,Year(日期) As 年, Month(日期) As 月,手机号码,车牌号码,备注 Fro m {车辆基本信息}"
dt = cmd.ExecuteReader()
Dim trv As WinForm.TreeView = e.Form.Controls("TreeView1")
If e.Form.DropTable IsNot Nothing Then
    Select Case e.Form.DropTable.Name
        Case "月租收费_Table1"
            trv.BuildTree(dt,"住址_巷|住址_号|住址_房|姓名|手机号码|车牌号码","[分类] = '" & DataTables("分类").DataRows(0)("分类") & "'","住址_序号,住址_号,住址_房")
            trv.Nodes.Insert(DataTables("分类").DataRows(0)("分类"),0)
            Do While trv.Nodes.Count > 1
                trv.Nodes(1).MoveRight
            Loop
        Case "临时收费录入_Table1"
            trv.BuildTree(dt,"车牌号码","[分类] = '" & DataTables("分类").DataRows(1)("分类") & "'","车牌号码")
            trv.Nodes.Insert(DataTables("分类").DataRows(1)("分类"),0)
            Do While trv.Nodes.Count > 1
                trv.Nodes(1).MoveRight
            Loop
        Case "缴费情况"
            trv.BuildTree(dt,"住址_巷|住址_号|住址_房|姓名|手机号码|车牌号码","[分类] = '" & DataTables("分类").DataRows(0)("分类") & "'","住址_序号,住址_号,住址_房")
            trv.Nodes.Insert(DataTables("分类").DataRows(0)("分类"),0)
            Do While trv.Nodes.Count > 1
                trv.Nodes(1).MoveRight
            Loop
            Dim trv2 As WinForm.TreeView = e.Form.Controls("TreeView2")
            trv2.BuildTree(dt,"车牌号码","[分类] = '" & DataTables("分类").DataRows(1)("分类") & "'","车牌号码")
            Dim node As WinForm.TreeNode = trv.Nodes.Add(DataTables("分类").DataRows(1)("分类"))
            For i As Integer = trv2.Nodes.Count - 1 To 0 Step -1
                Dim nn As WinForm.TreeNode = trv2.Nodes(i)
                trv2.Nodes.RemoveAt(i)
                node.basenode.Nodes.Add(nn.basenode)
            Next
    End Select
End If


NodeMouseClick改为:
Dim Vals() As String = e.Node.FullPath.Split("\")
Dim tr As Row
If e.Form.DropTable IsNot Nothing Then '如果下拉窗口是从表中打开
    tr = e.Form.DropTable.Current '获取此表的当前行
Else '如果下拉窗口是通过DropdownBox打开
    Dim nm As String = e.Form.DropDownBox.BindingField '获取绑定的字段
    nm = nm.Split(".")(0) '获取绑定的表名
    tr = Tables(nm).Current '获取此表的当前行
End If
If e.Form.DropTable IsNot Nothing Then
    Select Case e.Form.DropTable.Name
        Case "月租收费_Table1"
            Vals(0) = DataTables("分类").DataRows(0)("分类")
            If e.Node.Level = 0 Or e.Node.Level = 1 Or e.Node.Level = 2 Or e.Node.Level = 3 Then '如果是顶层节点
                Return '则返回
            End If
            Dim drs As List(Of DataRow) = DataTables("车辆基本信息").Select("分类 = '" & Vals(0) & "' And 住址_巷 ='" & Vals(1) & "' And 住址_号 ='" & Vals(2) & "' And 住址_房 ='" & Vals(3) & "'")
            For Each dr As DataRow In drs
                If dr IsNot Nothing Then
                    tr("分类") = dr("分类")
                    tr("住址_巷") = dr("住址_巷")
                    tr("住址_号") = dr("住址_号")
                    tr("住址_房") = dr("住址_房")
                    tr("姓名") = dr("姓名")
                    tr("车牌号码") = dr("车牌号码")
                    tr("固定电话") = dr("固定电话")
                    tr("手机号码") = dr("手机号码")
                    tr("备注") = dr("备注")
                    e.Form.DropDownBox.Value = tr("车牌号码")
                    e.Form.DropDownBox.CloseDropdown()
                End If
            Next
        Case "临时收费录入_Table1"
            Vals(0) = DataTables("分类").DataRows(1)("分类")
            If e.Node.Level = 0 Then '如果是顶层节点
                Return '则返回
            End If
            Dim dr1 As DataRow = DataTables("车辆基本信息").Find("分类 = '" & Vals(0) & "' And 车牌号码 ='" & Vals(1) & "'")
            If dr1 IsNot Nothing Then
                tr("分类") = dr1("分类")
                tr("亲属临时停车") = dr1("亲属临时停车")
                tr("车牌号码") = dr1("车牌号码")
                e.Form.DropDownBox.Value = tr("车牌号码")
                e.Form.DropDownBox.CloseDropdown()
            End If
        Case "缴费情况"
            If Vals(0) = DataTables("分类").DataRows(0)("分类") Then
                If e.Node.Level = 0 Or e.Node.Level = 1 Or e.Node.Level = 2 Or e.Node.Level = 3 Then '如果是顶层节点
                    Return '则返回
                End If
                Dim drs As List(Of DataRow) = DataTables("车辆基本信息").Select("分类 = '" & Vals(0) & "' And 住址_巷 ='" & Vals(1) & "' And 住址_号 ='" & Vals(2) & "' And 住址_房 ='" & Vals(3) & "'")
                For Each dr As DataRow In drs
                    If dr IsNot Nothing Then
                        tr("分类") = dr("分类")
                        tr("住址_巷") = dr("住址_巷")
                        tr("住址_号") = dr("住址_号")
                        tr("住址_房") = dr("住址_房")
                        tr("姓名") = dr("姓名")
                        tr("车牌号码") = dr("车牌号码")
                        tr("固定电话") = dr("固定电话")
                        tr("手机号码") = dr("手机号码")
                        tr("备注") = dr("备注")
                        e.Form.DropDownBox.Value = tr("车牌号码")
                        e.Form.DropDownBox.CloseDropdown()
                    End If
                Next
            ElseIf Vals(0) = DataTables("分类").DataRows(1)("分类") Then
                If e.Node.Level = 0 Then '如果是顶层节点
                    Return '则返回
                End If
                Dim dr1 As DataRow = DataTables("车辆基本信息").Find("分类 = '" & Vals(0) & "' And 车牌号码 ='" & Vals(1) & "'")
                If dr1 IsNot Nothing Then
                    tr("分类") = dr1("分类")
                    tr("亲属临时停车") = dr1("亲属临时停车")
                    tr("车牌号码") = dr1("车牌号码")
                    e.Form.DropDownBox.Value = tr("车牌号码")
                    e.Form.DropDownBox.CloseDropdown()
                End If
            End If
    End Select
End If
[此贴子已经被作者于2021/3/4 20:25:13编辑过]

 回到顶部
美女呀,离线,留言给我吧!
采菊东篱下
  78楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1863 积分:10262 威望:0 精华:0 注册:2019/4/6 8:45:00
  发帖心情 Post By:2021/4/13 16:12:00 [只看该作者]

改发到会计科目的帖下。
[此贴子已经被作者于2021/4/13 16:18:55编辑过]

 回到顶部
美女呀,离线,留言给我吧!
采菊东篱下
  79楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1863 积分:10262 威望:0 精华:0 注册:2019/4/6 8:45:00
  发帖心情 Post By:2021/4/16 11:59:00 [只看该作者]

我想在窗口车辆缴费查询表上做一个车牌号码下拉选项,已有一个共用的车牌号码目录树,我想利用它,不用再做,可添加红色标注代码后在窗口车辆缴费查询表车牌号码目录树上并无显示,请教应怎么改?
Dim cmd As New SQLCommand
Dim dt As DataTable
'cmd.C '内部数据源,这行代码不需要
cmd.CommandText = "SELECT [_Identify],分类,住址_序号,住址_巷,住址_号,住址_房,姓名,固定电话,手机号码,车牌号码,备注 Fro m {车辆基本信息}"
dt = cmd.ExecuteReader()
Dim trv As WinForm.TreeView = e.Form.Controls("TreeView1")
If e.Form.DropTable IsNot Nothing Then
    Select Case e.Form.DropTable.Name
        Case "月租收费_Table1"
            trv.BuildTree(dt,"住址_巷|住址_号|住址_房|姓名|手机号码|车牌号码","[分类] = '" & DataTables("分类").DataRows(0)("分类") & "'","住址_序号,住址_号,住址_房")
            trv.Nodes.Insert(DataTables("分类").DataRows(0)("分类"),0)
            Do While trv.Nodes.Count > 1
                trv.Nodes(1).MoveRight
            Loop
        Case "临时收费录入_Table1"
            trv.BuildTree(dt,"车牌号码","[分类] = '" & DataTables("分类").DataRows(1)("分类") & "'","车牌号码")
            trv.Nodes.Insert(DataTables("分类").DataRows(1)("分类"),0)
            Do While trv.Nodes.Count > 1
                trv.Nodes(1).MoveRight
            Loop
        Case "缴费情况","主界面_Table5","车辆缴费情况查询"
            trv.BuildTree(dt,"住址_巷|住址_号|住址_房|姓名|手机号码|车牌号码","[分类] = '" & DataTables("分类").DataRows(0)("分类") & "'","住址_序号,住址_号,住址_房")
            trv.Nodes.Insert(DataTables("分类").DataRows(0)("分类"),0)
            Do While trv.Nodes.Count > 1
                trv.Nodes(1).MoveRight
            Loop
            Dim trv2 As WinForm.TreeView = e.Form.Controls("TreeView2")
            trv2.BuildTree(dt,"车牌号码","[分类] = '" & DataTables("分类").DataRows(1)("分类") & "'","车牌号码")
            Dim node As WinForm.TreeNode = trv.Nodes.Add(DataTables("分类").DataRows(1)("分类"))
            For i As Integer = trv2.Nodes.Count - 1 To 0 Step -1
                Dim nn As WinForm.TreeNode = trv2.Nodes(i)
                trv2.Nodes.RemoveAt(i)
                node.basenode.Nodes.Add(nn.basenode)
            Next
    End Select
End If

 回到顶部
美女呀,离线,留言给我吧!
采菊东篱下
  80楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1863 积分:10262 威望:0 精华:0 注册:2019/4/6 8:45:00
  发帖心情 Post By:2021/4/16 12:06:00 [只看该作者]

原来是这样的,

图片点击可在新窗口打开查看此主题相关图片如下:1.png
图片点击可在新窗口打开查看
现在不见目录树

图片点击可在新窗口打开查看此主题相关图片如下:2.png
图片点击可在新窗口打开查看



 回到顶部
总数 107 1.. 上一页 2 3 4 5 6 7 8 9 10 11 下一页