以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 自动编号问题 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=192981) |
-- 作者:朱女士 -- 发布时间:2024/8/7 13:30:00 -- 自动编号问题 老师您好! 我有一个表ddpsb,要改变编号规则,就是当年年份后两位+行号,可是我改变后,每次操作增加行时,系统自动关闭退出。不知道如何处理。谢谢指教! 原来的格式:20240728-005 我后来改成这样的格式:24-行号~ 现在的代码: Dim dl As Date = Date.Today Dim y As Integer = dl.Year Dim bh As String = Format(dl, "yy") e.DataRow("zzh") = bh & "-" & e.DataRow("_Identify") e.DataRow.save |
-- 作者:有点蓝 -- 发布时间:2024/8/7 13:36:00 -- 代码在什么事件? |
-- 作者:朱女士 -- 发布时间:2024/8/7 13:41:00 -- datacolchanged |
-- 作者:有点蓝 -- 发布时间:2024/8/7 13:47:00 -- http://www.foxtable.com/webhelp/topics/1522.htm |
-- 作者:朱女士 -- 发布时间:2024/8/7 14:05:00 -- 老师我把代码改了一下,还是不执行,一旦输入数据,就自动关闭系统了。您再帮我看一下,谢谢! Dim dl As Date = Date.Today Dim y As Integer = dl.Year \'Dim dr As DataRow = e.DataRow If e.DataCol.Name = "zzh" Then Dim bh As String = Format(dl, "yy") e.DataRow("zzh") = bh & "-" & e.DataRow("_Identify") e.DataRow.save End If |
-- 作者:y2287958 -- 发布时间:2024/8/7 14:22:00 -- 死循环了,要判断列名的 |
-- 作者:朱女士 -- 发布时间:2024/8/7 15:03:00 -- 老师还是上面的问题,还是不执行语句,我想再换个思路,还是不行,压根就不执行。 原来格式:20240728-005 现在换成:24***** 麻烦老师帮我看看为什么不执行。谢谢!
【datacolchanged】代码: Dim dt As Date = Date.Today Dim y As Integer = dt.Year Dim dr1 As DataRow = e.DataRow If e.DataCol.Name = "接单日期" Then If e.DataRow.IsNull("接单日期") Then e.DataRow("zzh") = Nothing Else Dim bh As String = Format(dt, "yy") If e.DataRow("zzh").StartsWith(bh) = False Then\'如果编号的前8位不符 Dim max As String Dim idx As Integer 要求: 新增记录, 要求获得本年度的最大编号加1,或获得最大行号加1 max = e.DataTable.sqlCompute("Max(zzh)", "[_Identify] <> " & e.DataRow("_Identify")) Dim s As String = Trim(max.replace("-", "")) If s > "" Then \'如果存在最大编号 idx = CInt(s.Substring(2, 5)) + 1 idx = 1 \'否则顺序号等于1 End If dr1("zzh") = bh & idx e.DataRow.save End If End If End if |
-- 作者:有点蓝 -- 发布时间:2024/8/7 15:11:00 -- 代码放到datarowadded事件 Dim dl As Date = Date.Today Dim bh As String = Format(dl, "yy") e.DataRow.save e.DataRow("zzh") = bh & "-" & e.DataRow("_Identify") |
-- 作者:朱女士 -- 发布时间:2024/8/7 15:11:00 -- 列名也判断了,怎么还不执行? |
-- 作者:朱女士 -- 发布时间:2024/8/7 15:30:00 -- 放到datarowadded事件中 Dim dl As Date = Date.Today Dim bh As String = Format(dl, "yy") e.DataRow.save e.DataRow("zzh") = bh & "-" & e.DataRow("_Identify") 增加新行,zzh还是空白没有填充。 |