以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  只能+ ,不能-  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=31839)

--  作者:baixiaobai
--  发布时间:2013/4/21 20:34:00
--  只能+ ,不能-
有个列是整数列   怎么能实现,只能在原基础数上增加,不能减少?? 
求解~~

--  作者:baixiaobai
--  发布时间:2013/4/21 20:58:00
--  

If e.DataCol.Name = "预计日期" Then
    Dim dr As DataRow 
    dr = e.DataTable.Find("预计日期 < \'" & e.OldValue & "\'")
    If dr IsNot Nothing Then
        MessageBox.Show("此订单号已经存在!")
        e.Cancel = True
    End If
End If



--  作者:lsy
--  发布时间:2013/4/21 23:01:00
--  

既然只能加不能减,比较当前行与上一行就可以了:

If e.Col.Name = "第一列" AndAlso e.Row.Index > 0 Then
    If Val(e.Text) < e.Table.Rows(e.Row.Index - 1)(e.Col) Then
        e.Cancel = True
    End If
End If

 

注:不知楼主对相等怎么处理。

[此贴子已经被作者于2013-4-21 23:04:56编辑过]

--  作者:程兴刚
--  发布时间:2013/4/21 23:10:00
--  
\'DataColChanged事件代码:
If e.DataCol.name = "改列名称"
    If e.NewValue< e.OldValue
        e.DataRow("改列名称") = e.OldValue
        MessageBox.show("对不起,该字段的值只允许增加,不允许减少!")
    End If
End If

--  作者:baixiaobai
--  发布时间:2013/4/22 4:43:00
--  

Select Case e.DataCol.Name
    Case "预计日期" ,"预计天数"
        If User.Group = "员工组" Then
            If e.NewValue < e.OldValue Then \'如果新值大于0.15.
                If e IsNot Nothing Then
                    MessageBox.Show("你没有权限,请联系经理修改")
                    e.Cancel = True
                Else
                End If
            End If
        End If
End Select


我是这样写的,写在DataColChanging 这里了,可以么?``