Foxtable(狐表)用户栏目专家坐堂 → 独占编辑


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

主题:独占编辑

帅哥哟,离线,有人找我吗?
ycwk
  11楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1218 积分:8451 威望:0 精华:0 注册:2016/2/2 21:52:00
  发帖心情 Post By:2018/1/30 10:42:00 [显示全部帖子]

 感觉不能用下面的代码打开文档,因为文件放在ftp上面,狐表的文件管理器是把ftp上的文件缓存到本地后在本地打开,我写的代码肯定没有办法做到的,所以如果我把路径指向FTP ,则文件只能下载文件但不能自动打开;如果指向本地,本地还没有下载之前又没有,还请指教怎么办?
vars("ls") = new Dictionary(of String, object)
vars("ls").add("xxx",system.Diagnostics.Process.Start("D:\foxtable\Development\CaseStudy\RemoteFiles\182004.txt"))

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


加好友 发短信
等级:六尾狐 帖子:1218 积分:8451 威望:0 精华:0 注册:2016/2/2 21:52:00
  发帖心情 Post By:2018/1/30 11:23:00 [显示全部帖子]

问题是我的文件不在本地啊,在ftp上面,d:\test.doc   这个路径不行啊。 直接换成ftp的路径,会出现下载后无法打开文件的提示。

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


加好友 发短信
等级:六尾狐 帖子:1218 积分:8451 威望:0 精华:0 注册:2016/2/2 21:52:00
  发帖心情 Post By:2018/1/30 11:43:00 [显示全部帖子]

遇到一个怪事,百思不得其解

Dim ftp1 As new ftpclient
ftp1.host="172.16.5.89"
ftp1.Account = "ftpAdmin"
ftp1.password = "Admin123"
Dim str_FileName As String =e.FileName
msgbox(str_FileName)             弹出结果是//182004.txt
str_FileName.trimstart("//")  
msgbox(str_FileName)                怪事啊,弹出的结果仍然是 //182004.txt ,去不掉前面的//            (附件列的名字为   //182004.txt)



[此贴子已经被作者于2018/1/30 12:20:55编辑过]

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


加好友 发短信
等级:六尾狐 帖子:1218 积分:8451 威望:0 精华:0 注册:2016/2/2 21:52:00
  发帖心情 Post By:2018/1/30 12:24:00 [显示全部帖子]

遇到一个怪事,百思不得其解

Dim ftp1 As new ftpclient
ftp1.host="172.16.5.89"
ftp1.Account = "ftpAdmin"
ftp1.password = "Admin123"
Dim str_FileName As String =e.FileName
msgbox(str_FileName)             弹出结果是//182004.txt
str_FileName.trimstart("//")  
msgbox(str_FileName)                怪事啊,弹出的结果仍然是 //182004.txt ,去不掉前面的//            (附件列的名字为   //182004.txt)

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


加好友 发短信
等级:六尾狐 帖子:1218 积分:8451 威望:0 精华:0 注册:2016/2/2 21:52:00
  发帖心情 Post By:2018/1/30 12:32:00 [显示全部帖子]

脑袋糊涂了,不好意思

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


加好友 发短信
等级:六尾狐 帖子:1218 积分:8451 威望:0 精华:0 注册:2016/2/2 21:52:00
  发帖心情 Post By:2018/1/30 15:08:00 [显示全部帖子]

现在基本可以正确识别打开,但是有一个问题,就是在某行附件还没有打开的时候,也识别成已打开,但是关闭后,可以正确识别已关闭,原因是?


Dim str_FileName As String =e.FileName
'msgbox(str_FileName)
'msgbox(str_FileName.LastIndexOf("182004.txt"))   弹出2
str_FileName=str_FileName.TrimStart("//")
'msgbox(str_FileName)


