学会调试技巧:http://www.foxtable.com/webhelp/scr/1485.htm
Dim bh As String = "CGDD-" & Format(Date.Today(),"yyyyMMdd")
Dim flt = "采购单号 like '" & bh & "%'"
Dim max = e.DataTable.Compute("Max(采购单号)",flt)
msgbox(max) '这里显示什么?
Dim idx As Integer
If max > "" Then '如果存在最大单据编号
idx = CInt(max.Substring(bh.Length,4)) + 1
Else
idx = 1 '否则顺序号等于1
End If
e.DataRow("采购单号") = bh & Format(idx,"-0000")
至于断号重用,需要添加一个断号表,把被删除的编号记录下来,在生成编号的时候,先到这个表查询获取最早的编号,如果没有再按照上面1/2的方法生成新的编号