以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]第一列生成自动编号 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=177679) |
||||
-- 作者:miaoqingqing -- 发布时间:2022/5/30 20:39:00 -- [求助]第一列生成自动编号 如题,根据第二列和第三列,生成第一列自动编号
|
||||
-- 作者:有点蓝 -- 发布时间:2022/5/30 20:56:00 -- 参考:http://www.foxtable.com/webhelp/topics/2403.htm |
||||
-- 作者:miaoqingqing -- 发布时间:2022/5/30 21:14:00 -- 回复:(有点蓝)参考:http://www.foxtable.com/webh... 蓝主,上楼一列是日期,我的是两列字符,不懂修改。怎么修改? |
||||
-- 作者:有点蓝 -- 发布时间:2022/5/30 21:30:00 -- 看帮助里三、按类别编号 |
||||
-- 作者:miaoqingqing -- 发布时间:2022/5/31 7:55:00 -- 回复:(有点蓝)看帮助里三、按类别编号 蓝主,报错帮忙看看 |
||||
-- 作者:有点蓝 -- 发布时间:2022/5/31 8:47:00 -- If max > "" Then \'如果存在最大空间部位编号 idx = CInt(max.Substring(max.Length - 3)) + 1 \'获得最大空间部位编号的后三位顺序号,并加1 Else idx = 1 \'否则顺序号等于1 End If
|
||||
-- 作者:wukangppbb -- 发布时间:2022/5/31 15:22:00 -- 回复:(有点蓝) ... 老师,这两句的主要差异是在哪里? 一个最大长度减3,一个从第三个数加三位数,怎么理解这个代码含义? idx = CInt(max.Substring(max.Length - 3)) + 1 idx = CInt(max.Substring(2,3)) + 1 |
||||
-- 作者:有点蓝 -- 发布时间:2022/5/31 15:31:00 -- 自己加代码调试看效果就知道了 Dim max As String = "123456-001" Output.Show(max.Substring(max.Length - 3)) Output.show(max.Substring(2, 3)) max = "1234-001" Output.show(max.Substring(max.Length - 3)) Output.show(max.Substring(2, 3)) 如果第二列的字符长度不固定,明显第一句的用法才是正确的
|
||||
-- 作者:wukangppbb -- 发布时间:2022/5/31 16:15:00 -- 回复:(有点蓝)自己加代码调试看效果就知道了Dim ma... 测试了一下,的确一目了然了。 有点像Excel函数里面的取右边的三位数。 另外,大家都是按照指导手册里面去写的这个,出错的比率不低,应该都是没有理解代码的含义的。
|
||||
-- 作者:18996655501 -- 发布时间:2023/3/22 11:03:00 -- elect Case e.DataCol.Name Case "第二列", "第三列" If e.DataRow.IsNull("第二列") AndAlso e.DataRow.IsNull("第三列") Then e.DataRow("第一列") = Nothing Else Dim max As String Dim idx As Integer Dim bh As String bh = e.DataRow("第二列") & "-" & e.DataRow("第三列") & "-" If e.DataRow("第一列").StartsWith(bh) = False Then max = e.DataTable.Compute("Max(第一列)", "第二列=\'" & e.DataRow("第二列") & "\' And 第三列= \'" & e.DataRow("第三列") & "\' And [_Identify] <> " & e.DataRow("_Identify")) If max > "" Then idx = CInt(max.Substring(6, 3)) + 1 Else idx = 1 End If e.DataRow("第一列") = bh & format(idx, "000") End If End If End Select
|