Foxtable(狐表)用户栏目专家坐堂 → 甜甜,你好, 自动编号问题


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

主题:甜甜,你好, 自动编号问题

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/3/22 18:06:00 [显示全部帖子]

Select e.DataCol.Name
    Case "编号"
        If e.DataRow.IsNull("编号") Then
            e.DataRow("次数") = Nothing
        Else
            Dim bh As String = e.DataRow("编号")
            Dim max As String
            Dim idx As Integer
            max = e.DataTable.Compute("Max(次数)","编号 = '" & bh & "' And [_Identify] <> " & e.DataRow("_Identify")) '取得该类别的最大编号
            If max > "" Then '如果存在最大编号
                idx = CInt(max) + 1 '加1
            Else
                idx = 1'否则顺序号等于空
            End If
            e.DataRow("次数") = Format(idx,"000")
        End If
End Select

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/3/22 20:20:00 [显示全部帖子]

For Each fdr As DataRow In DataTables("客户数据").Select("固定时间 = '" & e.DataRow("星期") & "'", "固定排序,时间")
    '从客户数据里面加载数据到主表里面
   
    If i = 0 Then
        dr = e.DataRow
    Else
        dr = e.DataTable.AddNew
    End If
    dr("日期") = e.DataRow("日期")
    dr("编号") = fdr("编号")
    dr("支付方式") = fdr("支付方式")
   
    If dr.IsNull("编号") Then
        dr("次数") = Nothing
    Else
        Dim bh As String = dr("编号")
        Dim max As String
        Dim idx As Integer
        max = e.DataTable.Compute("Max(次数)","编号 = '" & bh & "' And [_Identify] <> " & dr("_Identify")) '取得该类别的最大编号
        If max > "" Then '如果存在最大编号
            idx = CInt(max) + 1 '加1
        Else
            idx = 1'否则顺序号等于空
        End If
        dr("次数") = Format(idx,"000")
    End If
   
    i += 1
Next

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/3/26 15:58:00 [显示全部帖子]

你需要加一个辅助列【人工修改】,如果手动修改,就勾选一下,然后查找数据,排除手动修改的列

 

max = e.DataTable.Compute("Max(次数)","(人工修改 = false or 人工修改 is null) and 编号 = '" & bh & "' And [_Identify] <> " & dr("_Identify")) '取得该类别的最大编号


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/3/26 16:01:00 [显示全部帖子]

如果你要计算次数,可以改成这样

 

max = e.DataTable.Compute("count(次数)","编号 = '" & bh & "' And [_Identify] <> " & dr("_Identify")) '取得该类别的最大编号


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/3/26 16:36:00 [显示全部帖子]

不明白你说的意思,请上传实例说明。说明操作哪一行数据,然后需要得到什么效果。

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/3/26 18:12:00 [显示全部帖子]

Select e.DataCol.Name
    Case "编号"
        If e.DataRow.IsNull("编号") Then
            e.DataRow("次数") = Nothing
        Else
            Dim bh As String = e.DataRow("编号")
           
            Dim dr As DataRow = e.DataTable.find("编号 = '" & bh & "' and _Identify < " & e.DataRow("_Identify"), "_Identify desc")
            If dr IsNot Nothing Then
                e.DataRow("次数") = dr("次数") + 1
            Else
                e.DataRow("次数") = 1
            End If
           
           
        End If
       
    Case "次数"
        If e.DataRow.IsNull("编号") Then
            e.DataRow("次数") = Nothing
        Else
            Dim bh As String = e.DataRow("编号")
           
            Dim pdr As DataRow = Nothing
            For Each dr As DataRow In e.DataTable.Select("编号 = '" & bh & "' and _Identify >= " & e.DataRow("_Identify"), "_Identify")
                If pdr IsNot Nothing Then
                    dr("次数") = pdr("次数") + 1
                End If
                pdr = dr
            Next
        End If
End Select

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/3/27 16:55:00 [显示全部帖子]

实例发上来测试。

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/3/27 17:04:00 [显示全部帖子]

以下是引用cyrollin在2018/3/27 17:03:00的发言:
可以私发给你吗? 有隐私信息图片点击可在新窗口打开查看

 

单独做一个可以测试的实例发上来测试即可。


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/3/27 18:33:00 [显示全部帖子]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目2.table


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/3/27 18:47:00 [显示全部帖子]

测试没问题,请认真测试。

 回到顶部
总数 13 1 2 下一页