Foxtable(狐表)用户栏目专家坐堂 → [求助]最大编号的问题。


  共有2913人关注过本帖树形打印复制链接

主题:[求助]最大编号的问题。

帅哥哟,离线,有人找我吗?
liujywwy
  1楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:633 积分:4034 威望:0 精华:0 注册:2014/6/23 10:27:00
[求助]最大编号的问题。  发帖心情 Post By: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编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
liujywwy
  2楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:633 积分:4034 威望:0 精华:0 注册:2014/6/23 10:27:00
  发帖心情 Post By:2014/9/26 14:54:00 [显示全部帖子]

这个早就试过了,也报同样的错。

 回到顶部
帅哥哟,离线,有人找我吗?
liujywwy
  3楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:633 积分:4034 威望:0 精华:0 注册:2014/6/23 10:27:00
  发帖心情 Post By:2014/9/26 14:59:00 [显示全部帖子]

以下是引用有点甜在2014-9-26 14:56:00的发言:
 应该是你原本的编号有问题吧?msgbox(max)看看,试试移除掉原来的记录。

原来是有记录

比如20140998,20140999.在不移除原来的记录,就没法改了。比如下个新增行变为201409100,201409101


 回到顶部
帅哥哟,离线,有人找我吗?
liujywwy
  4楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:633 积分:4034 威望:0 精华:0 注册:2014/6/23 10:27:00
  发帖心情 Post By:2014/9/26 15:04:00 [显示全部帖子]

以下是引用有点甜在2014-9-26 15:00:00的发言:
 加入代码msgbox(max)看看弹出的值是什么。


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

 回到顶部
帅哥哟,离线,有人找我吗?
liujywwy
  5楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:633 积分:4034 威望:0 精华:0 注册:2014/6/23 10:27:00
  发帖心情 Post By:2014/9/26 15:11:00 [显示全部帖子]

就是我手动把2014099改为201409099,下个数字就应该正常了201409100,201409101.

但是呢,我把2014099这一行解锁后,这个单元格仍然不能编辑。怎么办?


 回到顶部
帅哥哟,离线,有人找我吗?
liujywwy
  6楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:633 积分:4034 威望:0 精华:0 注册:2014/6/23 10:27:00
  发帖心情 Post By:2014/9/26 15:25:00 [显示全部帖子]

以下是引用有点甜在2014-9-26 15:17:00的发言:

 你要把所有两位的改成3位的才行。

 

 For Each dr As DataRow In DataTables("表A").Select("")
    If dr.IsNull("第一列") = False AndAlso dr("第一列").Length = 8 Then
        dr.Locked = not dr.Locked
        dr("第一列") = dr("第一列").Substring(0,6) & "0" & dr("第一列").Substring(6,2)
        dr.Locked = not dr.Locked
    End If
Next

这段代码放哪里?

还有好几个表都是通过需求编号进行的关联表,他们关联表的需求编号同样会修改吗?


 回到顶部