Dim ftp1 As new ftpclient
ftp1.host="172.16.5.89"
ftp1.Account = "ftpAdmin"
ftp1.password = "Admin123"
Dim str_path="D:\foxtable\Development\CaseStudy\RemoteFiles\" & str_FileName
msgbox(str_path)
'If ftp1.Download("\123.docx",str_path) = True Then
If ftp1.Download(str_FileName,str_path) = True Then
    Messagebox.show("下载完成!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
Else
    Messagebox.show("下载失败!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
End If


If e.DataCol.Name = "附件" Then
    'Dim str_path As String = e.DataRow("附件")
     msgbox(str_path)   
    Vars("ls").add(e.DataRow("附件") ,system.Diagnostics.Process.Start(str_path))
       
    e.Cancel = True '取消系统默认的打开文件操作,因为前面已经编码打开了
End If


定时器:
try    
    'vars("ls")("文档1").ExitTime
    vars("ls")(CurrentTable.Current("附件")).ExitTime
    msgbox(CurrentTable.Current("附件") & "已经关闭")
    'msgbox(CurrentTable.Current("附件")) & "已经关闭")
                      ' 此处要加入把文件上传至ftp的代码,以免文件修改后丢失
catch ex As exception
    msgbox("已经打开")
End try

[此贴子已经被作者于2018/1/30 15:10:33编辑过]

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


加好友 发短信
等级:六尾狐 帖子:1218 积分:8451 威望:0 精华:0 注册:2016/2/2 21:52:00
  发帖心情 Post By:2018/1/30 17:28:00 [显示全部帖子]

测试成功了,这三句话是啥意思?
    If vars("ls").ContainsKey(e.DataRow("附件")) Then
        Vars("ls")(e.DataRow("附件")) = system.Diagnostics.Process.Start(str_path)
    Else
        Vars("ls").add(e.DataRow("附件"),system.Diagnostics.Process.Start(str_path))

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


加好友 发短信
等级:六尾狐 帖子:1218 积分:8451 威望:0 精华:0 注册:2016/2/2 21:52:00
  发帖心情 Post By:2018/1/30 17:55:00 [显示全部帖子]

还有一个问题,防止多个人打开同一个文件,如下写有问题,打开第一遍可以,打开第二遍就不行了。

msgbox(11)
Dim str_FileName As String =e.FileName
str_FileName=str_FileName.TrimStart("//")

Dim str_path="\\172.16.5.89\pm文件\test\" & str_FileName


msgbox(22)

If e.DataRow("编辑者") = User.Name Then '如果编辑者是当前用户
    Return
End If
msgbox(33)
Dim cmd As New SQLCommand
Dim exp As String  = "编辑者 Is Null And [_Identify] = " & e.DataRow("_Identify")
cmd.CommandText = "U pdate {员工} Set 编辑者 = '" & User.Name & "' Where " & exp
msgbox(44)

If cmd.ExecuteNonQuery = 1 Then   '如果在数据库中字段成功写入编辑者
    e.DataRow("编辑者") = User.Name     '在显示的表中也改一下

msgbox(55)

'以下为打开附件列中的附件
  If e.DataCol.Name = "附件" Then    '如果鼠标操作的是附件列
      If vars("ls").ContainsKey(e.DataRow("附件")) Then
          Vars("ls")(e.DataRow("附件")) = system.Diagnostics.Process.Start(str_path)
      Else
          Vars("ls").add(e.DataRow("附件"),system.Diagnostics.Process.Start(str_path))
      End If   
      msgbox(1) 
          e.Cancel = True '取消系统默认的打开文件操作,因为前面已经编码打开了       '成功也要取消打开文件,下面的失败也要取消,因为已经用代码打开了,不再需要文件管理器自动打开
  End If
msgbox(66)


Else
    cmd.CommandText = "S elect 编辑者 From {员工} Where [_Identify] = " & e.DataRow("_Identify")
    Dim nm As String = cmd.ExecuteScalar
    If nm > "" Then
        MessageBox.show(nm & "正在编辑此行!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
    Else
        MessageBox.show("此行可能已经被删除,无法编辑!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
    End If
msgbox(77)
    e.Cancel = True '取消编辑
End If

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


加好友 发短信
等级:六尾狐 帖子:1218 积分:8451 威望:0 精华:0 注册:2016/2/2 21:52:00
  发帖心情 Post By:2018/1/31 11:10:00 [显示全部帖子]

搞定了,现在有个问题,如果是独占式编辑,那么附件列  所存放的文件名,只能让管理员来修改,如何控制这点?  因为点击元素格后弹出的是文件管理器菜单,所有人均可操作,怎么办?
[此贴子已经被作者于2018/1/31 11:11:16编辑过]

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


加好友 发短信
等级:六尾狐 帖子:1218 积分:8451 威望:0 精华:0 注册:2016/2/2 21:52:00
  发帖心情 Post By:2018/1/31 17:19:00 [显示全部帖子]

这个项目表里没有“编辑者” 这个字段,但是很多代码都涉及到这个字段,请问表里的这个字段在哪里?
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:15.rar


 回到顶部
总数 38 上一页 1 2 3 4 下一页