以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  [求助]错误判断及自动编号  (http://www.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 请求大师指点,先谢了!
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:林改信息管理系统.rar

[此贴子已经被作者于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
--  
对不起了!都是万能五笔惹的祸,我仔细检查一下