打开文件的代码如下:
Dim cmd As New SQLCommand
cmd.C
'cmd.CommandText = "S elect 编辑者 From {文件协作表} Where [_Identify] = " & e.DataRow("_Identify")
cmd.CommandText = "S elect 编辑者 From {文件协作表} Where [_Identify] = " & CurrentTable.Current("_Identify")
Dim nm As String = cmd.ExecuteScalar
If nm>"" And CurrentTable.Current("编辑者") = User.Name Then '如果编辑者不为空 且 编辑者是当前用户,则退出此事件
e.Cancel=True
Return
Else If nm > "" And CurrentTable.Current("编辑者")<>User.Name Then '如果查询的编辑者字段不为空,且编辑者字段不是当前用户
MessageBox.show(nm & "正在编辑此行,你不能同时编辑!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
' e.Cancel=True '禁止文件管理器打开附件
Else If nm = "" And CurrentTable.Current.DataRow.RowState<> DataRowState.Added '如果等于当前编辑者的记录没有查询到 且 当前行不是新增行,则把当前编辑者插入进去
Dim exp As String = "编辑者 Is Null And [_Identify] = " & CurrentTable.Current("_Identify")
cmd.C
cmd.CommandText = "U pdate {文件协作表} Set 编辑者 = '" & User.Name & "' Where " & exp
If cmd.ExecuteNonQuery = 1 Then '如果在数据库中字段成功写入编辑者
CurrentTable.Current("编辑者") = User.Name '在显示的表中也改一下
Dim str_path=ProjectPath & CurrentTable.Current("附件")
'msgbox(str_path)
If FileSys.FileExists(str_path) Then '如果本地文件已经存在
FileSys.DeleteFile(str_path) '则删除之
End If
Network.DownloadFile("ftp://administrator:Admin****@172.16.5.5/各表附件/文件协作表/" & CurrentTable.Current("附件"),str_path )
Dim Proc As New Process '定义一个新的Process
Proc.File = str_path '指定要打开的文件
proc.WaitForClose = True '等到关闭进程才能进行后续操作
Proc.Start() '打开文件
End If
End If
Forms("win_打开文件协作窗口").Close '点击按钮后关闭容纳这个按钮的窗口,防止老是显示在界面上,体验不差
[此贴子已经被作者于2018/3/23 16:35:39编辑过]