Foxtable(狐表)用户栏目专家坐堂 → [求助]关于自动编号


  共有2140人关注过本帖树形打印复制链接

主题:[求助]关于自动编号

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


加好友 发短信
等级:幼狐 帖子:151 积分:1110 威望:0 精华:0 注册:2015/1/24 15:26:00
[求助]关于自动编号  发帖心情 Post By:2015/6/7 10:29:00 [只看该作者]

我按帮助仿写了一段自动编号的代码,试运行都没问题,但在大量录入时,居然编号居然出了几次错,最后的序列编号没有累加。基本编号思路是:按同年同一合同类别自动累加序列号。请教:
1、代码是不是哪里写得不严谨?
2、最后一段粉色代码,希望能检查一下编号是否正确(编号必须具有唯一性),但怎样在不用MAX的情况下,确定表的最大行号(最大编号累加就是用MAX确定的), 以及规避如何确定当前行不是最后一行时报错的问题?
这是整个系统的基础,如果编号出错,全部系统都要乱,恳请指导!

'自动编写"合同or费用代码"
Dim xmdm As String = forms("合同or费用台账录入").controls("DropBox3").text '项目代码
Dim htdm As String = forms("合同or费用台账录入").controls("TextBox6").text '合同or费用代码
Dim bh As String '合同or费用编号

'根据(表-合同or费用台账)的(列-项目代码,合同or费用代码,签约日期),自动分类编辑递增顺序号后缀:
Dim qyrq As String = forms("合同or费用台账录入").controls("DateTimePicker1").Value '签约日期
Dim d As Date = Cdate(qyrq)
Dim y As String = cstr(d.Year)
y = y.SubString(0,4)
'msgbox(y)
Dim m As Integer = d.Month
Dim Days As Integer = Date.DaysInMonth(y,m)
'msgbox(days)
If xmdm <> "" Then
    bh = xmdm & "-" & htdm & "-" & Format(d,"yyyyMM") & "-"
End If
'msgbox(bh)

'If  Tables("合同or费用台账").Current("合同or费用编号").StartsWith(bh) = False '如果合同编号前缀不符
Dim max As String
Dim idx As Integer
Dim flt As String
flt = "项目代码 = '"& xmdm & "' And 合同or费用代码 = '"& htdm &"'And SubString(Convert([签约日期],'System.String'),1,4) = '"& y &"' And [_Identify] <> " & Tables("合同or费用台账").Current("_Identify")
'msgbox(flt)
max = DataTables("合同or费用台账").Compute("Max(合同or费用编号)",flt) '取得相同合同代码的最大合同编号
'msgbox(max)
If max = "" Then '如果最大合同编号是空
    idx = 1 '顺序号等于1
Else
    Dim ma As Integer
    ma =  max.length - 3 '或者 ma =  max.LastIndexof("-")+1
    idx = CInt(max.SubString((ma),3)) + 1 '获得最大合同编号的后三位顺序号,并加1
    'msgbox(idx)
End If
forms("合同or费用台账录入").controls("TextBox2").text = bh & Format(idx,"000")

'检查合同编号是否正确
Dim xh As List(Of String) ' 序号
Dim xhh As Integer
xh = DataTables("合同or费用台账").GetValues("合同or费用编号")
xhh = xh.Count - 1
Dim idxx As Integer = CurrentTable.Position
msgbox(xhh)
msgbox(idxx)
If xhh <> idxx Then
    msgbox("编号错误,请检查!",0,"警告:")
End If
'
'End If

 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/6/7 10:53:00 [只看该作者]

呃,没有累加是什么意思?看你的代码你一年只有一千以内的订单么?你设置的 000 的格式啊

 

还有问题,就做个例子上来测试。


 回到顶部