以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 抄作业都抄不好,新人求指点,单号自动生成的问题 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=126730) |
-- 作者:hitzfeld -- 发布时间:2018/10/27 16:01:00 -- 抄作业都抄不好,新人求指点,单号自动生成的问题 我要设计一个采购单,要求在点击“新增”后,生成一条新的空白单,采购单号要自动生成,格式为XX+年+月+日+编号,编号要自动累加。想来这个应该是比较初级的问题,就没提问题,直接在论坛检索,看到了甜老师的一段代码,想着直接抄过来就可以了,谁知调试了一个早晨都调不好,无奈,只能来这里发帖求教了,望各位老师给予指点。 ------------------------------------------------------------------------------------- 甜老师的代码是这样: DataRowAdded事件 Dim d As Date = Date.Today Dim bh As String = "MY" & Format(d,"yyyyMM") \'生成编号的前6位,4位年,2位月. If e.DataRow("编号").StartsWith(bh) = False \'如果编号的前6位不符 Dim max As String Dim idx As Integer max = e.DataTable.Compute("Max(编号)","编号 like \'" & bh & "%\' And [_Identify] <> " & e.DataRow("_Identify")) \'取得该月的最大编号 If max > "" Then \'如果存在最大编号 idx = CInt(max.Substring(8,4)) + 1 \'获得最大编号的后三位顺序号,并加1 Else idx = 1 \'否则顺序号等于1 End If e.DataRow("编号") = bh & Format(idx,"0000") End If -------------------------------------------------------------------------------------- 但是我实际运行报错:datarow不是controleventargs的成员 再检索这个错误,甜老师在另外一个帖子说把 e.DataRow 改成 Tables("表A").Current 但是我改了之后还是报错。 我错在哪里呢?? 附件的图片是我改甜老师代码后的报错截图 [此贴子已经被作者于2018/10/27 16:11:59编辑过]
|
-- 作者:hitzfeld -- 发布时间:2018/10/27 16:03:00 -- 附件怎么没传上? |
-- 作者:有点蓝 -- 发布时间:2018/10/27 16:21:00 -- 代码放到表格的DataRowAdded事件 |
-- 作者:hitzfeld -- 发布时间:2018/10/27 16:35:00 -- 终于明白了!!!谢谢蓝老师! |