Foxtable(狐表)用户栏目专家坐堂 → [求助]DataColChanged使用


  共有2632人关注过本帖平板打印复制链接

主题:[求助]DataColChanged使用

帅哥哟,离线,有人找我吗?
ynhyxin
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:82 积分:1090 威望:0 精华:0 注册:2012/7/20 15:22:00
[求助]DataColChanged使用  发帖心情 Post By:2021/3/9 10:03:00 [只看该作者]

 现在想使用“DataColChanged”来实现自动编号功能。
即:
图片点击可在新窗口打开查看
说明:1、ID列应为数据流水号,如果有删除数据,应自动补全流水号(重排流水号)
        2、资产编号不能编辑,编号规则是:类别编号+6位流水
        3、类别列是一个数据字典,取值编号,显示名称。
下面是代码:
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,8)) + 1 '获得最大编号的后八位顺序号,并加1
                Else
                    idx = 1 '否则顺序号等于1
                End If
                e.DataRow("资产编号") = lb & Format(idx,"000000")
            End If
        End If
End Select


现在的问题:一种类别只能增加一条记录。即,XX000001
                增加同一种类别第二条记录时报错:
错误所在事件:表,低值耐久品,DataColChanged
详细错误信息:
调用的目标发生了异常。
索引和长度必须引用该字符串内的位置。
参数名: length
                                                  

请问:各位老师如何解决此问题?谢谢!       

 回到顶部