Foxtable(狐表)用户栏目专家坐堂 → 网络环境下的编号的问题


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

主题:网络环境下的编号的问题

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


加好友 发短信
等级:六尾狐 帖子:1360 积分:9034 威望:0 精华:0 注册:2020/11/4 22:15:00
网络环境下的编号的问题  发帖心情 Post By: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多张,在这里写,是不是影响服务器,开机速度和性能?


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


加好友 发短信
等级:超级版主 帖子:110784 积分:563852 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By: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

 回到顶部
客人(27.154.*.*)
  3楼


  发帖心情 Post By:2024/7/25 10:35:00 [只看该作者]

http://foxtable.com/bbs/dispbbs.asp?boardid=2&Id=145239,看4楼实例

问题1;这个相对比省事,是否,具有删除回收?还是代码补写?
问题2:如果这个比较实现,建议,列入帮助,做强推荐,帮助和论坛里也很多关于编号,好象没有一个让大家比较认可,一直争议,每个新手,还有一些大伽也会咨询。


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


加好友 发短信
等级:六尾狐 帖子:1360 积分:9034 威望:0 精华:0 注册:2020/11/4 22:15:00
  发帖心情 Post By: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:")是专用语,还是自定义变量?

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


加好友 发短信
等级:超级版主 帖子:110784 积分:563852 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2024/7/25 10:39:00 [只看该作者]

1、没有回收功能。可以看看:http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=177677&skin=0

2、我反馈一下

 回到顶部
客人(27.154.*.*)
  6楼


  发帖心情 Post By:2024/7/25 11:28:00 [只看该作者]

msg.StartsWith(":f") AndAlso msg.EndsWith("f:")
 这句是什么意思?(":f")和With("f:")是专用语,还是自定义变量?

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


加好友 发短信
等级:超级版主 帖子:110784 积分:563852 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2024/7/25 12:02:00 [只看该作者]

自己定义的一种消息格式,自己知道这种格式的消息是要做什么的就行

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


加好友 发短信
等级:六尾狐 帖子:1360 积分:9034 威望:0 精华:0 注册:2020/11/4 22:15:00
  发帖心情 Post By:2024/7/25 14:34:00 [只看该作者]


图片点击可在新窗口打开查看此主题相关图片如下:qq66.png
图片点击可在新窗口打开查看

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


加好友 发短信
等级:超级版主 帖子:110784 积分:563852 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2024/7/25 14:46:00 [只看该作者]

1、maxvalue列记录每个表当前使用的最大编号值;后缀没用到,可以去掉;length是编号序列的长度;mark是日期的格式化字符串;markvalue就是最好一次去编号时按日期格式化的结果
比如当前出库表编号最大值为:CK202407250099。maxvalue就是99;length是【0099】的长度,就是4位;mark就是yyyyMMdd,按年月日生成编号,比如今天格式化后markvalue就是20240725;
2、服务端代码自动处理的
3、表名列不能去除。这个功能是可以针对多个表处理的。没有表名就不知道处理哪个表的编号了

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


加好友 发短信
等级:六尾狐 帖子:1360 积分:9034 威望:0 精华:0 注册:2020/11/4 22:15:00
  发帖心情 Post By: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编辑过]

 回到顶部
总数 16 1 2 下一页