Rss & SiteMap

Foxtable(狐表) http://www.foxtable.com

新一代数据库软件,完美融合Access、Foxpro、Excel、vb.net之优势,人人都能掌握的快速软件开发工具!
共9 条记录, 每页显示 10 条, 页签: [1]
[浏览完整版]

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

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

 

 

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

5楼
狐狸爸爸 发表于:2011/11/12 11:33:00
其实帮助的方案最佳,即使有多个表要实现此类编号,也只需一个编号表的,在编号表中加上表名列,在修改编号代码,在条件判断中加上表名条件即可。
6楼
blackzhu 发表于:2011/11/12 12:13:00
老大的帮助里面的编号用于网络是没话讲.
7楼
狐狸爸爸 发表于: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楼
小猪鑫鑫 发表于:2011/11/13 10:49:00
谢谢指导,又学到了一种方法
9楼
狐狸爸爸 发表于:2011/11/13 11:29:00

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

 

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

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

共9 条记录, 每页显示 10 条, 页签: [1]

Copyright © 2000 - 2018 foxtable.com Tel: 4000-810-820 粤ICP备11091905号

Powered By Dvbbs Version 8.3.0
Processed in .04688 s, 3 queries.