本表中有 项目代码 合同代码 签约日期 合同编号 4个字段
合同编号规则是:项目代码-合同代码-签约日期-(顺序号)
希望根据不同的合同编号前缀,自动生成递增的(顺序号)
参考http://www.foxtable.com/help/index.html?n=2403.htm的第四条,在DataColChanged事件中修改设置了如下代码,不能实现,提示是筛选语句flt应该是结束的。
请教修改:
Select e.DataCol.Name
Case "签约日期"
If e.DataRow.IsNull("签约日期") Then
e.DataRow("合同编号") = Nothing
Else
Dim d As Date = e.DataRow("签约日期")
Dim y As Integer = d.Year
Dim m As Integer = d.Month
Dim Days As Integer = Date.DaysInMonth(y,m)
Dim bh As String = e.DataRow("项目代码") & "-" & e.DataRow("合同代码") & "-" & Format(d,"yyyyMM") & "-" '生成编号的前缀
If e.DataRow("合同编号").StartsWith(bh) = False '如果合同编号前缀不符
Dim max As String
Dim idx As Integer
Dim flt As String
flt = "项目代码 = '"& e.DataRow("项目代码") & "' And "合同代码 = '"& e.DataRow("合同代码") & "' And "签约日期 = '" & e.DataRow("签约日期") & "'And [_Identify] <> " & e.DataRow("_Identify") & "
max = e.DataTable.Compute("Max(合同编号)",flt) '相同合同代码的最大合同编号
If max > "" Then '如果存在最大合同编号
Dim ma As Integer
ma = max.LastIndexof("-")
idx = CInt(max.SubString(ma,3)) + 1
Else
idx = 1
End If
e.DataRow("合同编号") = bh & Format(idx,"000")
End If
End If