以文本方式查看主题
- Foxtable(狐表) (http://foxtable.com/bbs/index.asp)
-- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2)
---- [求助]最大编号的问题。 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=57551)
|
-- 作者:liujywwy
-- 发布时间:2014/9/26 14:46:00
-- [求助]最大编号的问题。
Dim d As Date = Date.Today Dim y As Integer = d.Year Dim m As Integer = d.Month Dim bh As String = Format(d,"yyyyMM") \'生成编号的前6位,4位年,2位月. Dim max As String Dim idx As Integer max = e.DataTable.sqlCompute("Max(需求编号)","需求编号 like \'" & bh & "%\'") If max > "" Then \'如果存在最大编号 idx = CInt(max.Substring((bh.length) + 1,3)) + 1 \'获得最大编号的后三位顺序号,并加1 Else idx = 1 \'否则顺序号等于1 End If e.DataRow("需求编号") = bh & Format(idx,"000")
编号想改为201409***,比如201409021,201409022.顺序加下去。可是怎么报错啊。红色的代码不对么。
.NET Framework 版本:2.0.50727.8009 Foxtable 版本:2014.9.23.1 错误所在事件:表,需求明细表,DataRowAdded 详细错误信息: 调用的目标发生了异常。 索引和长度必须引用该字符串内的位置。 参数名: length
[此贴子已经被作者于2014-9-26 14:46:53编辑过]
|
-- 作者:有点甜
-- 发布时间:2014/9/26 14:50:00
--
改一下
idx = CInt(max.Substring(bh.length, 3)) + 1 \'获得最大编号的后三位顺序号,并加1
[此贴子已经被作者于2014-9-26 14:50:30编辑过]
|
-- 作者:liujywwy
-- 发布时间:2014/9/26 14:54:00
--
这个早就试过了,也报同样的错。
|
-- 作者:有点甜
-- 发布时间:2014/9/26 14:56:00
--
应该是你原本的编号有问题吧?msgbox(max)看看,试试移除掉原来的记录。
|
-- 作者:liujywwy
-- 发布时间:2014/9/26 14:59:00
--
以下是引用有点甜在2014-9-26 14:56:00的发言: 应该是你原本的编号有问题吧?msgbox(max)看看,试试移除掉原来的记录。
原来是有记录
比如20140998,20140999.在不移除原来的记录,就没法改了。比如下个新增行变为201409100,201409101
|
-- 作者:有点甜
-- 发布时间:2014/9/26 15:00:00
--
加入代码msgbox(max)看看弹出的值是什么。
|
-- 作者:有点甜
-- 发布时间:2014/9/26 15:03:00
--
如果你原本的记录是两位的,需要用代码把它们规范起来,把两位的99变成三位099
|
-- 作者:liujywwy
-- 发布时间:2014/9/26 15:04:00
--
以下是引用有点甜在2014-9-26 15:00:00的发言: 加入代码msgbox(max)看看弹出的值是什么。
此主题相关图片如下:20140999.png

|
-- 作者:有点甜
-- 发布时间:2014/9/26 15:04:00
--
看7楼,要改数据。
|
-- 作者:liujywwy
-- 发布时间:2014/9/26 15:11:00
--
就是我手动把2014099改为201409099,下个数字就应该正常了201409100,201409101.
但是呢,我把2014099这一行解锁后,这个单元格仍然不能编辑。怎么办?
|