Foxtable(狐表)用户栏目专家坐堂 → 分组内排序(分组内有重复的编号一致)


  共有3291人关注过本帖树形打印复制链接

主题:分组内排序(分组内有重复的编号一致)

帅哥哟,离线,有人找我吗?
有点蓝
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:109736 积分:558396 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/4/28 16:03:00 [显示全部帖子]

Dim dr As DataRow = e.DataRow
Select Case e.DataCol.Name
    Case "饰品类别","件数"
        If e.DataCol.Name = "饰品类别" Then
            If e.DataRow.IsNull("饰品类别")  Then
                e.DataRow("序号") = Nothing
            Else
                Dim dr2 As DataRow = e.DataTable.find("饰品类别 = '" & dr("饰品类别") & "' And 件数 = '" & dr("件数") & "' And [_Identify] <> " & dr("_Identify"))
                If dr2 IsNot Nothing AndAlso dr2.IsNull("序号") = False
                    e.DataRow("序号") = dr2("序号")
                Else
                    Dim max As String
                    Dim idx As Integer
                    max = e.DataTable.Compute("Max(序号)","饰品类别 = '" & e.DataRow("饰品类别") & "'  And [_Identify] <> " & e.DataRow("_Identify")) '取得该天的最大序号
                    If max > "" Then '如果存在最大序号
                        idx = CInt(max) + 1 '获得最大序号的后三位顺序号,并加1
                    Else
                        idx = 1 '否则顺序号等于1
                    End If
                    e.DataRow("序号") = Format(idx,"00000")
                    
                End If
            End If
        End If
End Select

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:109736 积分:558396 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/4/28 16:59:00 [显示全部帖子]

做个例子发上来测试。旧数据不会自己更改的,新录入的数据有没有问题?

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:109736 积分:558396 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/4/28 17:23:00 [显示全部帖子]

Dim dr As DataRow = e.DataRow
Select Case e.DataCol.Name
    Case "饰品类别","件数"
            If e.DataRow.IsNull("饰品类别") orelse e.DataRow.IsNull("件数") Then
                e.DataRow("序号") = Nothing
            Else
                Dim dr2 As DataRow = e.DataTable.find("饰品类别 = '" & dr("饰品类别") & "' And 件数 = '" & dr("件数") & "' And [_Identify] <> " & dr("_Identify"))
                If dr2 IsNot Nothing AndAlso dr2.IsNull("序号") = False
                    e.DataRow("序号") = dr2("序号")
                Else
                    Dim max As String
                    Dim idx As Integer
                    max = e.DataTable.Compute("Max(序号)","饰品类别 = '" & e.DataRow("饰品类别") & "'  And [_Identify] <> " & e.DataRow("_Identify")) '取得该天的最大序号
                    If max > "" Then '如果存在最大序号
                        idx = CInt(max) + 1 '获得最大序号的后三位顺序号,并加1
                    Else
                        idx = 1 '否则顺序号等于1
                    End If
                    e.DataRow("序号") = Format(idx,"00000")
                    
                End If
            End If
End Select

 回到顶部