以文本方式查看主题

-  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
--  
可能是我自己重新改成适合自己的代码出错了,非常感谢!