Foxtable(狐表)用户栏目专家坐堂 → 自动编号代码改写


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

主题:自动编号代码改写

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


加好友 发短信
等级:超级版主 帖子:109681 积分:558103 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/9/8 15:26:00 [显示全部帖子]

组织机构代码是一个列?还是一个固定的值?

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


加好友 发短信
等级:超级版主 帖子:109681 积分:558103 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/9/8 15:38:00 [显示全部帖子]

If e.DataCol.Name = "填表日期" Then
    If e.DataRow.IsNull("填表日期") Then
        e.DataRow("编号") = Nothing
    Else
        Dim d As Date = e.DataRow("填表日期")
        Dim y As Integer = d.Year
        Dim fd As Date = New Date(y,1,1)
        Dim bh As String = "xx组织机构代码" & Format(d,"yyyy") '生成编号的前6位,4位年,2位月.
        If e.DataRow("编号").StartsWith(bh) = False '如果编号的前6位不符
            Dim max As String
            Dim idx As Integer
            max = e.DataTable.Compute("Max(编号)","填表日期 >= #" & fd & "# And 填表日期 < #" & fd.addyears(1) & "# And [_Identify] <> " & e.DataRow("_Identify")) '取得该月的最大编号
            If max > "" Then '如果存在最大编号
                idx = CInt(max.Substring(max.length - 4)) + 1 '获得最大编号的后四位顺序号,并加1
            Else
                idx = 1 '否则顺序号等于1
            End If
            e.DataRow("编号") = bh & "-" & Format(idx,"0000")
        End If
    End If
End If

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


加好友 发短信
等级:超级版主 帖子:109681 积分:558103 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/9/8 15:55:00 [显示全部帖子]

参考:http://www.foxtable.com/webhelp/topics/2403.htm,看四、按日期和类别编号

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


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

不是按年编号的吗,【"填表日期 >= #" & fd & "# And 填表日期 < #" & fd.addyears(1) & "#】就是指在这一年的范围之内,比如是今年,条件就是【"填表日期 >= #2020-1-1# And 填表日期 < #2021-1-1#

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


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

取最大值的时候排除当前行的值

 回到顶部