以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- WordReport批量导出单个文件,程序卡死 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=137163) |
-- 作者:xluoping -- 发布时间:2019/6/29 11:10:00 -- WordReport批量导出单个文件,程序卡死 代码如下: 导出不到30个文件,程序就卡死了,不能继续导出,请问问题出在哪里?请指教 For Each dr As Row In Tables("MSDS").Rows \'逐行生成报表 Dim tm As String = ProjectPath & "Attachments\\MSDS.docx" \'指定模板文件 Dim st As String = dr("ICSC编号") & "-" & dr("名称") & "-" & "国际化学品安全卡MSDS.docx" st = st.Replace(" ","") dr("文件名") = st If FileSys.FileExists(ProjectPath & "Reports\\"& st) = false then Dim fl As String = ProjectPath & "Reports\\"& st \'指定目标文件 Dim wrt As New WordReport(Tables("MSDS"),tm,fl) \'定义一个WordReport wrt.BuildOne(dr) \'wrt.Replace("^13^13","^13") wrt.Quit() \'退出 \' wrt.Show() \'显示报表 End If Next DataTables("MSDS").Save()
|
-- 作者:有点蓝 -- 发布时间:2019/6/29 11:35:00 -- 程序运行过程中肯定会属于假死状态。到Reports目录看看是不是有文件一直在输出? 我测试输出100个文档都可以的。
|
-- 作者:xluoping -- 发布时间:2019/6/29 11:43:00 -- 昨晚上放了一个晚上就30个文件。怎么避免这种“假死”的情况 今天又试了,repors 里没有持续输出文件,只有30多个
[此贴子已经被作者于2019/6/29 11:44:01编辑过]
|
-- 作者:有点蓝 -- 发布时间:2019/6/29 11:52:00 -- 试试异步输出:http://www.foxtable.com/mobilehelp/scr/3269.htm 电脑会不会自动休眠?
|
-- 作者:xluoping -- 发布时间:2019/6/29 14:52:00 -- 异步执行,但是发生了错误,以下代码是否正确? 全局变量: 函数:msds Dim tm As String = ProjectPath & "Attachments\\MSDS.docx" \'指定模板文件 Dim st As String = tdr("ICSC编号") & "-" & tdr("名称") & "-" & "国际化学品安全卡MSDS.docx" st = st.Replace(" ","") tdr("文件名") = st If FileSys.FileExists(ProjectPath & "Reports\\"& st) = false then Dim fl As String = ProjectPath & "Reports\\"& st \'指定目标文件 Dim wrt As New WordReport(Tables("MSDS"),tm,fl) \'定义一个WordReport wrt.BuildOne(tdr) wrt.Replace("^13","^p") wrt.Quit() \'退出 End If 执行: For Each tdr As Row In Tables("MSDS").Rows \'逐行生成报表 Functions.AsyncExecute("msds") Next DataTables("MSDS").Save() |
-- 作者:有点蓝 -- 发布时间:2019/6/29 15:56:00 -- 试试 函数:msds dim t as table = args(0) dim r as row = args(1) dim tm as string = args(2) dim fl as string = args(3) Dim wrt As New WordReport(t,tm,fl) \'定义一个WordReport wrt.BuildOne(r) wrt.Replace("^13","^p") wrt.Quit() \'退出 执行: Dim tm As String = ProjectPath & "Attachments\\MSDS.docx" \'指定模板文件 For Each dr As Row In Tables("MSDS").Rows \'逐行生成报表 Dim st As String = dr("ICSC编号") & "-" & dr("名称") & "-" & "国际化学品安全卡MSDS.docx" st = st.Replace(" ","") dr("文件名") = st Dim fl As String = ProjectPath & "Reports\\"& st \'指定目标文件 If FileSys.FileExists(fl) = false then Functions.AsyncExecute("msds",Tables("MSDS"),dr,tm,fl) End If Next DataTables("MSDS").Save() |