以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 报表导出到pdf报错问题 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=144031) |
||||
-- 作者:Dansty -- 发布时间:2019/12/9 11:05:00 -- 报表导出到pdf报错问题 ![]() ![]() 为什么在导出到excel后,打开excel文件不关闭,再次导出会弹出这个提示:请先关闭之,如第一个截图 但是同样的操作,是pdf文件就会报这个错,却没有提示呢? 我尝试Dim path As String ="c:\\reports\\" & reportname & ".pdf" 判断在已打开的状态下关闭文件,但是没有效果 ![]() ![]() If ShowAppWindow(reportname & ".pdf",1) = True Then
ShowAppWindow(reportname & ".pdf",5)
End If
|
||||
-- 作者:有点蓝 -- 发布时间:2019/12/9 11:09:00 -- 直接使用代码kill掉pdf进程 Dim ps As System.Diagnostics.Process() = System.Diagnostics.Process.GetProcesses() For Each p As System.Diagnostics.Process In ps output.show(p.processName) If ("pdf阅读器的进程名称" = p.ProcessName) p.kill End If Next 完整的导出代码发上来看看
|
||||
-- 作者:Dansty -- 发布时间:2019/12/9 11:17:00 -- 但是如果杀死进程,如果有其他的文件用pdf打开,不也同时被关闭了吗
|
||||
-- 作者:有点蓝 -- 发布时间:2019/12/9 11:29:00 -- 使用的什么pdf阅读器?现在的很多pdf阅读器大部分都是在一个程序里使用不同页签打开不同的pdf,Foxtable没有办法控制只关闭别人程序的一个页签的。 如果是一个pdf一个独立的进程的,看看有没有什么不同的地方 Dim ps As System.Diagnostics.Process() = System.Diagnostics.Process.GetProcesses() For Each p As System.Diagnostics.Process In ps \'If ("pdf阅读器的进程名称" = p.ProcessName) \'p.kill \'End If Next |
||||
-- 作者:Dansty -- 发布时间:2019/12/9 14:35:00 -- 这个问题很奇怪,同一台电脑,我用的都是同一个pdf阅读器,外网是没有问题的,在文件是打开状态下再导出文件并重新打开是没问题的,但是切换到内网就会报这个错 |
||||
-- 作者:有点蓝 -- 发布时间:2019/12/9 14:52:00 -- 我使用迅读PDF,测试打开状态下再导出文件也是没有问题的。可能你安装的PDF阅读器的原因吧。或者是电脑系统设置的原因,另外杀毒软件,加密软件,系统权限可能都有关系 |