Foxtable(狐表)用户栏目专家坐堂 → 编号问题


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

主题:编号问题

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


加好友 发短信
等级:三尾狐 帖子:672 积分:7885 威望:0 精华:0 注册:2016/6/11 11:10:00
编号问题  发帖心情 Post By:2019/5/29 20:08:00 [只看该作者]

表A结构及数据如下:

单号                    公司名称               公司代号        
2019-001             上海**公司             QT
2019-002             上海**公司              QT  
2019-001             深圳**公司             PI
2019-002             深圳**公司             PI


说明:一、单号可以重复,相同公司,其单号顺序增加。
         二、如:首次录入“上海**公司”   单号就生成:2019-001【生成的规律为:今年中,首次录入一个公司则单号为:2019-001,即录入的年份加上“-000”,,同年第二次录入则为:2019-002;如果明年(2020)第一次录入则为:2020-001,以此类推】;

DataColChanged:

If e.DataCol.Name = "公司名称" Then 
    Dim bh As String = Format(Date.Today(), "yyyy")
    Dim max As String
    Dim idx As Integer
    max =e.DataTable.Compute("Max(单号)","公司名称 = #" & e.DataRow("公司名称") & "#") '取得该天的最大编号
    If max > "" Then '如果存在最大编号
        idx = CInt(max.Substring(5,3)) + 1 '获得最大编号的后三位顺序号,并加1
    Else
        idx = 1 '否则顺序号等于1
    End If
    e.DataRow("单号") = bh & "-" & Format(idx,"000")
End If
这个代码提示错误,不知道正确代码如何写?

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/5/29 21:04:00 [只看该作者]

max =e.DataTable.Compute("Max(单号)","公司名称 = #" & e.DataRow("公司名称") & "#") '取得该天的最大编号

 

改成

 

max =e.DataTable.Compute("Max(单号)","公司名称 = '" & e.DataRow("公司名称") & "'") '取得该天的最大编号


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


加好友 发短信
等级:三尾狐 帖子:672 积分:7885 威望:0 精华:0 注册:2016/6/11 11:10:00
  发帖心情 Post By:2019/5/30 7:41:00 [只看该作者]

有点甜老师   按照你的提示   修改之后  达不到我的要求

体现为:某公司在今年(2019)最后一张单号为:2019-556,明年(2020)的第一张(同一个公司)会变成2020-557,我的思路是,明年该公司的第一张单号为:2020-001,

[此贴子已经被作者于2019/5/30 7:45:38编辑过]

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/5/30 9:34:00 [只看该作者]

 

max =e.DataTable.Compute("Max(单号)","公司名称 = '" & e.DataRow("公司名称") & "' and 单号 like '" & bh & "%'") '取得该天的最大编号

 


 回到顶部