以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]自动编号问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=123947)

--  作者:cqlwsam
--  发布时间:2018/8/27 17:39:00
--  [求助]自动编号问题
代码如下:

\'\'\'
Dim dr As DataRow=e.DataRow
If e.DataCol.Name = "分组" Then
    If dr.IsNull("分组") Then
        dr("父键") = Nothing
        dr("主键")= Nothing
        dr("名称")=Nothing
    Else
        Dim txt As String = dr("分组")
        Dim dr1 As DataRow
        dr1= DataTables("主表").find("[分组]=\'" & txt & "\'")
        If dr1 IsNot Nothing Then
            dr("父键")= dr1("父键")
       else
            Dim max As String = e.DataTable.Compute("Max(父键)")
            Dim idx As Integer
            If max > "" Then
                idx = CInt(max)+1
                MessageBox.Show(idx)
            Else
                idx=1
            End If
            dr("父键")=Format(idx,"00")
        End If
    End If
End If

表如截图

图片点击可在新窗口打开查看此主题相关图片如下:360截图17290511151633.png
图片点击可在新窗口打开查看

想实现:
1.在添加一行时,如果“分组”列的内容在原表中已经有了,父键中的值就等于相应的值。如新增行中的“分组”列为“科研管理”,父键值为“04”(已实现)。如果没有,则父键值在原来最大值上添加1,并填入“父键”中.

--  作者:有点甜
--  发布时间:2018/8/27 17:44:00
--  
Dim dr As DataRow=e.DataRow
If e.DataCol.Name = "分组" Then
    If dr.IsNull("分组") Then
        dr("父键") = Nothing
        dr("主键")= Nothing
        dr("名称")=Nothing
    Else
        Dim txt As String = dr("分组")
        Dim dr1 As DataRow
        dr1= DataTables("主表").find("[分组]=\'" & txt & "\' and _Identify <> " & dr("_Identify"))
        If dr1 IsNot Nothing Then
            dr("父键")= dr1("父键")
       Else
            Dim max As String = e.DataTable.Compute("Max(父键)")
            Dim idx As Integer
            If max > "" Then
                idx = CInt(max)+1
                MessageBox.Show(idx)
            Else
                idx=1
            End If
            dr("父键")=Format(idx,"00")
        End If
    End If
End If