Foxtable(狐表)用户栏目专家坐堂 → [求助]异步函数请教


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

主题:[求助]异步函数请教

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


加好友 发短信
等级:六尾狐 帖子:1353 积分:9868 威望:0 精华:0 注册:2015/6/30 8:46:00
[求助]异步函数请教  发帖心情 Post By:2020/8/11 11:17:00 [只看该作者]

Dim cn() As String = {"OA","ksg"}
Dim st As Date = Date.Now
'要测试耗时的代码
'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~`
Dim tab As WinForm.TabControl = e.Form.Controls("TabControl1")
Dim id As Integer = tab.TabPages.Count
For Each c As String In cn
    Dim lst As List(Of String) = Conne ctions(c).GetTableNames
    If Forms("数据加载提醒").Opened = False Then Forms("数据加载提醒").Open
    For i As Integer = 0 To  lst.Count - 1
        If i = 2 Then Exit Sub
        tab.TabPages.Add(c & lst(i), lst(i))
        Functions.AsyncExecute("MySaveExcel",c,lst(i),id + i) ‘异步函数出问题。
       ' Functions.Execute("MySaveExcel",c,lst(i),id + i)  '常规调用函数没有问题,

    Next
Next

If Forms("数据加载提醒").Opened = True Then Forms("数据加载提醒").Close

MessageBox.Show("数据备份完成!耗时: " & (Date.Now - st).TotalSeconds & "秒")
e.Form.Close

 

以下是内部函数!

Dim tab As WinForm.TabControl = Forms("管理调试").Controls("TabControl1")
Dim c As String = args(0)
Dim lstr As String = args(1)
Dim id As Integer = args(2)
Dim tbl As WinForm.Table
tbl = Forms("管理调试").CreateSQLTable(c & lstr,"sel ect * from {" & lstr & "} " ,c)
'tbl.Dock = 5
tab.Tabpages(id).AddControl(tbl)
Tables(Forms("管理调试").Name & "_" & tbl.Name).SaveExcel("D:" &  Format(Functions.Execute("返回服务器日期"),"yyyy_MM_d") & "\" & c & "\" & lstr & ".xls" ,lstr)

[此贴子已经被作者于2020/8/11 11:17:43编辑过]

 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


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

这种函数不能异步调用:http://www.foxtable.com/mobilehelp/topics/277.htm

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


加好友 发短信
等级:六尾狐 帖子:1353 积分:9868 威望:0 精华:0 注册:2015/6/30 8:46:00
  发帖心情 Post By:2020/8/11 14:21:00 [只看该作者]

老师看了一下,Excel报表方式可能用得上,但我不是用报表 ,应该怎么改。

Dim Book As New XLS.Book(ProjectPath & "Attachments\资料卡.xls")
Dim
fl As String = ProjectPath & "Reports\资料卡.xls"
book
.AddDataTa ble("员工","数据源名称","Sel ect * from {员工} where 姓名 = '王伟'")
Book
.Build()
Book
.Save(fl)
Dim
Proc As New Process
Proc
.File = fl
Proc
.Start()


 回到顶部
帅哥,在线噢!
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


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

这种方式导出数据:http://www.foxtable.com/webhelp/topics/1148.htm

把帮助中从table取数据改为从数据库取数据:http://www.foxtable.com/webhelp/topics/0696.htm

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


加好友 发短信
等级:六尾狐 帖子:1353 积分:9868 威望:0 精华:0 注册:2015/6/30 8:46:00
  发帖心情 Post By:2020/8/11 15:04:00 [只看该作者]

以下是引用有点蓝在2020/8/11 14:25:00的发言:
这种方式导出数据:http://www.foxtable.com/webhelp/topics/1148.htm

把帮助中从table取数据改为从数据库取数据:http://www.foxtable.com/webhelp/topics/0696.htm

 

这样逐行的生成,不是更慢吗?没有更好的方法了吗?

 


 回到顶部
帅哥,在线噢!
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


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

1楼的方式不要使用异步。或者设计模板导出

 回到顶部