以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- [求助]错误判断及自动编号 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=4735) |
||||
-- 作者:易服 -- 发布时间:2009/10/24 20:22:00 -- [求助]错误判断及自动编号 在申请表中 一、错误判断 如果钩选[是否退耕还林][林种]只能为“防护林”或“经济林”,反过来说退耕还林只有“防护林”或“经济林”;[是否重点公益林]、[是否地方公益林]二列中只能钩选其中之一或全不选,并且[林种]只能为“防护林”,反过来说“防护林”可以是[是否重点公益林]或[是否地方公益林]或二者都不是。否则提示出错。 二、自动编号 1、乡镇序号:以乡名顺序编号从1开始,当[乡名]列为另一个乡名时又从1开始顺序编号………… 2、宗地序号(2位):同一乡名、村名、组别的同一法定代表人(重复行)从01开始顺序编号。如李本发有4行编号01--04,李加顺有7行编号01--07 请求大师指点,先谢了!
[此贴子已经被作者于2009-10-25 8:42:27编辑过]
|
||||
-- 作者:czy -- 发布时间:2009/10/24 22:57:00 -- 两个编号的近钮代码: Dim dt As Table = Tables("申请表") For i As integer = 0 to dt.rows.count -1 if i = 0 Then dt.Rows(i)("乡镇序号") = 1 Else if dt.Rows(i)("乡名") = dt.Rows(i-1)("乡名") Then dt.Rows(i)("乡镇序号") = dt.Rows(i-1)("乡镇序号") Else dt.Rows(i)("乡镇序号") = dt.Rows(i-1)("乡镇序号")+1 End If End If Next Dim str As String For Each dr As DataRow In DataTables("申请表").DataRows str = "[乡名] = \'" & dr("乡名") & "\'And [村名] = \'" & dr("村名") & "\' And [组别] = \'" & dr("组别") & "\'" str = str & " And [单位(个人)] = \'" & dr("单位(个人)") & "\' And [_Identify] < " & dr("_Identify") dr("宗地序号") = Format(Tables("申请表").Compute("Count(乡名)",str)+1,"00") Next [此贴子已经被作者于2009-10-24 22:57:28编辑过]
|
||||
-- 作者:czy -- 发布时间:2009/10/24 23:00:00 -- 问题一象绕口令,没理解。 |
||||
-- 作者:易服 -- 发布时间:2009/10/25 8:23:00 -- 谢谢C版!第一个问题已重新表述,乡镇序号没有达到目的。你的代码是乡名排除重复而我的要求是包括重复。如长乐乡有9行乡镇序号1---9,龙潭镇有15行乡镇序号1--15 …… [此贴子已经被作者于2009-10-25 11:30:20编辑过]
|
||||
-- 作者:易服 -- 发布时间:2009/10/25 11:33:00 -- 稍作修改乡镇序号达到目的: Dim str As String For Each dr As DataRow In DataTables("申请表").DataRows str = "[乡名] = \'" & dr("乡名") & "\'" str = str & " And [乡名] = \'" & dr("乡名") & "\' And [_Identify] < " & dr("_Identify") dr("乡镇序号") =Tables("申请表").Compute("Count(乡名)",str)+1 Next |
||||
-- 作者:易服 -- 发布时间:2009/10/25 17:37:00 -- 逻辑错误判断: 如果钩选[是否退耕还林] [林种]只能为“防护林”或“经济林”,反过来说退耕还林只有“防护林”或“经济林”;如果钩选[是否重点公益林]或者钩选[是否地方公益林],[林种]只能为“防护林”。反过来说“防护林”可以是重点公益林或地方公益林。否则提示出错 |
||||
-- 作者:易服 -- 发布时间:2009/10/25 22:01:00 -- 顶 |
||||
-- 作者:czy -- 发布时间:2009/10/25 23:30:00 -- 楼主啊,被你搞的晕了。 代码没错,但就是达不到要求,查了半天,原来表中是“济经林”,而要求是“经济林”。 写了一个判断,其它两个自己加吧。 Dim dr1 As DataRow = e.DataRow If e.DataCol.Name = "是否为退耕还林" And dr1("林种") <> "防护林" AndAlso dr1("林种") <> "经济林" Then If e.NewValue = True Then MessageBox.Show("提示!", "提示") End If End If |
||||
-- 作者:易服 -- 发布时间:2009/10/26 9:14:00 -- 对不起了!都是万能五笔惹的祸,我仔细检查一下 |