Foxtable(狐表)用户栏目专家坐堂 → 晚于日期的问题


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

主题:晚于日期的问题

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


加好友 发短信
等级:小狐 帖子:305 积分:3856 威望:0 精华:0 注册:2016/4/30 10:41:00
晚于日期的问题  发帖心情 Post By:2024/5/14 21:12:00 [只看该作者]

If e.DataCol.Name = "接单日期" Then '如果是折扣列的内容发生变化。
Dim Tel As Date = " & 4/30/2024 & "
    If e.NewValue > "Tel" Then '如果新值大于0.15。
        e.Cancel = True '取消变动。
    End If
End If
这段代码提示tel无法转成date,代码错在哪里

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


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

If e.DataCol.Name = "接单日期" Then 
Dim Tel As Date = "#4/30/2024#"
    If e.NewValue > Tel Then
        e.Cancel = True '取消变动。
    End If
End If

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


加好友 发短信
等级:小狐 帖子:305 积分:3856 威望:0 精华:0 注册:2016/4/30 10:41:00
  发帖心情 Post By:2024/5/14 21:32:00 [只看该作者]

追问一个问题,订单号是按日期形成的编号,在删除一个号后,好象该号还在,再增加订单时就跳过了该号又增大了一号,如何避免?

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


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

编号使用什么代码生成的?

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


加好友 发短信
等级:小狐 帖子:305 积分:3856 威望:0 精华:0 注册:2016/4/30 10:41:00
  发帖心情 Post By:2024/5/15 5:21:00 [只看该作者]

用的是帮助文件下的复杂环境编号的代码

服务端的设计

1、在服务端的全局代码中编写代码:

Public flbhs As new Dictionary(of String,Integer)

2、在服务端的AfterOpenProjet事件中编写代码:

Dim dt As DataTable
Dim
cmd As New SQLCommand
cmd
.ConnectionName = "数据源名称"
cmd
.CommandText = "Select Year(日期) As , Month(日期) As , Max(编号) as 编号 Fro m {订单} 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

上述代码在启动项目后,用SQL语句提取现有数据的每月最大编号,将其整数部分存储在字典flbhs中。

3、在服务端的OpenQQ服务端事件ReceivedMessage中编写代码:

Dim msg As String = e.Message
If
msg.StartsWith(":p") AndAlso msg.EndsWith("p:") Then
    msg = msg.SubString(2, msg.Length - 4)
    If flbhs.ContainsKey(msg) Then
'
如果存在这个月的编号
        flbhs(msg) = flbhs(msg) + 1
'
将该月最大编号加1
   
Else
        flbhs.Add(msg,1) '如果是这个月的首次编号,则编号等于1
    End If
    e.ReturnValue = flbhs(msg)
'将编号返回给客户端

End
If

客户端的设计

选择客户端项目的订单表,在其DataColChanged事件中加上代码:

If e.DataCol.Name = "日期" Then
    If e.DataRow.IsNull(
"
日期") Then
        e.DataRow(
"
编号") = Nothing
    Else
        If QQClient.Ready = False Then
            PopMessage(
"QQClient
未启动,无法生成编号!","提示",PopIconEnum.Infomation,5)
        Else
            Dim bh As String = Format(e.DataRow(
"
日期"),"yyyyMM")
            Dim rt As String =  QQClient.SendWait(":p" & bh & "p:")
            Dim id As Integer
            If rt > "" Then
                If  Integer.TryParse(rt,id)  Then
                    e.DataRow(
"
编号") = bh & "-" & Format(id,"000")
                Else
                    PopMessage(
"
服务器返回错误信息:" & rt,"提示",PopIconEnum.Infomation,5)
                End If
            Else
                PopMessage(
"
服务器无响应,无法生成编号!","提示",PopIconEnum.Infomation,5)
            End If
        End If
    End
If

End
If

[此贴子已经被作者于2024/5/15 7:59:48编辑过]

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


加好友 发短信
等级:超级版主 帖子:107147 积分:544978 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2024/5/15 8:33:00 [只看该作者]

这种用法就是这种效果,因为是服务端控制的,客户端删除了编号服务端是不知道的,所以只能不断+1。再说了多客户端并发的情况下也没有必要保持连号。

要保持连号的话逻辑就要复杂几十倍了

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


加好友 发短信
等级:狐精 帖子:3094 积分:20656 威望:0 精华:0 注册:2016/3/28 16:57:00
  发帖心情 Post By:2024/5/15 8:43:00 [只看该作者]

要连号,要做一个回收表,或是不要删除数据,只能作废。数据本就不能随便删除的。

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


加好友 发短信
等级:小狐 帖子:305 积分:3856 威望:0 精华:0 注册:2016/4/30 10:41:00
  发帖心情 Post By:2024/5/15 8:45:00 [只看该作者]

我在五月份已经录了十几个订单,但现在订单号有点乱,我把五月的订单全部删除了,想再重新录入,不知订单号是否从001开始?如果不是,如何才能让五月份从001号开始

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


加好友 发短信
等级:超级版主 帖子:107147 积分:544978 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2024/5/15 8:49:00 [只看该作者]

1、把所有订单号删除,保存。
2、然后重启服务端程序
3、最后客户端重新生成编号

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


加好友 发短信
等级:小狐 帖子:305 积分:3856 威望:0 精华:0 注册:2016/4/30 10:41:00
  发帖心情 Post By:2024/5/15 8:53:00 [只看该作者]

好的,谢谢各位的指导


 回到顶部