Foxtable(狐表)用户栏目专家坐堂 → 求助,关于同步异步函数怎么用


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

主题:求助,关于同步异步函数怎么用

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


加好友 发短信
等级:六尾狐 帖子:1476 积分:10491 威望:0 精华:0 注册:2018/10/16 11:42:00
求助,关于同步异步函数怎么用  发帖心情 Post By:2019/8/9 14:13:00 [只看该作者]

求助,关于同步异步函数怎么用
我试着做了下上面的例子。http://www.foxtable.com/mobilehelp/index.htm?page=3269.htm
定义一个名为AddTotal的函数,其代码为:

Total = Total + Args(0)
TCount
  = TCount - 1
If
Tcount = 0 Then
    MessageBox.Show("计算完成,结果为:" & Total)

End
If

Total 这个变量没办法放到全局代码里面

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


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

首先我们在全局代码中定义一个Public变量:

Public Total As Integer

关于Public变量,参考:Public变量


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


加好友 发短信
等级:六尾狐 帖子:1476 积分:10491 威望:0 精华:0 注册:2018/10/16 11:42:00
  发帖心情 Post By:2019/8/9 15:36:00 [只看该作者]

前面懂了
想问问
Functions.BeginSyncExecute("AddTotal",Sum
这个是什么意思?


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


加好友 发短信
等级:六尾狐 帖子:1476 积分:10491 威望:0 精华:0 注册:2018/10/16 11:42:00
  发帖心情 Post By:2019/8/9 15:43:00 [只看该作者]

我想要异步函数按照顺序执行。之前我只用了异步函数一直漏掉一些

我想要的流程是这样的
判断是否有该订单  '(同步函数)
是执行打印  ’(改为异步函数)


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


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

参考:http://www.foxtable.com/mobilehelp/topics/3273.htm

同步调用AddTotal函数

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


加好友 发短信
等级:六尾狐 帖子:1476 积分:10491 威望:0 精华:0 注册:2018/10/16 11:42:00
  发帖心情 Post By:2019/8/9 15:49:00 [只看该作者]

'''
Dim bh As WinForm.TextBox = Forms("打印").Controls("TextBox1")
Dim dr As DataRow = DataTables("订单").SQLFind("[系统单号] = '"& bh.value &"'")
If dr IsNot Nothing Then
    Dim drc As DataRow = DataTables("操作记录").Find("[系统单号] = '"& bh.value &"'")
    If drc Is Nothing Then
        Dim doc As New PrintDoc '定义一个报表
        doc.PageSetting.Width = 100 '纸张宽度为100毫米
        doc.PageSetting.Height = 180 '纸张高度为120毫米
        Dim rt As New prt.RenderTable() '定义一个表格对象
        Doc.PageSetting.LeftMargin = 0 '设置左边距
        Doc.PageSetting.RightMargin = 0 '设置右边距
        Doc.PageSetting.TopMargin = 0 '设置上边距
        Doc.PageSetting.BottomMargin = 0 '设置下边距
  这一节是打印代码
        rt.Cells(7,2).RenderObject = rg1  '将单元格内容设置为图片对象rm
        doc.Body.Children.Add(rt) '将表格对象加入到报表中
        Doc.Print   () '预览报表

        Audio.Play(SpecialFolder.DesktopDirectory & "\系统\扫描.wav")
        Dim d As Row = Tables("操作记录").AddNew()
        d("系统单号")= bh.value
        d("操作类型")="打单"
        d("操作人")=_Name
        d("操作时间")=Date.Now
        d.Save
    Else
        Audio.Play(SpecialFolder.DesktopDirectory & "\系统\错误.wav")
    MessageBox.Show("系统已存在!")
    End If
Else
    Audio.Play(SpecialFolder.DesktopDirectory & "\系统\错误.wav")
    MessageBox.Show("系统无此单记录,请核对!")
   
End If



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


加好友 发短信
等级:六尾狐 帖子:1476 积分:10491 威望:0 精华:0 注册:2018/10/16 11:42:00
  发帖心情 Post By:2019/8/9 15:50:00 [只看该作者]

上面这段代码里面中间那段红色代码我希望用异步函数指定,但是不能有漏,并且按照顺序打印出来。能行吗?

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


加好友 发短信
等级:六尾狐 帖子:1476 积分:10491 威望:0 精华:0 注册:2018/10/16 11:42:00
  发帖心情 Post By:2019/8/9 15:53:00 [只看该作者]

还是没思绪

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


加好友 发短信
等级:超级版主 帖子:109489 积分:557107 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/8/9 16:11:00 [只看该作者]

把红色代码放入一个内部函数

调用
……
Dim drc As DataRow = DataTables("操作记录").Find("[系统单号] = '"& bh.value &"'")
    If drc Is Nothing Then
Functions.AsyncExecute("函数名称")



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


加好友 发短信
等级:六尾狐 帖子:1476 积分:10491 威望:0 精华:0 注册:2018/10/16 11:42:00
  发帖心情 Post By:2019/8/9 16:25:00 [只看该作者]

.NET Framework 版本:4.0.30319.42000
Foxtable 版本:2019.8.3.1
错误所在事件:
详细错误信息:
连接未关闭。 连接的当前状态为正在连接。
这是怎么回事?

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