以文本方式查看主题
- Foxtable(狐表) (http://foxtable.net/bbs/index.asp)
-- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2)
---- 网络环境下的编号的问题 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=192825)
|
-- 作者:lin98
-- 发布时间:2024/7/25 9:35:00
-- 网络环境下的编号的问题
2、在服务端的AfterOpenProjet事件中编写代码: Dim dt As DataTable Dim cmd As New SQLCommand cmd.ConnectionName = "数据源名称" cmd.CommandText = "Selec-t Year(日期) As 年, Month(日期) As 月, Max(编号) as 编号 From {订单} Group By Year(日期), Month(日期)" dt = cmd.ExecuteReader flbhs.Clear() For Each dr As DataRow In dt.DataRows Dim qz As String = dr("年") & Format(dr("月"),"00") \'编号前缀,4位年,2位月 Dim bh As String = dr("编号") Dim id As Integer If bh.Length = 10 Then bh = bh.SubString(7) If Integer.TryParse(bh,id) Then flbhs.Add(qz, id) End If End If Next
问题:上面的代码,放服务端的AfterOpenProjet事件中编写代码,有100多张,在这里写,是不是影响服务器,开机速度和性能?
|
-- 作者:有点蓝
-- 发布时间:2024/7/25 9:42:00
--
这个是肯定的。考虑换种方式,如:http://foxtable.com/bbs/dispbbs.asp?boardid=2&Id=145239,看4楼实例
http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=159386
|
-- 作者:客人
-- 发布时间:2024/7/25 10:35:00
--
http://foxtable.com/bbs/dispbbs.asp?boardid=2&Id=145239,看4楼实例
问题1;这个相对比省事,是否,具有删除回收?还是代码补写? 问题2:如果这个比较实现,建议,列入帮助,做强推荐,帮助和论坛里也很多关于编号,好象没有一个让大家比较认可,一直争议,每个新手,还有一些大伽也会咨询。
|
-- 作者:lin98
-- 发布时间:2024/7/25 10:39:00
--
If msg.StartsWith(":f") AndAlso msg.EndsWith("f:") Then msg = msg.SubString(2, msg.Length - 4) e.ReturnValue = _BizCodeBuilder.GetNextCode(msg) \'将编号返回给客户端 End I
msg.StartsWith(":f") AndAlso msg.EndsWith("f:") 这句是什么意思?(":f")和With("f:")是专用语,还是自定义变量?
|
-- 作者:有点蓝
-- 发布时间:2024/7/25 10:39:00
--
1、没有回收功能。可以看看:http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=177677&skin=0
2、我反馈一下
|
-- 作者:客人
-- 发布时间:2024/7/25 11:28:00
--
msg.StartsWith(":f") AndAlso msg.EndsWith("f:") 这句是什么意思?(":f")和With("f:")是专用语,还是自定义变量?
|
-- 作者:有点蓝
-- 发布时间:2024/7/25 12:02:00
--
自己定义的一种消息格式,自己知道这种格式的消息是要做什么的就行
|
-- 作者:lin98
-- 发布时间:2024/7/25 14:34:00
--
此主题相关图片如下:qq66.png
|
-- 作者:有点蓝
-- 发布时间:2024/7/25 14:46:00
--
1、maxvalue列记录每个表当前使用的最大编号值;后缀没用到,可以去掉;length是编号序列的长度;mark是日期的格式化字符串;markvalue就是最好一次去编号时按日期格式化的结果比如当前出库表编号最大值为:CK202407250099。maxvalue就是99;length是【0099】的长度,就是4位;mark就是yyyyMMdd,按年月日生成编号,比如今天格式化后markvalue就是20240725; 2、服务端代码自动处理的 3、表名列不能去除。这个功能是可以针对多个表处理的。没有表名就不知道处理哪个表的编号了
|
-- 作者:lin98
-- 发布时间:2024/7/25 15:21:00
--
Dim rt As String = QQClient.SendWait(":f" & e.DataTable.Name & "f:") e.DataRow("编号") = rt
改为下面代码,失效? Dim rt As String = QQClient.SendWait(":f" & e.DataTable.Name & "f:") Select e.DataCol.Name Case "日期" If e.DataRow.IsNull("日期") Then e.DataRow("编号") = Nothing Else Dim dr As DataRow = DataTables("号表").Find("编号 is not null and 表名=\'订单\'", "编号") If dr IsNot Nothing Then e.DataRow("编号") = dr("编号") dr.Delete Else e.DataRow("编号") = rt End If End If
[此贴子已经被作者于2024/7/25 17:05:33编辑过]
|