以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 窗口表中的远程文件如何双击直接打开 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=87906) |
||||
-- 作者:天若千颖 -- 发布时间:2016/7/22 11:48:00 -- 窗口表中的远程文件如何双击直接打开 在一个窗口中,直接双击“文件名称及链接”这一列的内容,如果本地有相同的文件(且判断是否为最新,如果是),则直接打开,如果没有的话,下载FTP的文件打开。 也就是说,实现列属性为“文件”的这一列,在这一列中任意一行直接双击,实现鼠标右键中“打开文件(O)”的功能。 下面的语句无法判断本地是否有这个文件。 If e.Col.Name = "文件名称及链接" Then If e.Row.IsNull("文件名称及链接") = False Then Dim path As String = e.Col.DataCol.DefaultFolder If path = Nothing Then path = ProjectPath & "RemoteFiles/" End If path = path & e.Row("文件名称及链接") Dim proc As new Process proc.File = path proc.Start End If End If |
||||
-- 作者:天若千颖 -- 发布时间:2016/7/22 11:51:00 -- 因为这一列我平时是直接锁定的,不让普通用户编辑,所以普通用户在列锁定的情况下,都无法在这一列使用鼠标右键,无法打开文件,只能通过双击的方式打开远程的文件。 [此贴子已经被作者于2016/7/22 11:52:12编辑过]
|
||||
-- 作者:狐狸爸爸 -- 发布时间:2016/7/22 11:53:00 -- 判断文件是否存在: http://www.foxtable.com/webhelp/scr/0331.htm http://www.foxtable.com/webhelp/scr/0337.htm
|
||||
-- 作者:天若千颖 -- 发布时间:2016/7/22 11:54:00 -- 谢谢狐爸,不但要判断是否存在,还要比对是否是最新的,如果不是,从FTP下载更新,如果是的话,直接打开本地文件。 |
||||
-- 作者:狐狸爸爸 -- 发布时间:2016/7/22 11:59:00 -- 答案: http://www.foxtable.com/webhelp/scr/1410.htm
GetFileTime Dim ftp1 As New
FtpClient |
||||
-- 作者:天若千颖 -- 发布时间:2016/7/22 12:49:00 -- 没有命令能直接执行下图中“打开文件(O)”这个功能吗? 要限制普通用户更改这一列的内容,要么限制表格的编辑,如果限制编辑,下图这个菜单出不来,普通用户连文件都无法打开了;如果不限制编辑,能否不显示下图菜单中“插入文件”“插入目录”和“清楚内容”这三个选项? FileManager只能针对多文件的列。 [此贴子已经被作者于2016/7/22 12:50:09编辑过]
|
||||
-- 作者:大红袍 -- 发布时间:2016/7/22 13:28:00 -- StartEdit事件
If e.Col.Name = "xxxx" Then e.Cancel = True End If
如果要自己限制,可以自己做窗口实现
|
||||
-- 作者:天若千颖 -- 发布时间:2016/7/22 18:48:00 -- 谢谢红袍老师,一下就把问题解决了。 |
||||
-- 作者:天若千颖 -- 发布时间:2016/7/25 16:08:00 -- 红袍老师,我的这个表名叫做“项目资料表”,放置文件地址的列叫做“文件名及链接” 我在这个表的属性里面DoubleClick设置为(仅有这一段代码) If e.Col.Name = "文件名称及链接" Then If e.Row.IsNull("文件名称及链接") = False Then Dim c As Col = CurrentTable.Cols(CurrentTable.ColSel) Dim ftp As FTPClient = c.DataCol.FTPClient Dim path As String = ProjectPath & "RemoteFiles\\" & FileSys.GetName(CurrentTable.Current(c.Name)) ftp.Download(CurrentTable.Current(c.Name), path, True) Dim proc As new Process proc.File = path proc.Start e.Form.Close End If End If 怎么每次双击这一列的某一行的时候,打开了远程文件的同时,弹出如下提示: .NET Framework 版本:2.0.50727.5420 Foxtable 版本:2016.6.26.1 错误所在事件:项目资料表,DoubleClick 详细错误信息: 未将对象引用设置到对象的实例。 |
||||
-- 作者:天若千颖 -- 发布时间:2016/7/25 16:12:00 -- 有的时候没有弹出错误提示,但是整个窗口就看不见了。 |