以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 自动编号含字母 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=97240) |
||||
-- 作者:lxhmax -- 发布时间:2017/3/8 15:39:00 -- 自动编号含字母 表中的编号字段含有字母跟数字,要实现每增加一行的时候,编号就自动加1,这个怎么实现? 比如sz0001,添加一行之后就生成sz0002的编号? 现在datarowadding的代码是这样的 e.DataRow("ypbh") = e.DataTable.Compute("Max(ypbh)") + 1 增加行的时候提示: 调用的目标发生了异常。 从字符串“SX0001”到类型“Double”的转换无效。 输入字符串的格式不正确。 |
||||
-- 作者:有点蓝 -- 发布时间:2017/3/8 15:49:00 -- 参考:http://www.foxtable.com/webhelp/scr/2403.htm |
||||
-- 作者:lxhmax -- 发布时间:2017/3/8 15:52:00 -- 这个字母数量不是固定的,多少个字母都有的,字母是要根据实际情况来录入的,所以说,字母也不是固定下来的 |
||||
-- 作者:有点色 -- 发布时间:2017/3/8 16:00:00 --
如果你要在增加的时候自动编号,就改成
Dim max As String = e.DataTable.Compute("Max(ypbh)") If max > "" Then e.DataRow("ypbh") = "SX" & Format(val(max.Substring(2)) + 1, "0000") else e.DataRow("ypbh") = "SX0001" End If |
||||
-- 作者:有点色 -- 发布时间:2017/3/8 16:01:00 -- 如果你的字母不固定,就不能在增加行的时候得到编号,而是应该在填入编号前缀之后得到
2楼的帮助文档,你把substring的数字,改成 bh.length 就行了 |
||||
-- 作者:lxhmax -- 发布时间:2017/3/8 16:06:00 -- 我看帮助里的参数有点多,不知道具体怎么改,还麻烦说下具体怎么改,谢谢啦! |
||||
-- 作者:有点色 -- 发布时间:2017/3/8 16:21:00 -- 看4楼5楼,不会做,上传实例。 |
||||
-- 作者:lxhmax -- 发布时间:2017/3/21 15:42:00 -- 请问各位老师这个怎么操作?
|
||||
-- 作者:有点色 -- 发布时间:2017/3/21 15:49:00 -- Dim max As String = e.DataTable.Compute("Max(第一列)") If max > "" Then e.DataRow("第一列") = "ab" & Format(val(max.Substring(2)) + 1, "000") Else e.DataRow("第一列") = "SX0001" End If |
||||
-- 作者:lxhmax -- 发布时间:2017/3/21 15:52:00 -- 老师,这个字母跟数字都是不固定的,有可能是ab,cd,abc,abcdef,数字有可能是3位,4位,8位或者9位 |