以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 年月日+顺序号的个性化订单编号 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=14202) |
||||
-- 作者:小猪鑫鑫 -- 发布时间:2011/11/12 9:51:00 -- 年月日+顺序号的个性化订单编号 狐爸:我看了帮助里的3.13.4.4网络环境下的复杂编号,感觉上太复杂,如果我有很多张表有这种个性化编号的要求的话,那不是要为这些编号增加很多张表来储存编号与前缀列?我这里做了一个方案,功能方面能达到要求,即能按年月日做前缀,加顺序号来编号,我对帮助上的案例与我的都测试了一下,单机使用都没问题,但在网络条件下,如有人提前保存了相同的订单号时,两者都不能保存进出,最大的差别是当同步同前表时,帮助里的编号会将数据源中的编号更新出来,自已新增的编号也会改变编号的情况下保存进了数据源,而我新增的数据就被同步掉了,请狐爸帮我解决,我认为我的这个方案要简单一点,但还需要狐爸改进 说明:我的这个要先输入日期,自动弹出订单号,帮助里的是先弹出订单号,但不能不输日期,我想这点差别应该没问题吧
|
||||
-- 作者:小猪鑫鑫 -- 发布时间:2011/11/12 9:56:00 -- 我怎么上传不了文件呢 |
||||
-- 作者:小猪鑫鑫 -- 发布时间: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 -- 发布时间:2011/11/12 10:57:00 -- Dim cmd1 As New SQLCommand Dim cmd As New SQLCommand
这是我的 放在新增行事件中 |
||||
-- 作者:狐狸爸爸 -- 发布时间:2011/11/12 11:33:00 -- 其实帮助的方案最佳,即使有多个表要实现此类编号,也只需一个编号表的,在编号表中加上表名列,在修改编号代码,在条件判断中加上表名条件即可。 |
||||
-- 作者:blackzhu -- 发布时间:2011/11/12 12:13:00 -- 老大的帮助里面的编号用于网络是没话讲. |
||||
-- 作者:狐狸爸爸 -- 发布时间:2011/11/13 10:28:00 -- 以下是引用xmj09663在2011-11-12 10:57:00的发言:
Dim cmd1 As New SQLCommand Dim cmd As New SQLCommand
这是我的 放在新增行事件中
要获得记录数,只需Select count([_dentify]) From {表名} From 条件。
[此贴子已经被作者于2011-11-13 10:28:49编辑过]
|
||||
-- 作者:小猪鑫鑫 -- 发布时间:2011/11/13 10:49:00 -- 谢谢指导,又学到了一种方法 |
||||
-- 作者:狐狸爸爸 -- 发布时间:2011/11/13 11:29:00 -- 呵呵,把帮助的稍微改一些,就可以用于多个表了:
用帮助的方法好,大家自行琢磨出来的办法,在多用户环境下,有产生重复编号的可能性。 |