以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  编码问题  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=70629)

--  作者:xiaohuli
--  发布时间:2015/6/25 12:51:00
--  编码问题

我想实现如下的编号,a编码,b编码,c编码,顺序码

编码是根据a编码+b编码+c编码+顺序码得到的,但顺序码是随a、b、c编码变动自动+1。(顺序码是三位,001开始)如何编写这个顺序码。

eg:a  b  c  顺序码

      1  0  01   001 

      1  0  01   002 

      1  0  02   001 

      2  0  01   001

 顺序码根据a,b,c编码变动自动加1 。

[此贴子已经被作者于2015/6/25 13:51:44编辑过]

--  作者:大红袍
--  发布时间:2015/6/25 14:06:00
--  

参考

 

http://www.foxtable.com/help/topics/2403.htm

 


--  作者:大红袍
--  发布时间:2015/6/25 14:11:00
--  

datacolchanged事件

 

Select Case e.DataCol.Name
    Case "第一列", "第二列", "第三列"
        Dim  max As String
        Dim  idx As  Integer
        max = e.DataTable.Compute("Max(第五列)"," 第一列 = \'" & e.DataRow("第一列") & "\' and 第二列 = \'" & e.DataRow("第二列") & "\' and 第三列 = \'" & e.DataRow("第三列") & "\' and [_Identify] <> " & e.DataRow("_Identify"))
        If  max > "" Then \'如果存在最大编号
            idx = CInt(max.Substring(0,3)) + 1  \'获得最大编号的后三位顺序号,并加1
            e.DataRow("第五列") = Format(idx,"000")
           
        Else
            e.DataRow("第五列") = "001"
        End  If
End Select