以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  自动日期编号生成  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=130)

--  作者:狐狸爸爸
--  发布时间:2008/9/2 11:47:00
--  自动日期编号生成

要求:
一个[编号]列。以[日期]列为基础建立[编号]列。以前在易表里[编号]列用的刷新公式是:"0"+text(number(format([日期],"yymmdd00"))+CountFor(GridName,"日期","=",[日期],1,Row)),现在用FoxTable怎么做?

示例: 


 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目9_0902.zip


Foxtable本身已经有编号列“_Identify”,每增加一行递增1,所以代码原理很简单:

\'如果发生变化的是日期列,而且已经输入日期
If e.DataCol.Name = "日期" And e.Datarow.IsNull("日期")  = False Then
    Dim dt As Date = e.DataRow("日期") \'获得输入的日期
    \'计算编号
    e.Datarow("编号") =  Format(dt,"yyMMdd") & Format(e.DataTable.Compute("Count(日期)", "[日期] = #" & dt & "# And [_identify] < " & e.DataRow("_Identify")) + 1,"000")
End If

[此贴子已经被作者于2008-9-2 11:56:41编辑过]

--  作者:菜鸟冬瓜
--  发布时间:2008/9/2 18:42:00
--  

哈哈  我的问题都上这了 腰不好 也顶


--  作者:wzyeli
--  发布时间:2008/9/2 21:33:00
--  

我还是没有弄明白,如何实现的。但我发现如果是要生成不重复的自动编号,这个就不行了(编号生成后,在中间的某个行删掉,编号就会有重复的出现了)。


--  作者:狐狸爸爸
--  发布时间:2008/9/2 22:59:00
--  
作为数据管理来说,这样的编码生成方式不好,最好就是用_identify,或手工输入。
--  作者:贺子叔叔
--  发布时间:2008/9/3 0:07:00
--  
学习.
--  作者:lyang70
--  发布时间:2008/9/3 13:20:00
--  
学习了!
--  作者:菜鸟冬瓜
--  发布时间:2008/9/3 15:50:00
--  
以下是引用wzyeli在2008-9-2 21:33:00的发言:

我还是没有弄明白,如何实现的。但我发现如果是要生成不重复的自动编号,这个就不行了(编号生成后,在中间的某个行删掉,编号就会有重复的出现了)。

对 删除中间的行时会出现重复的。 我想还是用_identify 但现在还不是时候 。现在和我儿子一样一年级的小豆包。

[此贴子已经被作者于2008-9-3 15:51:43编辑过]

--  作者:东方楠木
--  发布时间:2008/9/6 14:52:00
--  
好好学习.天天向上。
--  作者:lygxiaolu
--  发布时间:2008/9/10 13:20:00
--  
大家别笑我,我想问楼主那些代码在程序中的哪里可以看到啊
--  作者:lygxiaolu
--  发布时间:2008/9/10 13:21:00
--  
好象示例中的编号不是表达式列啊,在其它--计算代码中也没有找到啊