Foxtable(狐表)用户栏目专家坐堂 → 自动生成编号


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

主题:自动生成编号

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


加好友 发短信
等级:幼狐 帖子:134 积分:996 威望:0 精华:0 注册:2018/9/13 16:41:00
自动生成编号  发帖心情 Post By:2019/1/15 10:27:00 [只看该作者]

版主您好!   我想设计自动生成编码,代码完全按照帮助来的只是修改了列名称,加入了天。第一个编码自动生成了,第二个就提示错误
                  NET Framework 版本:2.0.50727.8793
Foxtable 版本:2018.9.9.1
错误所在事件:表,物资出门证台账,DataColChanged
详细错误信息:
调用的目标发生了异常。
索引和长度必须引用该字符串内的位置。
参数名: length


代码如下:
Select e.DataCol.Name
    Case "申请日期","部门代码"
        If e.DataRow.IsNull("申请日期") OrElse e.DataRow.IsNull("部门代码") Then
            e.DataRow("编号") = Nothing
        Else
            Dim d As Date = e.DataRow("申请日期")
            Dim y As Integer = d.Year
            Dim m As Integer = d.Month
            Dim Days As Integer = Date.DaysInMonth(y,m)
            Dim fd As Date = New Date(y,m,1) '获得该月的第一天
            Dim ld As Date = New Date(y,m,Days) '获得该月的最后一天
            Dim bh As String = e.DataRow("部门代码") & "-" & Format(d,"yyyyMMdd") & "-" '生成编号的前缀
            If e.DataRow("编号").StartsWith(bh) = False '如果单据编号前缀不符
                Dim max As String
                Dim idx As Integer
                Dim flt As String
                flt = "部门代码 = '"& e.DataRow("部门代码") & "' And 申请日期 >= #" & fd & "# And 申请日期 <= #" & ld & "# And [_Identify] <> " & e.DataRow("_Identify")
                max = e.DataTable.Compute("Max(编号)",flt) '取得该月的相同工程代码的最大单据编号
                If max > "" Then '如果存在最大单据编号
                    idx = CInt(max.Substring(12,3)) + 1 '获得最大单据编号的后四位顺序号,并加1
                Else
                    idx = 1 '否则顺序号等于1
                End If
                e.DataRow("编号") = bh & Format(idx,"000")
            End If
        End If
End Select
[此贴子已经被作者于2019/1/15 10:49:27编辑过]

 回到顶部
总数 64 1 2 3 4 5 6 7 下一页