以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]如何实现编号列的自动填充 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=98799) |
-- 作者:an_1288 -- 发布时间:2017/4/7 10:47:00 -- [求助]如何实现编号列的自动填充 比如编号列第一列输入2017001,输入第二列时自动填充2017002, 即: 编号 2017001 2017002 2017003 2017004 2017005 自动填充,这种效果如何实现
|
-- 作者:有点青 -- 发布时间:2017/4/7 11:02:00 -- 参考
http://www.foxtable.com/webhelp/scr/2403.htm
|
-- 作者:an_1288 -- 发布时间:2017/4/7 14:20:00 -- If e.DataCol.Name = "日期" Then If e.DataRow.IsNull("日期") Then e.DataRow("编号") = Nothing Else Dim d As Date = e.DataRow("日期") Dim y As Integer = d.Year Dim Days As Integer = Date.DaysInMonth(y) Dim fd As Date = New Date(y,1) \'获得该月的第一天 Dim ld As Date = New Date(y,Days) \'获得该月的最后一天 Dim bh As String = Format(d,"yyyy") \'生成编号的前6位,4位年,2位月. If e.DataRow("编号").StartsWith(bh) = False \'如果编号的前6位不符 Dim max As String Dim idx As Integer max = e.DataTable.Compute("Max(编号)","日期 >= #" & fd & "# And 日期 <= #" & ld & "# And [_Identify] <> " & e.DataRow("_Identify")) \'取得该月的最大编号 If max > "" Then \'如果存在最大编号 idx = CInt(max.Substring(7,3)) + 1 \'获得最大编号的后三位顺序号,并加1 Else idx = 1 \'否则顺序号等于1 End If e.DataRow("编号") = bh & "-" & Format(idx,"000") End If End If End If 要实现上面的结果这样写可以吗?只是按年生成编号,还有什么是主键列,怎么知道我数据库中的主键列是什么,谢谢!
|
-- 作者:有点青 -- 发布时间:2017/4/7 15:48:00 -- DataRowAdded事件
Dim d As Date = Date.Today Dim max As String |
-- 作者:an_1288 -- 发布时间:2017/4/7 16:16:00 -- 不行呢,我只需要按年生成编号,不需要按月,而且需要从2017-1-1开始录入,麻烦了 |
-- 作者:有点蓝 -- 发布时间:2017/4/7 17:27:00 -- DataColChanged事件 If e.DataCol.Name = "日期" Then If e.DataRow.IsNull("日期") Then e.DataRow("编号") = Nothing Else Dim d As Date = e.DataRow("日期") Dim bh As String = Format(d,"yyyy") \'生成编号的前6位,4位年,2位月. Dim max As String Dim idx As Integer If e.DataRow("编号").StartsWith(bh) = False \'如果编号的前6位不符 max = e.DataTable.Compute("Max(编号)","编号 like \'" & bh & "%\'") \'取得该月的最大编号 If max > "" Then \'如果存在最大编号 idx = CInt(max.Substring(bh.length)) + 1 \'获得最大编号的后三位顺序号,并加1 Else idx = 1 \'否则顺序号等于1 End If e.DataRow("编号") = bh & Format(idx,"000") End If End If End If |
-- 作者:an_1288 -- 发布时间:2017/4/10 8:56:00 -- 好了,谢谢! |