以文本方式查看主题

-  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
--  
请问各位老师这个怎么操作?

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:含字母列自动编号.zip


图片点击可在新窗口打开查看此主题相关图片如下:qq截图20170321153847.png
图片点击可在新窗口打开查看


--  作者:有点色
--  发布时间: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位