'自动录入生产计划主号与分号
If e.DataCol.Name = "编制时间" Then
If e.DataRow("编制时间") <> Nothing Then
e.DataRow("月份")=Format(e.DataRow("编制时间"),"yyyy-MM")
e.DataRow("日期")=Format(e.DataRow("编制时间"),"yyyy-MM-dd")
Dim dr1 As DataRow
dr1 = e.DataTable.SQLFind("[编制时间] = '" & CurrentTable.Current("编制时间") & "' And [_Identify] <> '" & CurrentTable.Current("_Identify") & "'" ,"生产计划分号 Desc",0)
If dr1 IsNot Nothing Then '如果找到的话
If dr1("生产计划分号") >= 99 Then
MessageBox.Show("此主号的分号值已经达到99,不能再增加新的分号,本次编制时间取消录入!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
e.DataRow("编制时间") = Nothing
Else
CurrentTable.Current("生产计划主号") = dr1("生产计划主号")
CurrentTable.Current("生产计划分号") = dr1("生产计划分号") +1
End If
Else
Dim dr2 As DataRow
dr2 = e.DataTable.SQLFind("[编制时间] <> '" & CurrentTable.Current("编制时间") & "' And [日期] = '" & CurrentTable.Current("日期") & "'","生产计划主号 Desc",0)
If dr2 IsNot Nothing Then '如果找到的话
If dr2("生产计划主号") >= 99 Then
MessageBox.Show("当日的主号值已经达到99,不能再增加新的主号,本次编制时间取消录入!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
e.DataRow("编制时间") = Nothing
Else
CurrentTable.Current("生产计划主号") = dr2("生产计划主号") + 1
CurrentTable.Current("生产计划分号") = 1
End If
Else
CurrentTable.Current("生产计划主号") = 1
CurrentTable.Current("生产计划分号") = 1
End If
End If
Else
e.DataRow("生产计划主号") = Nothing
e.DataRow("生产计划分号") = Nothing
e.DataRow("生产计划编号") = Nothing
e.DataRow("月份") = Nothing
e.DataRow("日期") = Nothing
End If
End If
'生产计划编号生成模块
If e.DataCol.Name = "编制时间" OrElse e.DataCol.Name = "生产计划主号" OrElse e.DataCol.Name = "生产计划分号" Then
If e.DataRow("编制时间") <> Nothing AndAlso e.DataRow("生产计划主号") <> Nothing AndAlso e.DataRow("生产计划分号") <> Nothing Then
Dim zh As String = CStr(e.DataRow("生产计划主号")) '分号转字符型
If zh.Length = 1 Then '分号长度为1位时前面补字符0
zh = "0" & zh
End If
Dim fh As String = CStr(e.DataRow("生产计划分号")) '分号转字符型
If fh.Length = 1 Then '分号长度为1位时前面补字符0
fh = "0" & fh
End If
e.DataRow("生产计划编号") = "SCJH" & Format(e.DataRow("编制时间"),"yyyy-MM-dd") & "-" & zh & "-" & fh
End If
e.DataRow.Save
End If