谢谢 有点蓝 老师!
您太厉害了。
我琢磨了一下午,借签别人例子,弄成功一个文件,依葫芦画瓢,发上来您看看,估计您要笑话。代码写了好多行,一看您写的语句和例子,乐了,我也想到用一个辅助列,看来还有好多要学的东西。
老师就是老师!
Dim d As Date = Date.Today
Dim bh As String =d.year '取今天日期的年号
Dim max As String
Dim idx As Integer
max = e.DataTable.Compute("Max(编号)","编号 like '" & bh & "%' ") '取得该月的最大编号
If max > "" Then '如果存在最大编号
idx = CInt(max.Substring(bh.length)) + 1 '获得最大编号顺序号,并加1
Else
idx = 1 '否则顺序号等于1
End If
e.DataRow("编号") = bh & Format(idx,"0000") '生成20170000这种格式
'以下为辅助文件编号
Dim wjbh,wjbhA,wjbh1,wjbh2,wjbh3,wjbh4,wjbh5,wjbh6,wjbh7,wjbh8 As String
wjbh = e.DataRow("编号") '将编号赋值给变量wjbh(文件编号)
wjbhA = wjbh.Substring(0,4) '取前4位年号
wjbh1 = wjbh.Substring(7,1) '取最后1位编号
wjbh2 = wjbh.Substring(6,2) '取后2位编号
wjbh3 = wjbh.Substring(5,3) '取后3位编号
wjbh4 = wjbh.Substring(4,4) '取后4位编号
wjbh5 = wjbh.Substring(4,3) '取第5位\6位\7位编号,用于判断是否为000
wjbh6 = wjbh.Substring(4,2) '取第5位\6位编号,用于判断是为00
wjbh7 = wjbh.Substring(4,1) '取第5位编号,用于判断是否为0
If wjbh5 = 000 Then
e.DataRow("文件编号") = "[" & wjbhA & "]" & "-" & wjbh1 & "号" '取最后1位编号,如果是20170001,变成为[]2017]-1号
ElseIf wjbh6 = 00 Then
e.DataRow("文件编号") = "[" & wjbhA & "]" & "-" & wjbh2 & "号" '取最后2位编号,如果是20170011,变成为[]2017]-11号
ElseIf wjbh7 = 0 Then
e.DataRow("文件编号") = "[" & wjbhA & "]" & "-" & wjbh3 & "号" '取最后3位编号,如果是20170111,变成为[]2017]-111号
Else
e.DataRow("文件编号") = "[" & wjbhA & "]" & "-" & wjbh4 & "号" '取最后4位编号,如果是20170001,变成为[]2017]1111号
End If