Foxtable(狐表)用户栏目专家坐堂 → 行政区域输入


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

主题:行政区域输入

美女呀,离线,留言给我吧!
胡噜胡噜毛
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:24 积分:257 威望:0 精华:0 注册:2021/11/20 15:47:00
行政区域输入  发帖心情 Post By:2022/4/25 10:37:00 [只看该作者]

If e.Node.Level = 0 Then  '如果是顶层节点 
    Return '则返回
End If
Dim Vals() As String = e.Node.FullPath.Split("\") 
Dim Filter As String = "[省区] = '" & Vals(0) & "' And [市县] = '" & Vals(1) & "' And [乡镇] = '" & Vals(2) & "'And [街道] = '" & Vals(3) & "'  "
Dim dr As DataRow = DataTables("行政区域").Find(Filter)
Dim r As Row = Tables("住址").Current
r("省区") = dr("省区")
r("市县") = dr("市县")
r("乡镇") = dr("乡镇")
r("街道") = dr("街道")
e.Form.Close()


用窗口选择行政地区,通过双击输入单元格中,但是行政区域表中有些市县没有下级乡镇和街道,通过双击输入会报错,如果没有下级乡镇和街道怎么让它自动输入空值?
[此贴子已经被作者于2022/4/25 10:39:10编辑过]

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


加好友 发短信
等级:超级版主 帖子:110348 积分:561588 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/4/25 10:47:00 [只看该作者]

请上传实例说明

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


加好友 发短信 一级勋章
等级:超级版主 帖子:7258 积分:40773 威望:0 精华:16 注册:2008/8/31 23:23:00
  发帖心情 Post By:2022/4/25 10:54:00 [只看该作者]

根据Vals的长度,从最上级至下遍历合成Filter条件字符串是非常简单的事!Vals长度短,说明末级下无内客,其下级就被自动丢弃了,

 回到顶部
美女呀,离线,留言给我吧!
胡噜胡噜毛
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:24 积分:257 威望:0 精华:0 注册:2021/11/20 15:47:00
行政区域输入  发帖心情 Post By:2022/4/25 11:00:00 [只看该作者]

这个实例
[此贴子已经被作者于2022/4/25 11:01:13编辑过]

 回到顶部
美女呀,离线,留言给我吧!
胡噜胡噜毛
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:24 积分:257 威望:0 精华:0 注册:2021/11/20 15:47:00
行政区域输入  发帖心情 Post By:2022/4/25 11:11:00 [只看该作者]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:行政区域.zip

这是实例

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


加好友 发短信 一级勋章
等级:超级版主 帖子:7258 积分:40773 威望:0 精华:16 注册:2008/8/31 23:23:00
  发帖心情 Post By:2022/4/25 11:20:00 [只看该作者]

If e.Node.Level = 0 Then '如果是顶层节点 
    Return '则返回
End If
Dim Vals() As String = e.Node.FullPath.Split("\")
Dim qys() As String = = {"省区", "市县", "乡镇", "街道" }
Dim Filter As String
For i As Integer = 0 To Vals.Length - 1
    Filter = Filter & "and " & qys(i) & " = '" & Vals(i) & "'"
Next
Filter = Filter.TrimStart("and ")
Dim dr As DataRow = DataTables("行政区域").Find(Filter)
Dim dr1 As dataRow = Tables("住址").Current.DataRow
For n As Integer = 0 To Vals.Length - 1
    dr1(qys(n)) = dr(qys(n))
Next
e.Form.Close()
[此贴子已经被作者于2022/4/25 11:53:25编辑过]

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


加好友 发短信 一级勋章
等级:超级版主 帖子:7258 积分:40773 威望:0 精华:16 注册:2008/8/31 23:23:00
  发帖心情 Post By:2022/4/25 11:23:00 [只看该作者]

其实代码应该更严谨一点:(如果不是选择目录树节点并双击,代码必须这样)

If e.Node.Level = 0 Then '如果是顶层节点 
    Return '则返回
End If
Dim Vals() As String = e.Node.FullPath.Split("\")
Dim qys() As String = = {"省区", "市县", "乡镇", "街道" }
Dim Filter As String
For i As Integer = 0 To Vals.Length - 1
    Filter = Filter & "and " & qys(i) & " = '" & Vals(i) & "'"
Next
Filter = Filter.TrimStart("and ")
Dim dr As DataRow = DataTables("行政区域").Find(Filter)
If dr IsNot Nothing Then
    Dim dr1 As dataRow = Tables("住址").Current.DataRow
    For n As Integer = 0 To Vals.Length - 1
        dr1(qys(n)) = dr(qys(n))
    Next
End If
e.Form.Close()
[此贴子已经被作者于2022/4/25 11:53:47编辑过]

 回到顶部
美女呀,离线,留言给我吧!
胡噜胡噜毛
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:24 积分:257 威望:0 精华:0 注册:2021/11/20 15:47:00
  发帖心情 Post By:2022/4/25 11:31:00 [只看该作者]

 Dim dr1 As Row = Tables("住址").Current.DataRow



它说这一行报错了,是什么原因?



.NET Framework 版本:4.0.30319.42000
Foxtable 版本:2020.5.29.8
错误所在事件:窗口,行政区域,TreeView1,NodeMouseDoubleClick
详细错误信息:
Syntax error: Missing operand after '省区' operator.

[此贴子已经被作者于2022/4/25 11:33:07编辑过]

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


加好友 发短信
等级:超级版主 帖子:110348 积分:561588 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/4/25 11:36:00 [只看该作者]

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


 回到顶部
美女呀,离线,留言给我吧!
胡噜胡噜毛
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:24 积分:257 威望:0 精华:0 注册:2021/11/20 15:47:00
  发帖心情 Post By:2022/4/25 11:42:00 [只看该作者]

啊~实在不好意思哈,我的版本太低了,打不开,可不可以把代码发给我呀?(流泪)

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