Dim dr As DataRow = e.DataRow
Dim pf As String
Dim pd As String
If dr.RowState <> DataRowState.Added Then '如果不是新增行
If e.DataRow("开单日期") = e.DataRow.OriginalValue("开单日期") Then '而且日期没有修改
Return '那么返回
End If
End If
If dr.IsNull("开单日期") Then '如果没有输入日期
e.Cancel = True '取消保存此行
MessageBox.Show("必须输入开单日期!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
Return '返回
End If
pf = Format(dr("开单日期"),"yyyyMMdd")
pd = CurrentTable.Name
Dim cmd1 As New SQLCommand
Dim cmd2 As New SQLCommand
Dim Key As Integer
cmd1.C
cmd2.C
cmd1.commandText = "Select Count(*) From [编号] Where [前缀] = '" & pf & "'And 表名 ='" & pd & "'"
If cmd1.ExecuteScalar = 0 Then '如果系统单号表不存在前缀的行,那么增加一行
cmd1.commandtext = "Insert Into 编号 (表名,前缀, 顺序号) Values('" & pd & "','" & pf & "',1)"
cmd1.ExecuteNonQuery
End If
cmd1.commandText = "Select [顺序号] From [编号] Where [前缀] = '" & pf & "' And 表名 ='" & pd & "'"
Do
Key = cmd1.ExecuteScalar() '从后台获得顺序号
cmd2.commandText = "Update [编号] Set [顺序号] = " & (Key + 1) & " Where [顺序号] = " & Key & " And [前缀] = '" & pf & "' And 表名 ='" & pd & "'"
If cmd2.ExecuteNonQuery() > 0 Then '更新顺序号
Exit Do '更新成功则退出循环
End If
Loop
Dim dr1 As DataRow = DataTables("单号定义").Find( "表名 ='" & pd & "'")
If dr1 IsNot Nothing Then
e.DataRow("系统单号") = dr1("单号定义") & pf & Format(Key,"0000")
End If