以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 行政区域输入 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=176737) |
||||
-- 作者:胡噜胡噜毛 -- 发布时间: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编辑过]
|
||||
-- 作者:有点蓝 -- 发布时间:2022/4/25 10:47:00 -- 请上传实例说明 |
||||
-- 作者:程兴刚 -- 发布时间:2022/4/25 10:54:00 -- 根据Vals的长度,从最上级至下遍历合成Filter条件字符串是非常简单的事!Vals长度短,说明末级下无内客,其下级就被自动丢弃了, |
||||
-- 作者:胡噜胡噜毛 -- 发布时间:2022/4/25 11:00:00 -- 行政区域输入 这个实例 [此贴子已经被作者于2022/4/25 11:01:13编辑过]
|
||||
-- 作者:胡噜胡噜毛 -- 发布时间:2022/4/25 11:11:00 -- 行政区域输入
这是实例
|
||||
-- 作者:程兴刚 -- 发布时间: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编辑过]
|
||||
-- 作者:程兴刚 -- 发布时间: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编辑过]
|
||||
-- 作者:胡噜胡噜毛 -- 发布时间: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编辑过]
|
||||
-- 作者:有点蓝 -- 发布时间:2022/4/25 11:36:00 --
|
||||
-- 作者:胡噜胡噜毛 -- 发布时间:2022/4/25 11:42:00 -- 啊~实在不好意思哈,我的版本太低了,打不开,可不可以把代码发给我呀?(流泪) |