以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 自动编号问题 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=127278) |
-- 作者:aza520 -- 发布时间:2018/11/9 20:54:00 -- 自动编号问题 以下代码红色部分显示有错,请问老师该怎么修改 Select e.DataCol.Name Case "施工合同段","计量期次" If e.DataRow.IsNull("施工合同段") OrElse e.DataRow.IsNull("计量期次")Then e.DataRow("计量编号") = Nothing Else Dim bd As String = e.DataRow("施工合同段") Dim qc As String = e.DataRow("计量期次") Dim bh As String = e.DataRow("施工合同段") & "-" & e.DataRow("计量期次") & "-" \'生成编号的前缀 If e.DataRow("计量编号").StartsWith(bh) = False \'如果单据编号前缀不符 Dim max As String Dim idx As Integer Dim flt As String flt = "施工合同段 = \'"& e.DataRow("施工合同段") & "\' And 计量期次 = \'"& e.DataRow("计量期次") " & bd & e.DataRow("_Identify") max = e.DataTable.Compute("Max(计量编号)",flt) \'取得 If max > "" Then \'如果存在最大编号 idx = CInt(max.Substring(6,3)) + 1 \'获得最大编号的后三位顺序号,并加1 Else idx = 1 \'否则顺序号等于1 End If e.DataRow("计量编号") = bh & Format(idx,"000") End If End If End Select
|
-- 作者:aza520 -- 发布时间:2018/11/9 20:55:00 -- 想生成这样的编号:No.2-01-001,分别对应:施工合同段-计量期次-编号 |
-- 作者:有点蓝 -- 发布时间:2018/11/9 21:09:00 -- flt = "施工合同段 = \'" & e.DataRow("施工合同段") & "\' And 计量期次 = \'" & e.DataRow("计量期次") "\' and _Identify <> " & e.DataRow("_Identify") |
-- 作者:aza520 -- 发布时间:2018/11/10 17:56:00 -- 老师,还是显示以下错误 |
-- 作者:有点甜 -- 发布时间:2018/11/11 9:50:00 -- 改成
flt = "施工合同段 = \'" & e.DataRow("施工合同段") & "\' And 计量期次 = \'" & e.DataRow("计量期次") & "\' and _Identify <> " & e.DataRow("_Identify") |
-- 作者:aza520 -- 发布时间:2018/11/11 10:34:00 -- 甜老师,根据你的意见修改代码可以生成编号,但是新增行的时候,生成的编号也是001,没有按顺序生成002,我是每新增一行才在计量期次列录入计量期次的 |
-- 作者:有点甜 -- 发布时间:2018/11/11 11:26:00 -- idx = CInt(max.Substring(6,3)) + 1 \'获得最大编号的后三位顺序号,并加1
改成
idx = CInt(max.Substring(bh.length, 3)) + 1 \'获得最大编号的后三位顺序号,并加1 |
-- 作者:aza520 -- 发布时间:2018/11/11 11:39:00 -- 可以实现了,多谢甜老师。但是还有一个问题,比如我已经增加了4行,自动编号为001~004,如果我把002行删除,怎么实现:003行自动更改编号为002,004则自动更改编号为003.这样的功能能实现吗? |
-- 作者:有点甜 -- 发布时间:2018/11/11 11:45:00 -- 1、生成的编号不建议修改。因为别的地方有可能引用到这个编号,如果你改了,引用的地方(加入有多个表都引用此编号)那就都要修改。
2、现在的系统,一般不处理断号。 |
-- 作者:有点甜 -- 发布时间:2018/11/11 11:46:00 -- 如果执意要做,参考
http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=85293&replyID=590914&skin=1
|