以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 生成报表,保存为pdf后,删除word报告失败,提示文件已占用 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=180229) |
-- 作者:foxtablefanse -- 发布时间:2022/10/9 15:17:00 -- 生成报表,保存为pdf后,删除word报告失败,提示文件已占用 If tb.Current IsNot Nothing Then Dim cr As Row=tb.Current Dim tm As String = ProjectPath & "Attachments\\起重机检验报告模板.doc" \'指定模板文件 Dim fw As String = fld & "\\" & cr("InwordNo") & "检测报告.doc" \'指定目标文件,含牌照号或自编号 Dim fp As String = fld & "\\" & cr("InwordNo") & "检测报告.pdf" \'指定目标文件,含牌照号或自编号 If FileSys.FileExists(fp) Then Dim Result As DialogResult Result = Messagebox.Show("文件已经存在!是否替换","提示",MessageBoxButtons.YesNo,MessageBoxIcon.Question) If Result = DialogResult.Yes Then FileSys.DeleteFile(fp,2,2) \'则彻底删除之 Else Return 0 End If End If Dim wrt As New WordReport(tb,tm,fw) \'定义一个WordReport wrt.BuildOne(cr) wrt.SaveToPDF(fp) \'保存为PDF文件 wrt.Quit \'这个执行后,后台还有microsoft word 进程,导致下面的删除出错 If FileSys.FileExists(fw) Then FileSys.DeleteFile(fw,2,2) \'则彻底删除之 End If \'wrt.Show() \'显示报表 Dim Proc As New Process \'打开PDF文件 Proc.File = fp Proc.Start() End If |
-- 作者:有点蓝 -- 发布时间:2022/10/9 15:35:00 -- 等几秒再删除 wrt.Quit Threading.Thread.Sleep(3000) If FileSys.FileExists(fw) Then
|