以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  【求助】在分页加载的情况下,新增行如何编号?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=142187)

--  作者:minxizai
--  发布时间:2019/10/20 20:39:00
--  【求助】在分页加载的情况下,新增行如何编号?
e.DataRow("业务日期") = Date.Today
Dim bh As String = Format(e.DataRow("业务日期"),"yyyyMMdd") \'取得编号的8位前缀
If e.DataRow("编号").StartsWith(bh) = False \'如果编号的前8位不符
    Dim max As String
    Dim idx As Integer
    max = e.DataTable.SQLCompute("Max(编号)","业务日期 = #" & e.DataRow("业务日期") & "# And [_Identify] <> " & e.DataRow("_Identify")) \'取得该天的最大编号
    If max > "" Then \'如果存在最大编号
        idx = CInt(max.Substring(12,6)) + 1 \'获得最大编号的后三位顺序号,并加1
    Else
        idx = 1 \'否则顺序号等于1
    End If
    e.DataRow("编号") = "RKD" & bh & "-" & Format(idx,"000000")
End If

分页加载的情况下,如果用compute,只会获得当前页面的最大编号
如果用sqlcompute,会产生重复编号,请问该如何使用?
find  sqlfind可以两个一起用
其他这类的不会用啊,比如一半要求的数据已加载,sqlselect 和lselect如何使用

--  作者:有点蓝
--  发布时间:2019/10/20 20:47:00
--  
设置后保存当前行:
……
e.DataRow("编号") = "RKD" & bh & "-" & Format(idx,"000000")
e.DataRow.Save
……