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


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

主题:网络环境下的编号

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


加好友 发短信
等级:二尾狐 帖子:500 积分:5409 威望:0 精华:0 注册:2009/2/5 13:09:00
网络环境下的编号  发帖心情 Post By:2018/11/28 17:50:00 [只看该作者]

 

用OpenQQ实现网络环境下的编号

 

 

服务端的AfterOpenProjet事件中编写代码

Dim qz As String = dr("录入人") & "-"  & dr("") & Format(dr(""),"00") '编号前缀,4位录入人,4位年,2位月。。。
服务端的事件,是4位。

 

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

Select e.DataCol.Name
    Case "录入日期","录入人"
        If e.DataRow.IsNull("录入日期") OrElse e.DataRow.IsNull("录入人") Then
            e.DataRow("派单id") = Nothing
            'msgbox(18)
        Else
            If QQClient.Ready = False Then
                PopMessage("QQClient未启动,无法生成编号!","提示",PopIconEnum.Infomation,5)
            Else
                Dim bh As String = e.DataRow("录入人") & "-" &  Format(e.DataRow("录入日期"),"yyyyMM")
                Dim rt As String =  QQClient.SendWait(":g" & bh & "g:")
                Dim id As Integer
                If rt > "" Then
                    If  Integer.TryParse(rt,id)  Then
                        e.DataRow("派单id") = bh & "-" & Format(id,"0000")
                        msgbox("新增了派单")
                    Else
                        PopMessage("服务器返回错误信息:" & rt,"提示",PopIconEnum.Infomation,5)
                    End If
                Else
                    PopMessage("服务器无响应,无法生成编号!","提示",PopIconEnum.Infomation,5)
                End If
            End If
        End If
End Select

 

 

 

4位录入人,4位年,2位月。。。

但录入人有可能是3个字,或2个字。

 

怎么改呢?

 


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/11/28 18:13:00 [只看该作者]

    If bh.Length = 16 Then
        bh = bh.SubString(12)

 

改成


    bh = bh.SubString(qz.length)


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


加好友 发短信
等级:二尾狐 帖子:500 积分:5409 威望:0 精华:0 注册:2009/2/5 13:09:00
  发帖心情 Post By:2018/11/29 14:50:00 [只看该作者]


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

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


加好友 发短信
等级:二尾狐 帖子:500 积分:5409 威望:0 精华:0 注册:2009/2/5 13:09:00
  发帖心情 Post By:2018/11/29 14:53:00 [只看该作者]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:新建文本文档 (2).txt

改后的代码

 

[此贴子已经被作者于2018/11/29 14:53:09编辑过]

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


加好友 发短信
等级:二尾狐 帖子:500 积分:5409 威望:0 精华:0 注册:2009/2/5 13:09:00
  发帖心情 Post By:2018/11/29 14:54:00 [只看该作者]

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

Dim msg As String = e.Message
If
msg.StartsWith(":g") AndAlso msg.EndsWith("g:") 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

 

这里还需要改吗?


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


加好友 发短信
等级:二尾狐 帖子:500 积分:5409 威望:0 精华:0 注册:2009/2/5 13:09:00
  发帖心情 Post By:2018/11/29 15:58:00 [只看该作者]

求助

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/11/29 16:09:00 [只看该作者]

For Each dr As DataRow In dt.DataRows
    Dim qz As String = dr("录入人") & "-"  & dr("年") & Format(dr("月"),"00") '编号前缀,4位录入人,4位年,2位月
    Dim bh As String =  dr("派单id")
    Dim id As Integer   
    If bh.Length >= qz.length Then
        bh = bh.SubString(qz.length)
        If Integer.TryParse(bh,id) Then
            flbhs.Add(qz, id)
        End If
    End If
Next


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


加好友 发短信
等级:二尾狐 帖子:500 积分:5409 威望:0 精华:0 注册:2009/2/5 13:09:00
  发帖心情 Post By:2018/11/29 17:00:00 [只看该作者]

 Dim qz As String = dr("录入人") & "-"  & dr("年") & Format(dr("月"),"00") '编号前缀,4位录入人,4位年,2位月

这个只有年月。

 

 

 

 

Dim bh As String = e.DataRow("录入人") & "-" &  Format(e.DataRow("录入日期"),"yyyyMMddHHmmss")

 我想把录入日期格式改为:yyyyMMddHHmmss   呢?

感谢您的回复!

 

怎么改呢?


 

[此贴子已经被作者于2018/11/29 17:22:06编辑过]

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/11/29 17:34:00 [只看该作者]

Forms("QQServer").Open()
Dim dt As DataTable
Dim cmd As New SQLCommand
cmd.ConnectionName = "server"
cmd.CommandText = "Select 录入人,录入日期, Max(派单id) as 派单id From {派工} Group By 录入人,录入日期"
dt = cmd.ExecuteReader
flbhs.Clear()
For Each dr As DataRow In dt.DataRows
    Dim qz As String = dr("录入人") & "-"  & Format(dr("录入日期"),"yyyyMMddHHmmss")
    Dim bh As String =  dr("派单id")
    Dim id As Integer   
    If bh.Length >= qz.length Then
        bh = bh.SubString(qz.length)
        If Integer.TryParse(bh,id) Then
            flbhs.Add(qz, id)
        End If
    End If
Next


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


加好友 发短信
等级:二尾狐 帖子:500 积分:5409 威望:0 精华:0 注册:2009/2/5 13:09:00
  发帖心情 Post By:2018/11/29 17:48:00 [只看该作者]

Dim msg As String = e.Message
If msg.StartsWith(":g") AndAlso msg.EndsWith("g:") 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

 

老师:那这段代码还需要改吗?


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