以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  关于DataColChanging  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=49687)

--  作者:wealthwind
--  发布时间:2014/4/22 16:54:00
--  关于DataColChanging

If e.DataCol.Name = "发布意见" AndAlso e.DataRow.isnull("发布意见")=False Then \'如果是已结帐列的内容变动
        msgbox("已批复意见,不能修改")
        e.cancel = True
End If

If e.DataCol.Name = "发布日期" AndAlso e.DataRow.isnull("发布日期")=False Then \'如果是已结帐列的内容变动
        msgbox("已批复意见,不能修改")
        e.cancel = True
End If

If e.DataCol.Name = "审批意见" AndAlso e.DataRow.isnull("审批意见")=False Then \'如果是已结帐列的内容变动
        msgbox("已批复意见,不能修改")
        e.cancel = True
End If

If e.DataCol.Name = "审批日期" AndAlso e.DataRow.isnull("审批日期")=False Then \'如果是已结帐列的内容变动
        msgbox("已批复意见,不能修改")
        e.cancel = True
End If

If e.DataCol.Name = "批准意见" AndAlso e.DataRow.isnull("批准意见")=False Then \'如果是已结帐列的内容变动
        msgbox("已批复意见,不能修改")
        e.cancel = True
End If

If e.DataCol.Name = "批准日期" AndAlso e.DataRow.isnull("批准日期")=False Then \'如果是已结帐列的内容变动
        msgbox("已批复意见,不能修改")
        e.cancel = True
End If

 

 

这段代码失效,显示错误框,请老师帮忙看看那里出错了


图片点击可在新窗口打开查看此主题相关图片如下:360截图20140422165153375.jpg
图片点击可在新窗口打开查看

--  作者:wealthwind
--  发布时间:2014/4/22 16:55:00
--  

上面代码错了

 

应该说的这段代码

 

Select e.DataCol.Name
    Case "文件类型"
        If e.DataRow.IsNull("文件类型") Then
            e.DataRow("文件编号") = Nothing
        Else
            Dim lb As String = e.DataRow("文件类型")
            If e.DataRow("文件编号").StartsWith(lb) = False \'如果单据编号前缀不符
                Dim max As String
                Dim idx As Integer
                max = e.DataTable.Compute("Max(文件编号)","文件类型 = \'" & lb & "\' And [_Identify] <> " & e.DataRow("_Identify")) \'取得该类别的最大编号
                If max > "" Then \'如果存在最大编号
                    idx = CInt(max.Substring(2,3)) + 1 \'获得最大编号的后三位顺序号,并加1
                Else
                    idx = 1 \'否则顺序号等于1
                End If
                e.DataRow("文件编号") = lb & Format(idx,"000")
            End If
        End If
End Select


--  作者:Bin
--  发布时间:2014/4/22 16:55:00
--  
点击显示详细信息看看.
--  作者:有点甜
--  发布时间:2014/4/22 17:01:00
--  

idx = CInt(max.Substring(2,3)) + 1 \'获得最大编号的后三位顺序号,并加1

 

改成

 

idx = CInt(max.Substring(lb.Length,3)) + 1 \'获得最大编号的后三位顺序号,并加1