以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  增加数据出错  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=145997)

--  作者:裴保民
--  发布时间:2020/2/13 19:35:00
--  增加数据出错
Dim dt As DataTable = DataTables("收支交易流水")
Dim max  As  String
Dim idx  As  Integer
Dim xrq As String = Format(Date.Today,"yyyyMMdd")
Dim max  As  String  
max = dt.Compute("Max(单号)","单号 like \'HD & xrq & %\'")
If max > ""  Then  \'如果存在最大编号
    idx = CInt(max1.SubString(10)) + 1  \'获得最大编号的后三位顺序号,并加1
Else
    idx = 1  \'否则顺序号等于1
End  If
For Each dr1 As DataRow In dt.Select("单号 is null")
    Dim str As String = "HD" & xrq & Format(idx,"0000")
    Dim fdr As DataRow = dt.find("单号 =\'" & str & "\'")
    If fdr Is Nothing
        dr1("单号") = str
    End If
    idx += 1
Next

代码哪有问题?自动编号为什么隔一行已添加呢

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

[此贴子已经被作者于2020/2/13 19:59:37编辑过]

--  作者:有点蓝
--  发布时间:2020/2/14 9:01:00
--  
For Each dr1 As DataRow In dt.Select("单号 is null")
    Dim str As String = "HD" & xrq & Format(idx,"0000")
        dr1("单号") = str
    idx += 1
Next

--  作者:裴保民
--  发布时间:2020/2/14 9:24:00
--  
单号不自动编号,都是一个号

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




Dim dt As DataTable = DataTables("收支交易流水")
Dim max  As  String
Dim idx  As  Integer
Dim xrq As String = Format(Date.Today,"yyyyMMdd")
max = dt.Compute("Max(SZJYLSID)","SZJYLSID like \'SZJYLS%\'")
If max > ""  Then  \'如果存在最大编号
    idx = CInt(max.SubString(6)) + 1  \'获得最大编号的后三位顺序号,并加1
Else
    idx = 1  \'否则顺序号等于1
End  If
For Each dr As DataRow In dt.Select("SZJYLSID is null")
    Dim str As String = "SZJYLS" & Format(idx,"000000")
    Dim fdr As DataRow = dt.find("SZJYLSID= \'" & str & "\'")
    If fdr Is Nothing
        dr("SZJYLSID") = str
    End If
    idx += 1
Next
dt.Save
Dim max1  As  String
max1 = dt.Compute("Max(单号)","单号 like \'HD & xrq & %\'")   是不是这段代码的问题呀?
If max1 > ""  Then  \'如果存在最大编号
    idx = CInt(max1.SubString(10)) + 1  \'获得最大编号的后三位顺序号,并加1
Else
    idx = 1  \'否则顺序号等于1
End  If
For Each dr1 As DataRow In dt.Select("单号 is null")
    Dim str As String = "HD" & xrq & Format(idx,"0000")
    \'Dim fdr As DataRow = dt.find("单号 =\'" & str & "\' And [_Identify] <> " & e.DataRow("_Identify"))
    \'If fdr Is Nothing
        dr1("单号") = str
   \' End If
    idx += 1
Next


同样的代码SZJYLSID自动都能自动编号

[此贴子已经被作者于2020/2/14 9:32:10编辑过]

--  作者:有点蓝
--  发布时间:2020/2/14 9:36:00
--  
Dim max1  As  String
max1 = dt.Compute("Max(单号)","单号 like \'HD & xrq & %\'")   是不是这段代码的问题呀?
msgbox(max1)
If max1 > ""  Then  \'如果存在最大编号
    idx = CInt(max1.SubString(10)) + 1  \'获得最大编号的后三位顺序号,并加1
Else
    idx = 1  \'否则顺序号等于1
End  If
msgbox( idx )
For Each dr1 As DataRow In dt.Select("单号 is null")
    Dim str As String = "HD" & xrq & Format(idx,"0000")
msgbox( str )
    \'Dim fdr As DataRow = dt.find("单号 =\'" & str & "\' And [_Identify] <> " & e.DataRow("_Identify"))
    \'If fdr Is Nothing
        dr1("单号") = str
   \' End If
    idx += 1
Next

--  作者:裴保民
--  发布时间:2020/2/14 9:44:00
--  
第一次

图片点击可在新窗口打开查看此主题相关图片如下:第一次.jpg
图片点击可在新窗口打开查看
第二次

图片点击可在新窗口打开查看此主题相关图片如下:第二次.jpg
图片点击可在新窗口打开查看
第三次

图片点击可在新窗口打开查看此主题相关图片如下:第三次.jpg
图片点击可在新窗口打开查看


如果放到“SZJYLSID”字段上运行是正确的
第一次

图片点击可在新窗口打开查看此主题相关图片如下:正确1.jpg
图片点击可在新窗口打开查看
第二次

图片点击可在新窗口打开查看此主题相关图片如下:正确2.jpg
图片点击可在新窗口打开查看
第三次

图片点击可在新窗口打开查看此主题相关图片如下:正确3.jpg
图片点击可在新窗口打开查看



[此贴子已经被作者于2020/2/14 9:49:56编辑过]

--  作者:有点蓝
--  发布时间:2020/2/14 9:56:00
--  
max1 = dt.Compute("Max(单号)","单号 like \'HD" & xrq & "%\'")
--  作者:裴保民
--  发布时间:2020/2/14 10:59:00
--  
max1 = dt.Compute("Max(单号)","单号 like \'HD" & xrq & "%\'")蓝老师这句代码如果 不加“HD”怎么写呀?
我是这样写的max1 = dt.Compute("Max(单号)","单号 like \' " & xrq & "%\'")
怎么老是错呀?
[此贴子已经被作者于2020/2/14 10:59:35编辑过]

--  作者:有点蓝
--  发布时间:2020/2/14 11:07:00
--  
max1 = dt.Compute("Max(单号)","单号 like \'" & xrq & "%\'")
--  作者:裴保民
--  发布时间:2020/2/14 11:27:00
--  
max = DataTables("收支交易流水").Compute("Max(单号)","单号 like \'" & bh & "%\'")
      msgbox(max)
就是按您的格式写的还是无数据

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


[此贴子已经被作者于2020/2/14 11:27:42编辑过]

--  作者:有点蓝
--  发布时间:2020/2/14 11:32:00
--  
max = DataTables("收支交易流水").Compute("Max(单号)","单号 like \'%" & bh & "%\'")