Foxtable(狐表)用户栏目专家坐堂 → 关于关闭附件窗体问题


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

主题:关于关闭附件窗体问题

帅哥哟,离线,有人找我吗?
裴保民
  21楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1989 积分:12631 威望:0 精华:0 注册:2017/4/3 15:01:00
  发帖心情 Post By:2020/9/14 17:37:00 [只看该作者]

Dim fjzl As String = "充值凭证附件资料"
Dim ps As  System.Diagnostics.Process() = System.Diagnostics.Process.GetProcesses()  '终止execl和word进程
If Tables("充值凭证表.充值凭证附件数据表").Current Is Nothing Then
    Return
Else
    Dim dr As DataRow = Tables("充值凭证表.充值凭证附件数据表").Current.DataRow
    If ShowAppWindow(dr("文件名称"),1) = True Then
        Try
            For Each p As System.Diagnostics.Process In ps
                output.show(p.processName)
                If ("Excel" = p.ProcessName)
                    p.kill
                End If
                If ("WINWORD" = p.ProcessName)
                    p.kill
                End If
            Next
        Catch ex As Exception
            MessageBox.Show("请先关闭已经打开的附件,再关闭窗体!")
        End Try
        Return
    End If
End If
If FileSys.DirectoryExists( ProjectPath & fjzl) = True Then
    FileSys.DeleteDirectory(ProjectPath & fjzl,2,2) '则彻底删除之
End If

这段代码运行后,如果附件已经打开,怎么不执行删除文件夹动作呢?


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


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

Dim fjzl As String = "充值凭证附件资料"
Dim ps As  System.Diagnostics.Process() = System.Diagnostics.Process.GetProcesses()  '终止execl和word进程
If Tables("充值凭证表.充值凭证附件数据表").Current Is Nothing Then
    Return
Else
    Dim dr As DataRow = Tables("充值凭证表.充值凭证附件数据表").Current.DataRow
msgbox(dr("文件名称")) 文件标题名称是否这个
    If ShowAppWindow(dr("文件名称"),1) = True Then
msgbox(1) '有弹出?
        Try
            For Each p As System.Diagnostics.Process In ps
                output.show(p.processName)
                If ("Excel" = p.ProcessName)
msgbox(2) '有弹出?
                    p.kill
                End If
                If ("WINWORD" = p.ProcessName)
msgbox(3) '有弹出?
                    p.kill
                End If
            Next
        Catch ex As Exception
            MessageBox.Show("请先关闭已经打开的附件,再关闭窗体!")
        End Try
        Return ‘这里都退出了后面代码就不会执行,看您代码动不动就Return ,用的很爽哦
    End If
End If
If FileSys.DirectoryExists( ProjectPath & fjzl) = True Then
    FileSys.DeleteDirectory(ProjectPath & fjzl,2,2) '则彻底删除之
End If

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


加好友 发短信
等级:八尾狐 帖子:1989 积分:12631 威望:0 精华:0 注册:2017/4/3 15:01:00
  发帖心情 Post By:2020/9/14 20:50:00 [只看该作者]

蓝老师 文件名称对,1和2弹出了,3没弹出 3是终止word文档的

把不用 Return 还是会弹出错误提示的 上面代码不是已经把进程终止了吗?终止后再删除文件夹不应该再出问题了呀,怎么还是弹出提示框呢?
[此贴子已经被作者于2020/9/14 21:25:21编辑过]

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


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

到命令窗口测试看word的进程到底名称是什么
            For Each p As System.Diagnostics.Process In ps
                output.show(p.processName)
            Next

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


加好友 发短信
等级:八尾狐 帖子:1989 积分:12631 威望:0 精华:0 注册:2017/4/3 15:01:00
  发帖心情 Post By:2020/9/14 21:49:00 [只看该作者]

数据库中没有word文档,蓝老师和他没关系吧,关键是只要打开附件后,再执行下面代码就提示错误并且不执行删除动作
If FileSys.DirectoryExists( ProjectPath & fjzl) = True Then
    FileSys.DeleteDirectory(ProjectPath & fjzl,2,2) '则彻底删除之
End If
[此贴子已经被作者于2020/9/14 21:52:23编辑过]

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


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

Try
    If FileSys.DirectoryExists( ProjectPath & fjzl) = True Then
        FileSys.DeleteDirectory(ProjectPath & fjzl,1,2) '则彻底删除之
    End If
Catch ex As Exception
    MessageBox.Show("请先关闭已经打开的附件,再关闭窗体!")
End Try
[此贴子已经被作者于2020/9/14 22:07:15编辑过]

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


加好友 发短信
等级:八尾狐 帖子:1989 积分:12631 威望:0 精华:0 注册:2017/4/3 15:01:00
  发帖心情 Post By:2020/9/15 8:29:00 [只看该作者]

Dim fjzl As String = "充值凭证附件资料"
Dim ps As  System.Diagnostics.Process() = System.Diagnostics.Process.GetProcesses()  '终止execl和word进程
If Tables("充值凭证表.充值凭证附件数据表").Current Is Nothing Then
    Return
Else
    Dim dr As DataRow = Tables("充值凭证表.充值凭证附件数据表").Current.DataRow
    msgbox(dr("文件名称")) '文件标题名称是否这个
    If ShowAppWindow(dr("文件名称"),1) = True Then
        ‘’msgbox(1) '有弹出?     
        For Each p As System.Diagnostics.Process In ps
            output.show(p.processName)
            If ("Excel" = p.ProcessName)
               ’ msgbox(2) '有弹出?
                p.kill
            End If
            If ("WINWORD" = p.ProcessName)
               ’ msgbox(3) '有弹出?
                p.kill
            End If
        Next
        Try
            If FileSys.DirectoryExists( ProjectPath & fjzl) = True Then
                FileSys.DeleteDirectory(ProjectPath & fjzl,1,2) '则彻底删除之
            End If
        Catch ex As Exception
            MessageBox.Show("请先关闭已经打开的附件,再关闭窗体!")
        End Try
    End If
End If


图片点击可在新窗口打开查看此主题相关图片如下:截图00.jpg
图片点击可在新窗口打开查看

是这样吗?运行后删除动作不执行

已解决

[此贴子已经被作者于2020/9/15 9:07:59编辑过]

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


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

参数改回2
Dim fjzl As String = "充值凭证附件资料"
Dim ps As  System.Diagnostics.Process() = System.Diagnostics.Process.GetProcesses()  '终止execl和word进程
If Tables("充值凭证表.充值凭证附件数据表").Current Is Nothing Then
    Return
Else
    Dim dr As DataRow = Tables("充值凭证表.充值凭证附件数据表").Current.DataRow
    msgbox(dr("文件名称")) '文件标题名称是否这个
    If ShowAppWindow(dr("文件名称"),1) = True Then
        ''msgbox(1) '有弹出?
        For Each p As System.Diagnostics.Process In ps
            output.show(p.processName)
            If ("Excel" = p.ProcessName)
                ' msgbox(2) '有弹出?
                p.kill
            End If
            If ("WINWORD" = p.ProcessName)
                ' msgbox(3) '有弹出?
                p.kill
            End If
        Next
        
    End If
    Try
        If FileSys.DirectoryExists( ProjectPath & fjzl) = True Then
            FileSys.DeleteDirectory(ProjectPath & fjzl,2,2) '则彻底删除之
        End If
    Catch ex As Exception
        MessageBox.Show("请先关闭已经打开的附件,再关闭窗体!")
    End Try
End If

 回到顶部
总数 28 上一页 1 2 3