判断的目的是:可能曾经手工录入了不正确的编号,或者没有录入过编号,【If e.DataRow("编号").StartsWith(bh) = False】这个判断都符合这2中情况,这时就需要重新生成编号。假设【2011-05-20】这天已经有编号,编号是201105-003,不符合【If e.DataRow("编号").StartsWith(bh) = False】要求,就不需要重新生成了。
如果这时新增一行,日期录入【2011-05-21】,由于编号没有数据符合【If e.DataRow("编号").StartsWith(bh) = False】要求,开始计算编号,max获取已经录入的最大编号就是【201105-003】,【max.Substring(7,3)】计算的结果就是003,【CInt(max.Substring(7,3)) + 1】就等于是【CInt(003) + 1】,结果等于4,那么【e.DataRow("编号") = bh & "-" & Format(idx,"000")】的结果就是相当于【e.DataRow("编号") = "201105-003"】
建议帮助搜索Compute、Substring、CInt、Format,了解这4个函数的用法。