以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- [求助]自定义函数还是不知如何使用,请老师看下 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=149185) |
-- 作者:huangfanzi -- 发布时间:2020/4/25 22:40:00 -- [求助]自定义函数还是不知如何使用,请老师看下 服务端的ReceivedMessage If e.Message = ":czbh:" Then Functions.Execute("重置编号") e.ReturnValue = "重置编号成功!" End If 服务端的自定义函数“重置编号” MessageBox.Show("我重置编号了!") Return Nothing 我现在在客户端输入以下代码: If QQClient.Ready Then Dim msg As String = QQClient.SendWait(":czbh:",5) If msg = "" Then Popmessage("未获服务器响应!","提示",PopIconEnum.Error) Else Popmessage( msg,"提示",PopIconEnum.Infomation) End If End If 在实际使用中,MessageBox.Show("我重置编号了!") 会用其他代码替代,现在执行的结果是,服务端是弹出了 “我重置编号了!”,可是客户端确返回 "未获服务器响应!",肯定有自定义函数有地方写错了,估计还是个低级错误,可我就是不会啊,请老师看下,谢谢! |
-- 作者:有点蓝 -- 发布时间:2020/4/26 10:24:00 -- 不要使用MessageBox.Show测试,提示框弹出后,如果不及时关闭,后面的代码是不会执行的,也就是服务器被阻塞不能返回响应,客户端就会超时 |
-- 作者:huangfanzi -- 发布时间:2020/4/26 10:28:00 -- 哪上面的写法 对吗? 函数中要替代 MessageBox.Show 代码如下: Dim dt5 As DataTable Dim cmd5 As New SQLCommand cmd5.C cmd5.CommandText = "S elect 类型,Year(日期) As 年, Month(日期) As 月,Max(批号) As 批号 From {出入库台账} Group By 类型,Year(日期), Month(日期)" dt5 = cmd5.ExecuteReader gxpmph.Clear() For Each dr As DataRow In dt5.DataRows Dim qz As String If dr("类型") = "入库" Then qz = "RK"& dr("年") & Format(dr("月"),"00") ElseIf dr("类型") = "出库" Then qz = "CK"& dr("年") & Format(dr("月"),"00") End If Dim bh As String = dr("批号") Dim id As Integer If bh.Length = 13 Then bh = bh.SubString(9) If Integer.TryParse(bh,id) Then gxpmph.Add(qz, id) End If End If Next |
-- 作者:有点蓝 -- 发布时间:2020/4/26 11:42:00 -- 看不出有问题。到命令窗口直接执行这个函数有没有问题?这个函数能不能在5秒内执行完毕? |
-- 作者:huangfanzi -- 发布时间:2020/4/26 12:41:00 -- 没问题了,是我想多了,去掉MessageBox就正常了 再请教下,像这次函数的使用,需要在后面加 Return Nothing 吗?
|
-- 作者:有点蓝 -- 发布时间:2020/4/26 13:47:00 -- 如果不需要函数的返回值,不需要添加Return |