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


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

主题:目录树

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


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

这样写能录入一行,之后就报错不行了!
Dim Vals() As String = e.Node.FullPath.Split("\")
Dim tr As Row = Tables("缴费情况").Current
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 dr As DataRow = DataTables("车辆基本信息").Find("分类 = '" & Vals(0) & "' And 住址_巷 ='" & Vals(1) & "' And 住址_号 ='" & Vals(2) & "'And 住址_房 ='" & Vals(3) & "'")
    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()
ElseIf Vals(0) = DataTables("分类").DataRows(1)("分类") Then
    If e.Node.Level = 0 Or e.Node.Level = 1 Or e.Node.Level = 2 Then '如果是顶层节点
        Return '则返回
    End If
    Dim dr1 As DataRow = DataTables("车辆基本信息").Find("分类 = '" & Vals(0) & "'And Year[日期] ='" & Vals(1) & "' And Month[日期] ='" & Vals(2) & "'And 车牌号码 ='" & Vals(3) & "'")
    tr("分类") = dr1("分类")
    tr("车牌号码") = dr1("车牌号码")
    tr("备注") = dr1("备注")
    e.Form.DropDownBox.Value = tr("车牌号码")
    e.Form.DropDownBox.CloseDropdown()
End If
[此贴子已经被作者于2021/3/2 22:30:45编辑过]

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


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

示例三

通常应该在代码中判断是否找到了符合条件的行,然后再运行后续的代码。
例如要找出最近一次订购产品数量超过1000的订单,并显示订单的日期和客户:

Dim dr As DataRow
dr = 
DataTables("订单").Find("数量 > 1000","日期 Desc")
If 
dr IsNot Nothing Then '如果找到的话
    Output.Show(
"日期:" & dr("日期"))
    Output.Show(
"客户:" & dr("客户"))

End If

如果我们不加上判断,直接:

Dim dr As DataRow
dr = 
DataTables("订单").Find("数量 > 1000","日期 Desc")
Output.Show(
"日期:" & dr("日期"))
Output.Show(
"客户:" & dr("客户"
))

一旦订单表并不存在订购数量超过1000的订单,那么Find方法返回Nothing,导致后续代码运行出错。

Find函数只能找出一条符合条件的行,如果要同时找出所有符合条件的行,可以使用Select方法。


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


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

Dim dr1 As DataRow = DataTables("车辆基本信息").Find("分类 = '" & Vals(0) & "' And Year([日期]) = " & Vals(1) & " And Month([日期]) =" & Vals(2) & " And 车牌号码 ='" & Vals(3) & "'")

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


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


图片点击可在新窗口打开查看此主题相关图片如下:qq图片20210302225659.png
图片点击可在新窗口打开查看
月租停车字节的目录树没问题了,临时停车字节的安日期、车牌号码作目录树的还有问题:
Dim Vals() As String = e.Node.FullPath.Split("\")
Dim tr As Row = Tables("缴费情况").Current
If Vals(0) = DataTables("分类").DataRows(0)("分类") Then
    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
            If e.Node.Level = 0 Or e.Node.Level = 1 Or e.Node.Level = 2 Or e.Node.Level = 3 Then '如果是顶层节点
                Return '则返回
            End If
            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
    Dim drs1 As List(Of DataRow) = DataTables("车辆基本信息").Select("分类 = '" & Vals(0) & "'And Year[日期] ='" & Vals(1) & "' And Month[日期] ='" & Vals(2) & "'And 车牌号码 ='" & Vals(3) & "'")
    For Each dr1 As DataRow In drs1
        If dr1 IsNot Nothing Then
            If e.Node.Level = 0 Or e.Node.Level = 1 Or e.Node.Level = 2 Then '如果是顶层节点
                Return '则返回
            End If
            tr("分类") = dr1("分类")
            tr("车牌号码") = dr1("车牌号码")
            tr("备注") = dr1("备注")
            e.Form.DropDownBox.Value = tr("车牌号码")
            e.Form.DropDownBox.CloseDropdown()
        End If
    Next
End If
[此贴子已经被作者于2021/3/2 23:01:57编辑过]

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


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

安日期归类的字节代码不会写。
[此贴子已经被作者于2021/3/4 19:45:42编辑过]

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


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

用find就行了,是有多无聊才想到改为select

ElseIf Vals(0) = DataTables("分类").DataRows(1)("分类") Then
dim d1 = New Date(cint(Vals(1)),cint(Vals(2)),1) 
Dim dr1 As DataRow = DataTables("车辆基本信息").Find("分类 = '" & Vals(0) & "' And 日期 >= #" & d1 & "# And 日期 < #" & d1.addmonths(1) & "# And 车牌号码 ='" & Vals(3) & "'")
if dr1 isnot nothing then
tr("分类") = dr1("分类")
tr("车牌号码") = dr1("车牌号码")

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


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

你这样写没录入数据,我改为这样也不行,目录树安分类、车牌号码显示,不要日期,方便录入
ElseIf Vals(0) = DataTables("分类").DataRows(1)("分类") Then
    Dim dr1 As DataRow = DataTables("车辆基本信息").Find("分类 = '" & Vals(0) & "' And 车牌号码 ='" & Vals(1) & "'")
    If dr1 IsNot Nothing Then
        If e.Node.Level = 0 Then '如果是顶层节点
            Return '则返回
        End If
        tr("分类") = dr1("分类")
        tr("车牌号码") = dr1("车牌号码")
    End If
End If
[此贴子已经被作者于2021/3/3 0:15:32编辑过]

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


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

msgbox("分类 = '" & Vals(0) & "' And 车牌号码 ='" & Vals(1) & "'")

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


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

弹出的窗口有内容啊,是我要录入的数据。

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


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


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

ElseIf Vals(0) = DataTables("分类").DataRows(1)("分类") Then
        tr("分类") = Vals(0)
        tr("车牌号码") = Vals(1)
End If

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