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


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

主题:目录树

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


加好友 发短信
等级:八尾狐 帖子:1881 积分:10368 威望: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

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


加好友 发短信
等级:八尾狐 帖子:1881 积分:10368 威望: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) & "'")
弹出的窗口有字节名称,只是在窗口中点字节不录入数据。

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


加好友 发短信
等级:八尾狐 帖子:1881 积分:10368 威望:0 精华:0 注册:2019/4/6 8:45:00
  发帖心情 Post By:2021/3/4 14:50:00 [显示全部帖子]


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

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


加好友 发短信
等级:八尾狐 帖子:1881 积分:10368 威望: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编辑过]

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


加好友 发短信
等级:八尾狐 帖子:1881 积分:10368 威望:0 精华:0 注册:2019/4/6 8:45:00
  发帖心情 Post By:2021/4/13 16:12:00 [显示全部帖子]

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

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


加好友 发短信
等级:八尾狐 帖子:1881 积分:10368 威望: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

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


加好友 发短信
等级:八尾狐 帖子:1881 积分:10368 威望:0 精华:0 注册:2019/4/6 8:45:00
  发帖心情 Post By:2021/4/16 12:06:00 [显示全部帖子]

原来是这样的,

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

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



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


加好友 发短信
等级:八尾狐 帖子:1881 积分:10368 威望:0 精华:0 注册:2019/4/6 8:45:00
  发帖心情 Post By:2021/4/16 12:08:00 [显示全部帖子]

应该是目录树在表上和窗口上显示的问题。

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


加好友 发短信
等级:八尾狐 帖子:1881 积分:10368 威望:0 精华:0 注册:2019/4/6 8:45:00
  发帖心情 Post By:2021/4/16 13:59:00 [显示全部帖子]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:小区车辆管理(0416).rar


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


加好友 发短信
等级:八尾狐 帖子:1881 积分:10368 威望:0 精华:0 注册:2019/4/6 8:45:00
  发帖心情 Post By:2021/4/25 15:20:00 [显示全部帖子]


图片点击可在新窗口打开查看此主题相关图片如下:0425.png
图片点击可在新窗口打开查看
我想在窗口的DropDownBox控件中加科目下拉目录树,红色标注部份是我加的代码,结果报错!
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 '获取绑定的字段
    If nm > "" Then
        nm = nm.Split(".")(0) '获取绑定的表名
        tr = Tables(nm).Current '获取此表的当前行
    Else
        If e.Node.DataRow IsNot Nothing
            e.Form.DropDownBox.Value = e.Node.DataRow("会计科目")
            e.Form.DropDownBox.CloseDropdown()
            Return
        End If
    End If
End If
e.Form.DropDownBox.Value = Vals(0)
If e.Form.DropTable IsNot Nothing Then
    Select Case e.Form.DropTable.Name
        Case "财务数据源"
            Select Case e.Node.Level
                Case 0
                    tr("会计科目") = Vals(0)
                    tr("二级科目") = Nothing
                    tr("三级科目") = Nothing
                    tr("四级科目") = Nothing
                    tr("五级科目") = Nothing
                    e.Form.DropDownBox.Value = tr("会计科目")
                    e.Form.DropDownBox.CloseDropdown()
                Case 1
                    tr("会计科目") = Vals(0)
                    tr("二级科目") = Vals(1).SubString(9,Vals(1).Length - 9)
                    tr("三级科目") = Nothing
                    tr("四级科目") = Nothing
                    tr("五级科目") = Nothing
                    e.Form.DropDownBox.Value = tr("会计科目")
                    e.Form.DropDownBox.CloseDropdown()
                Case 2
                    tr("会计科目") = Vals(0)
                    tr("二级科目") = Vals(1).SubString(8,Vals(1).Length - 8)
                    tr("三级科目") = Vals(2).SubString(13,Vals(2).Length - 13)
                    tr("四级科目") = Nothing
                    tr("五级科目") = Nothing
                    e.Form.DropDownBox.Value = tr("会计科目")
                    e.Form.DropDownBox.CloseDropdown()
                Case 3
                    tr("会计科目") = Vals(0)
                    tr("二级科目") = Vals(1).SubString(8,Vals(1).Length - 8)
                    tr("三级科目") = Vals(2).SubString(12,Vals(2).Length - 12)
                    tr("四级科目") = Vals(3).SubString(17,Vals(3).Length - 17)
                    tr("五级科目") = Nothing
                    e.Form.DropDownBox.Value = tr("会计科目")
                    e.Form.DropDownBox.CloseDropdown()
                Case 4
                    tr("会计科目") = Vals(0)
                    tr("二级科目") = Vals(1).SubString(8,Vals(1).Length - 8)
                    tr("三级科目") = Vals(2).SubString(12,Vals(2).Length - 12)
                    tr("四级科目") = Vals(3).SubString(16,Vals(3).Length - 16)
                    tr("五级科目") = Vals(4).SubString(21,Vals(4).Length - 21)
                    e.Form.DropDownBox.Value = tr("会计科目")
                    e.Form.DropDownBox.CloseDropdown()
            End Select
        Case "记账凭证_Table1","转账凭证_Table1"
            Select Case e.Node.Level
                Case 0
                    tr("会计科目") = Vals(0)
                    tr("明细科目") = Nothing
                    e.Form.DropDownBox.Value = tr("会计科目")
                    e.Form.DropDownBox.CloseDropdown()
                Case 1
                    tr("会计科目") = Vals(0)
                    tr("明细科目") = Vals(1).SubString(9,Vals(1).Length - 9)
                    e.Form.DropDownBox.Value = tr("会计科目")
                    e.Form.DropDownBox.CloseDropdown()
                Case 2
                    tr("会计科目") = Vals(0)
                    tr("明细科目") = Vals(1).SubString(8,Vals(1).Length - 8) & "-" & Vals(2).SubString(13,Vals(2).Length - 13)
                    e.Form.DropDownBox.Value = tr("会计科目")
                    e.Form.DropDownBox.CloseDropdown()
                Case 3
                    tr("会计科目") = Vals(0)
                    tr("明细科目") = Vals(1).SubString(8,Vals(1).Length - 8) & "-" & Vals(2).SubString(12,Vals(2).Length - 12) & "-" & Vals(3).SubString(17,Vals(3).Length - 17)
                    e.Form.DropDownBox.Value = tr("会计科目")
                    e.Form.DropDownBox.CloseDropdown()
                Case 4
                    tr("会计科目") = Vals(0)
                    tr("明细科目") = Vals(1).SubString(8,Vals(1).Length - 8) & "-" & Vals(2).SubString(12,Vals(2).Length - 12) & "-" & Vals(3).SubString(16,Vals(3).Length - 16) & "-" & Vals(4).SubString(21,Vals(4).Length - 21)
                    e.Form.DropDownBox.Value = tr("会计科目")
                    e.Form.DropDownBox.CloseDropdown()
            End Select

 回到顶部
总数 65 上一页 1 2 3 4 5 6 7 下一页