以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  按顺序增加编号,  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=145650)

--  作者:yangwenghd
--  发布时间:2020/2/3 17:09:00
--  按顺序增加编号,
老师们 ,在表A 增加一行,然后 表A的第一列就在上一列编号上增加一个,格式就是GYS6  然后后面有6位编号,没增加一行,编号就在值最大上加1

比如 表没有行,增加一行,表a第一列就是 GYS6000001,
在增加一行,就是GYS6000002, 可以不通过在结构表达式吗?通过在表属性的datarowadding 或者其他的,感谢 感谢,主要是方便后面可以再次编辑。

\'GYS6\' + SubString(\'000000\', 1, 4 - Len(Convert([_Identify],\'System.String\'))) + Convert([_Identify], \'System.String\')
[此贴子已经被作者于2020/2/3 17:09:53编辑过]

--  作者:有点蓝
--  发布时间:2020/2/3 17:24:00
--  
datarowadding事件

Dim max As String = e.DataTable.compute("max(第一列)")
Dim idx As Integer
If max > "" Then \'如果存在最大编号
    idx = CInt(max.Substring(4)) + 1 \'获得最大编号的后三位顺序号,并加1
Else
    idx = 1 \'否则顺序号等于1
End If
e.DataRow("第一列") ="GYS6" & Format(idx,"000000")

--  作者:yangwenghd
--  发布时间:2020/2/3 17:54:00
--  
谢谢老师,感谢 
--  作者:yangwenghd
--  发布时间:2020/2/4 17:04:00
--  
老师 能请教一下吗?就是当项目重启后通过代码生成的编号全部都不见了,这是什么原因呀?感谢 感谢 


谢谢老师 找到答案了  列的属性搞错了,感谢 了
[此贴子已经被作者于2020/2/4 17:16:09编辑过]

--  作者:有点蓝
--  发布时间:2020/2/4 17:16:00
--  
编号列不要使用表达式列,改为数据列。