以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 自动编号 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=188936) |
-- 作者:1234567 -- 发布时间:2023/10/31 23:47:00 -- 自动编号 自动编号不会递增? Dim bh As String = "采购" & "-" Dim max As String Dim idx As Integer Dim flt As String flt = "[采购单号] Like \'采购%\'" & "And [_Identify] <> " & e.DataRow("_Identify") If max > "" Then idx = CInt(max.Substring(3, 4)) + 1 Else idx = 1 End If e.DataRow("采购单号") = bh & Format(idx, "0000")
|
-- 作者:1234567 -- 发布时间:2023/10/31 23:57:00 -- Dim bh As String = "采购" & "-" Dim max As String Dim idx As Integer Dim flt As String flt = "[采购单号] Like \'采购%\'" & "And [_Identify] <> " & e.DataRow("_Identify") max = e.DataTable.Compute("Max(采购单号)", flt) If max > "" Then idx = CInt(max.Substring(3, 4)) + 1 Else idx = 1 End If e.DataRow("采购单号") = bh & Format(idx, "0000")
|
-- 作者:有点蓝 -- 发布时间:2023/11/1 8:32:00 -- 调试 …… max = e.DataTable.Compute("Max(采购单号)", flt) msgbox(max ) If max > "" Then idx = CInt(max.Substring(3, 4)) + 1 Else idx = 1 End If msgbox(idx ) |
-- 作者:1234567 -- 发布时间:2023/11/1 8:37:00 -- .NET Framework 版本:4.0.30319.42000 Foxtable 版本:2022.8.18.1 错误所在事件:表,物资采购,DataRowAdded 详细错误信息: 调用的目标发生了异常。 索引和长度必须引用该字符串内的位置。 参数名: length
|
-- 作者:1234567 -- 发布时间:2023/11/1 8:46:00 -- 是表单中原来存在采购-05导致,表单中原有编号存在格式不一致,如何解决? |
-- 作者:1234567 -- 发布时间:2023/11/1 8:54:00 -- idx = CInt(max.Substring(3, 4)) + 1 改成 idx = CInt(max.Substring(3) + 1 已解决 |
-- 作者:1234567 -- 发布时间:2023/11/1 8:59:00 -- max = e.DataTable.Compute("Max(采购单号)", flt) msgbox(max ) 编号有 采购-05和采购-0006,找到的最大值为什么是采购-05?
|
-- 作者:有点蓝 -- 发布时间:2023/11/1 9:17:00 -- 字符串是从左到右逐个字符比较的,第5个字符5比0大:采购-05和采购-0006 编号最好是有规律的,格式一致,不然很难处理
[此贴子已经被作者于2023/11/1 9:17:52编辑过]
|
-- 作者:1234567 -- 发布时间:2023/11/1 12:40:00 -- 蓝老师,标记部分读不懂,帮我解释一下,谢谢 e.DataRow("顺序号") = Format(e.DataTable.Compute("Count(采购单号)", "[采购单号] = \'" & e.DataRow("采购单号") & "\' And [_identify] < 0" & (e.DataRow("_Identify")) + 1) , "000")
|
-- 作者:有点蓝 -- 发布时间:2023/11/1 13:40:00 -- 我也没看懂,得找写这个代码的人来解释 |