Foxtable(狐表)用户栏目专家坐堂 → 年月日+顺序号的个性化订单编号


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

主题:年月日+顺序号的个性化订单编号

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


加好友 发短信
等级:四尾狐 帖子:832 积分:5867 威望:0 精华:6 注册:2011/5/27 11:41:00
年月日+顺序号的个性化订单编号  发帖心情 Post By:2011/11/12 9:51:00 [只看该作者]

狐爸:我看了帮助里的3.13.4.4网络环境下的复杂编号,感觉上太复杂,如果我有很多张表有这种个性化编号的要求的话,那不是要为这些编号增加很多张表来储存编号与前缀列?我这里做了一个方案,功能方面能达到要求,即能按年月日做前缀,加顺序号来编号,我对帮助上的案例与我的都测试了一下,单机使用都没问题,但在网络条件下,如有人提前保存了相同的订单号时,两者都不能保存进出,最大的差别是当同步同前表时,帮助里的编号会将数据源中的编号更新出来,自已新增的编号也会改变编号的情况下保存进了数据源,而我新增的数据就被同步掉了,请狐爸帮我解决,我认为我的这个方案要简单一点,但还需要狐爸改进
说明:我的这个要先输入日期,自动弹出订单号,帮助里的是先弹出订单号,但不能不输日期,我想这点差别应该没问题吧

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


加好友 发短信
等级:四尾狐 帖子:832 积分:5867 威望:0 精华:6 注册:2011/5/27 11:41:00
  发帖心情 Post By:2011/11/12 9:56:00 [只看该作者]

我怎么上传不了文件呢

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


加好友 发短信
等级:四尾狐 帖子:832 积分:5867 威望:0 精华:6 注册:2011/5/27 11:41:00
  发帖心情 Post By:2011/11/12 10:02:00 [只看该作者]

新建一个文件,里面有日期,订单号,订单号是主健,在datacolchanged中加入以下代码

If e.DataCol.name ="日期" Then
Dim y As String =e.DataRow("日期").year
Dim m As String =format(e.DataRow("日期").month,"00")
Dim d As String =format(e.DataRow("日期").day,"00")
Dim rq As Date =e.DataRow("日期")
Dim drs As List(of DataRow)
drs=e.DataTable.Select("日期 ='" & rq & "'","_identify")
For i As Integer =0 To drs.count-1
For Each dr As DataRow In drs
i =i+1
If i <10 Then
dr("订单号") =y & m & d & 0 & i
Else
dr("订单号") = y & m & d & i
End If
Next
Next
End If

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


加好友 发短信
等级:一尾狐 帖子:408 积分:2921 威望:0 精华:4 注册:2010/8/26 20:57:00
  发帖心情 Post By:2011/11/12 10:57:00 [只看该作者]

Dim cmd1 As New SQLCommand
Dim dt1 As Date
cmd1.C
cmd1.CommandText = "Select GetDate()"
dt1 = cmd1.ExecuteScalar()
e.DataRow("制单日期") = dt1.Date

Dim cmd As New SQLCommand
Dim dt As DataTable
cmd.C
cmd.CommandText = "SELECT * From {采购申请单主明细} where 制单日期 = '" & dt1.Date & "'"
dt = cmd.ExecuteReader()
Dim x As Integer = dt.DataRows.Count + 1
e.DataRow("单据编号") = "请-" & Format(dt1.Date,"yyMMdd") & "-" & Format (x,"00")

 

 

这是我的 放在新增行事件中


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


加好友 发短信
等级:管理员 帖子:47448 积分:251048 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/11/12 11:33:00 [只看该作者]

其实帮助的方案最佳,即使有多个表要实现此类编号,也只需一个编号表的,在编号表中加上表名列,在修改编号代码,在条件判断中加上表名条件即可。

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


加好友 发短信 一级勋章
等级:狐仙 帖子:9875 积分:57584 威望:0 精华:15 注册:2008/9/1 9:45:00
  发帖心情 Post By:2011/11/12 12:13:00 [只看该作者]

老大的帮助里面的编号用于网络是没话讲.

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


加好友 发短信
等级:管理员 帖子:47448 积分:251048 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/11/13 10:28:00 [只看该作者]

以下是引用xmj09663在2011-11-12 10:57:00的发言:

Dim cmd1 As New SQLCommand
Dim dt1 As Date
cmd1.C
cmd1.CommandText = "Select GetDate()"
dt1 = cmd1.ExecuteScalar()
e.DataRow("制单日期") = dt1.Date

Dim cmd As New SQLCommand
Dim dt As DataTable
cmd.C
cmd.CommandText = "SELECT * From {采购申请单主明细} where 制单日期 = '" & dt1.Date & "'"
dt = cmd.ExecuteReader()
Dim x As Integer = dt.DataRows.Count + 1
e.DataRow("单据编号") = "请-" & Format(dt1.Date,"yyMMdd") & "-" & Format (x,"00")

 

 

这是我的 放在新增行事件中

 

要获得记录数,只需Select count([_dentify]) From {表名} From 条件。

 

 

[此贴子已经被作者于2011-11-13 10:28:49编辑过]

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


加好友 发短信
等级:四尾狐 帖子:832 积分:5867 威望:0 精华:6 注册:2011/5/27 11:41:00
  发帖心情 Post By:2011/11/13 10:49:00 [只看该作者]

谢谢指导,又学到了一种方法

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


加好友 发短信
等级:管理员 帖子:47448 积分:251048 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/11/13 11:29:00 [只看该作者]

呵呵,把帮助的稍微改一些,就可以用于多个表了:

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:网络环境下的复杂编号.rar

用帮助的方法好,大家自行琢磨出来的办法,在多用户环境下,有产生重复编号的可能性。


 回到顶部