Foxtable(狐表)用户栏目专家坐堂 → [求助]生成订单号


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

主题:[求助]生成订单号

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


加好友 发短信
等级:一尾狐 帖子:422 积分:3430 威望:0 精华:0 注册:2015/5/20 8:44:00
[求助]生成订单号  发帖心情 Post By:2018/2/5 16:05:00 [只看该作者]

Dim b As New GroupTableBuilder("采购订单统计",DataTables("采购订单"))
b.Groups.AddDef("零件号") '添加客户列用于分组
b.Groups.AddDef("供应商") '添加客户列用于分组
b.Groups.AddDef("需求日期") '添加客户列用于分组
b.Totals.AddDef("需求数量") '添加数量列用于统计

首先导入需求,然后使用以上代码合并统计,点击一个按钮
希望针对不同的供应商和需求日期生成采购订单号:供应商相同且日期相同,订单号相同;供应商相同,日期不同,订单号不同;供应商不同,订单号不同;
格式为日期-000-1(当日累加)
需要怎么设置代码



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


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

 

For Each dr As DataRow In DataTables("采购订单统计").Select("")
    Dim d As Date = dr("需求日期")
    Dim bh As String = dr("供应商") & "-" & Format(d,"yyyyMMdd") & "-" '生成编号的前缀
    Dim max As String
    Dim idx As Integer
    Dim flt As String
    flt = "供应商 = '"& dr("供应商") & "' And 需求日期 >= #" & d & "# And 需求日期 < #" & d.AddDays(1) & "# And [_Identify] <> " & dr("_Identify")
    max = dr.DataTable.Compute("Max(单据编号)",flt)
    If max > "" Then '如果存在最大单据编号
        idx = CInt(max.Substring(bh.length,4)) + 1 '获得最大单据编号的后四位顺序号,并加1
    Else
        idx = 1 '否则顺序号等于1
    End If
    dr("单据编号") = bh & Format(idx,"0000")
Next


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


加好友 发短信
等级:一尾狐 帖子:422 积分:3430 威望:0 精华:0 注册:2015/5/20 8:44:00
  发帖心情 Post By:2018/2/5 17:51:00 [只看该作者]

b.Groups.AddDef("需求日期") 
老师,请教一下这个怎么定义为日期时间类型


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


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

这样?

 

b.Groups.AddDef("需求日期",DateGroupEnum.None,"日期")


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


加好友 发短信
等级:一尾狐 帖子:422 积分:3430 威望:0 精华:0 注册:2015/5/20 8:44:00
  发帖心情 Post By:2018/2/6 9:10:00 [只看该作者]

谢谢老师,再麻烦帮忙看一下关于单号的
出现的结果是:日期相同且供应商相同的直接累加1,希望日期相同且供应商相同时单号是一致的

For Each dr As DataRow In DataTables("采购明细").Select("")
    Dim d As Date = dr("到货时间")
    Dim bh As String = Format(d,"yyyyMMdd") & "-" '生成编号的前缀
    Dim max As String
    Dim idx As Integer
    Dim flt As String
    flt = "供应商 = '"& dr("供应商") & "' And 到货时间 >= #" & d & "# And 到货时间 < #" & d.AddDays(1) & "# And [_Identify] <> " & dr("_Identify")
    max = dr.DataTable.Compute("Max(采购订单号)",flt)
    If max > "" Then '如果存在最大单据编号
        idx = CInt(max.Substring(bh.length,4)) + 1 '获得最大单据编号的后四位顺序号,并加1
    Else
        idx = 1 '否则顺序号等于1
    End If
    dr("采购订单号") = bh & Format(idx,"0000")
Next

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


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

For Each dr As DataRow In DataTables("采购明细").Select("")
    Dim d As Date = dr("到货时间")
    Dim bh As String = Format(d,"yyyyMMdd") & "-" '生成编号的前缀
    Dim max As String
    Dim idx As Integer
    Dim flt As String
    flt = "供应商 = '"& dr("供应商") & "' And 到货时间 >= #" & d & "# And 到货时间 < #" & d.AddDays(1) & "# And [_Identify] <> " & dr("_Identify")
    max = dr.DataTable.Compute("Max(采购订单号)",flt)
    If max > "" Then '如果存在最大单据编号
        idx = CInt(max.Substring(bh.length,4))
    Else
        flt = "到货时间 >= #" & d & "# And 到货时间 < #" & d.AddDays(1) & "# And [_Identify] <> " & dr("_Identify")
        max = dr.DataTable.Compute("Max(采购订单号)",flt)
        if max > "" then
            idx = CInt(max.Substring(bh.length,4)) + 1 '获得最大单据编号的后四位顺序号,并加1
        else
            idx = 1 '否则顺序号等于1
        end if
    End If
    dr("采购订单号") = bh & Format(idx,"0000")
Next


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


加好友 发短信
等级:一尾狐 帖子:422 积分:3430 威望:0 精华:0 注册:2015/5/20 8:44:00
  发帖心情 Post By:2018/2/6 9:39:00 [只看该作者]

谢谢老师

 回到顶部