以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]网络单据编号重复 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=100675) |
-- 作者:zswushi -- 发布时间:2017/5/16 11:15:00 -- [求助]网络单据编号重复 1、Dim bh1 As String Dim cmd1 As New SQLCommand cmd1.C cmd1.CommandText = "Select max(出库系统编号) F rom {出库主表} Where 出库系统编号 is null bh1 = cmd1.ExecuteScalar 这里,我读出了 最大编号,静态变量bhs ,怎么读取最大值 ,在最大值的基础上 +1 ?? Static bhs As new Dictionary(of String,Integer) \'这个字典用于记录每个前缀的下一序号 bhs If e.Path = "bianhao.htm" If e.PostValues.ContainsKey("开单日期") Then Dim max As Integer Dim bh As String Dim prefix As String = "CK" & "-" & Format(CDate(e.PostValues("开单日期")), "yyyyMMdd") If bhs.ContainsKey(prefix) = False Then \'如果字典中不存在次前缀的序号, Dim cmd As New SQLCommand cmd.C cmd.CommandText = "Select max(出库系统编号) F rom {出库主表} Where 出库系统编号 Like \'" & prefix & "%\'" bh = cmd.ExecuteScalar If bh IsNot Nothing Then bh = bh.SubString(12) Integer.TryParse(bh,max) End If bhs.Add(prefix,max) ’ Else max = bhs(prefix) ‘, End If max = max + 1 bhs(prefix) = max 这里是原来的经典代码, 我觉得这里max 是INTEGER ,怎么这里变成了 string ?? e.WriteString(Prefix & "-" & Format(max,"00000")) End If End If 请关注下 红色 字体,谢谢老师 !!!
|
-- 作者:有点色 -- 发布时间:2017/5/16 11:36:00 -- 你没有给max赋值
If bh IsNot Nothing Then bh = bh.SubString(12)
max = bh
End If
bhs.Add(prefix,max)
[此贴子已经被作者于2017/5/16 11:36:40编辑过]
|
-- 作者:zswushi -- 发布时间:2017/5/16 16:24:00 -- 问题解决啦,非常感谢!其实上述的代码 是帮助文件里的代码, 网址是 : http://www.foxtable.com/mobilehelp/scr/0250.htm 你们也更正下就可以啦 ,谢谢!! |
-- 作者:有点色 -- 发布时间:2017/5/16 17:14:00 -- 看了下,原来的代码应该是没问题的。你弹出你的bh值看看, msgbox(bh)
|
-- 作者:zswushi -- 发布时间:2017/5/17 9:26:00 -- 可能是我自己重新改成适合自己的代码出错了,非常感谢! |