以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  报表导出到pdf报错问题  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=144031)

--  作者:Dansty
--  发布时间:2019/12/9 11:05:00
--  报表导出到pdf报错问题

图片点击可在新窗口打开查看此主题相关图片如下:qq图片20191209110116.png
图片点击可在新窗口打开查看
为什么在导出到excel后,打开excel文件不关闭,再次导出会弹出这个提示:请先关闭之,如第一个截图
但是同样的操作,是pdf文件就会报这个错,却没有提示呢?
我尝试Dim path As String ="c:\\reports\\" & reportname & ".pdf"  判断在已打开的状态下关闭文件,但是没有效果
图片点击可在新窗口打开查看此主题相关图片如下:qq图片20191209110108.png
图片点击可在新窗口打开查看
        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打开,不也同时被关闭了吗
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:导出到pdf.txt


--  作者:有点蓝
--  发布时间: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
    output.show(p.processName & "," & p.MainWindowTitle)
    \'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阅读器的原因吧。或者是电脑系统设置的原因,另外杀毒软件,加密软件,系统权限可能都有关系