以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- [求助]关于自动编号 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=69557) |
-- 作者:青鸟 -- 发布时间: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 |
-- 作者:大红袍 -- 发布时间:2015/6/7 10:53:00 -- 呃,没有累加是什么意思?看你的代码你一年只有一千以内的订单么?你设置的 000 的格式啊
还有问题,就做个例子上来测试。 |