我有一个出货单表(chuhuodan)
自动生成出货单编号
一、开始代码不是很会写 所以在 DataColChanged 写如下代码:
Select Case e.DataCol.Name
Case "chuhuodate"
Dim dr As DataRow = e.DataRow
Dim s As String = dr("_Identify")
dr("chuhuodan") = "XS" & s.PadLeft(6,"0")
End Select
当编辑 chuhuodate 的时候根据 _Identify 产生出货单。
二、后来修改了一下代码 在 DataRowAdding 写如下代码
Dim dr As DataRow = e.DataRow
Dim s As String = dr("_Identify")
e.DataRow("chuhuodan") = "XS" & s.PadLeft(6,"0")
这两个运行的结果应该是一样的。
第一个是 编辑 chuhuodate 的时候 根据 identify 产生编号
第二个是 增加行的时候自动产生编号。
可是实际运行结果却不一样。
第一个运行的结果是 根据 最后一个出货单 编号上+1 ,不会产生中断的号码
第二个运行的结果是 根据identify 产生出货单编号,当删除过行以后,会有中断的编号产生。
很奇怪不知道为什么会产生第一中情况。
实际运行方法是在窗口运行的。打开 销售信息--销售开单
第一种方法 需要 在窗口中输入 日期 激活该代码,点“取消” 按钮后 他会删除当前行,再次运行销售开单,他会产生连续的编号。
第二种方法 直接打开 销售开单 他就会产生出货单号,点“取消”按钮后,他会删除当前行,再次运行销售开单,他会产生不连续的编号。

为什么这两种方法运行的结果不一样呢?