以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 关于关闭附件窗体问题 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=154389) |
-- 作者:裴保民 -- 发布时间:2020/9/13 21:11:00 -- 关于关闭附件窗体问题 在 BeforeClose 事件中添加了如下代码:运行后当附件有打开时会出错,怎么避免这个错误呢? Dim fjzl As String = "充值凭证附件资料" If FileSys.DirectoryExists( ProjectPath & fjzl) = True Then FileSys.DeleteDirectory(ProjectPath & fjzl,2,2) \'则彻底删除之 End If
[此贴子已经被作者于2020/9/13 21:44:05编辑过]
|
-- 作者:有点蓝 -- 发布时间:2020/9/13 21:48:00 -- 如果都是execl文件,直接杀掉进程 Dim ps As System.Diagnostics.Process() = System.Diagnostics.Process.GetProcesses() For Each p As System.Diagnostics.Process In ps output.show(p.processName) If ("Excel" = p.ProcessName) msgbox(p.MainWindowTitle) \'p.kill End If Next 如果杂七杂八什么类型文件都有,就不好办了 |
-- 作者:裴保民 -- 发布时间:2020/9/13 21:54:00 -- 也有txt文件 |
-- 作者:有点蓝 -- 发布时间:2020/9/13 21:59:00 -- txt文件一般不会有影响 |
-- 作者:裴保民 -- 发布时间:2020/9/13 22:01:00 -- 这是附件的文件类型 "*.doc;*.docx;*.xlsx;*.xls;*.txt" |
-- 作者:有点蓝 -- 发布时间:2020/9/13 22:01:00 -- word Dim ps As System.Diagnostics.Process() = System.Diagnostics.Process.GetProcesses() For Each p As System.Diagnostics.Process In ps output.show(p.processName) If ("WINWORD" = p.ProcessName) msgbox(p.MainWindowTitle) \' p.kill End If Next |
-- 作者:裴保民 -- 发布时间:2020/9/13 22:14:00 -- Dim llkqsh As WinForm.TextBox = e.Form.Controls("llkqshTextBox") Dim llkzzh As WinForm.TextBox = e.Form.Controls("llkzzhTextBox") Dim ccrq As WinForm.DateTimePicker = e.Form.Controls("czrqDateTimePicker") Dim fjzl As String = "充值凭证附件资料" Dim ps As System.Diagnostics.Process() = System.Diagnostics.Process.GetProcesses() For Each p As System.Diagnostics.Process In ps output.show(p.processName) If ("Excel" = p.ProcessName) p.kill End If If FileSys.DirectoryExists( ProjectPath & fjzl) = True Then FileSys.DeleteDirectory(ProjectPath & fjzl,2,2) \'则彻底删除之 End If Next If jinzhihangjianyidong=False Then Dim Result As DialogResult Result = MessageBox.Show("窗体处于编辑状态,是否放弃编辑退出?", "提示" ,MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question) If Result = DialogResult.No Then jinzhihangjianyidong=True DataTables("充值凭证表").RejectChanges DataTables("充值凭证表").Save Tables("充值凭证表").Filter ="" ElseIf result = DialogResult.Yes Then If llkqsh.text = Nothing OrElse llkqsh.Text.Length < 3 OrElse llkzzh.text = Nothing OrElse llkzzh.Text.Length < 3 OrElse ccrq.Value= Nothing Then MessageBox.Show("输入的数据有误,保存数据失败!", "提示") jinzhihangjianyidong=True Tables("充值凭证表").Current.Reject DataTables("充值凭证表").Save Tables("充值凭证表").Filter ="" Else jinzhihangjianyidong=True DataTables("充值凭证表").Save Tables("充值凭证表").Filter ="" End If ElseIf Result = DialogResult.Cancel Then jinzhihangjianyidong=False e.cancel = True Return End If End If 蓝老师麻烦看看哪有问题,运行后还是错误 |
-- 作者:有点蓝 -- 发布时间:2020/9/13 22:40:00 -- Dim fjzl As String = "充值凭证附件资料" Dim ps As System.Diagnostics.Process() = System.Diagnostics.Process.GetProcesses() For Each p As System.Diagnostics.Process In ps output.show(p.processName) If ("Excel" = p.ProcessName) p.kill End If Next If FileSys.DirectoryExists( ProjectPath & fjzl) = True Then FileSys.DeleteDirectory(ProjectPath & fjzl,2,2) \'则彻底删除之 End If If jinzhihangjianyidong=False Then Dim Result As DialogResult
|
-- 作者:裴保民 -- 发布时间:2020/9/13 23:01:00 -- 只要附件打开,关闭窗体是总是弹出提示框,并且也不删除文件夹,怎么设置不弹出呢? [此贴子已经被作者于2020/9/13 23:05:34编辑过]
|
-- 作者:有点蓝 -- 发布时间:2020/9/13 23:16:00 -- output.show(p.processName) \'检查进程名称,不同系统可能execl显示的名称不一样的。 或者使用try处理一下,提醒用户手工关闭文件:http://www.foxtable.com/webhelp/topics/2070.htm
|