以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 如何在相同的单号下,生成顺序号 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=21882) |
||||
-- 作者:飞天 -- 发布时间:2012/7/26 17:08:00 -- 如何在相同的单号下,生成顺序号
请看例子, 在任何一个相同订单号下的明细表中,顺序号均由1,2,3...递增. 请前辈帮忙 ! |
||||
-- 作者:飞天 -- 发布时间:2012/7/26 18:46:00 -- 感谢您的帮助. 有一个问题,在重置"订单号"列的时候,每一个顺序号都会跟着自动加 1 这样明显不是很安全. 请问如何解决这个问题? |
||||
-- 作者:狐狸爸爸 -- 发布时间:2012/7/27 8:17:00 -- 在muhua的基础上改一下就行了:
Select e.DataCol.Name |
||||
-- 作者:狐狸爸爸 -- 发布时间:2012/7/27 10:59:00 -- Select e.DataCol.Name Case "订单号" If e.DataRow.IsNull("订单号") Then e.DataRow("顺序号") = Nothing ElseIf e.OldValue <> e.NewValue OrElse e.DataRow.IsNull("顺序号") Then Dim max As String Dim idx As Integer Dim flt As String flt = "订单号 = \'"& e.DataRow("订单号") & "\' And [_Identify] <> " & e.DataRow("_Identify") max = e.DataTable.Compute("Max(顺序号)",flt) \'取得该月的相同工程代码的最大单据编号 If max > "" Then \'如果存在最大单据编号 idx = CInt(max) + 1 \'获得最大单据编号的后四位顺序号,并加1 Else idx = 1 \'否则顺序号等于1 End If e.DataRow("顺序号") = idx End If End Select |