Rss & SiteMap

Foxtable(狐表) http://www.foxtable.com

新一代数据库软件,完美融合Access、Foxpro、Excel、vb.net之优势,人人都能掌握的快速软件开发工具!
共11 条记录, 每页显示 10 条, 页签: [1] [2]
[浏览完整版]

标题:自动编号问题

1楼
朱女士 发表于: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
2楼
有点蓝 发表于:2024/8/7 13:36:00
代码在什么事件?
3楼
朱女士 发表于:2024/8/7 13:41:00
datacolchanged
4楼
有点蓝 发表于:2024/8/7 13:47:00
http://www.foxtable.com/webhelp/topics/1522.htm
5楼
朱女士 发表于: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
6楼
y2287958 发表于:2024/8/7 14:22:00
死循环了,要判断列名的
7楼
朱女士 发表于: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
8楼
有点蓝 发表于: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")

9楼
朱女士 发表于:2024/8/7 15:11:00
列名也判断了,怎么还不执行?
10楼
朱女士 发表于: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还是空白没有填充。

共11 条记录, 每页显示 10 条, 页签: [1] [2]

Copyright © 2000 - 2018 foxtable.com Tel: 4000-810-820 粤ICP备11091905号

Powered By Dvbbs Version 8.3.0
Processed in .03125 s, 2 queries.