以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  独占编辑  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=114125)

--  作者:ycwk
--  发布时间:2018/1/29 14:27:00
--  独占编辑
http://www.foxtable.com/webhelp/scr/3007.htm

是不是如果需要使用openQQ进行独占编辑的话,必须另外写一个服务器端的程序放在数据库服务器上运行?  (注:我现在通过客户端直连数据库)
[此贴子已经被作者于2018/1/29 14:27:58编辑过]

--  作者:有点甜
--  发布时间:2018/1/29 14:52:00
--  
是的,要写一个类似QQServer的程序放在服务器运行。你项目还要加上QQClient连接登陆服务器的代码。
--  作者:ycwk
--  发布时间:2018/1/29 15:48:00
--  
和之前的独占方式比有什么优势呢?
--  作者:有点甜
--  发布时间:2018/1/29 15:56:00
--  
以下是引用ycwk在2018/1/29 15:48:00的发言:
和之前的独占方式比有什么优势呢?

 

之前是把信息存放在数据库里面每次比较都去查找数据库,控制逻辑都在客户端完成;

 

现在把信息存放在服务器,由服务器判断返回信息,客户端相对代码减少而且代码基本不需要更改。

 

优势的话,就是不需要查找写入数据库、控制逻辑不需要写在客户端。


--  作者:ycwk
--  发布时间:2018/1/29 16:08:00
--  
我想通过openQQ协作编辑word文档,可以用这种方法实现对 .docx文档的独占编辑吗?   (把word文档存在表中的附件列)
[此贴子已经被作者于2018/1/29 16:15:57编辑过]

--  作者:有点甜
--  发布时间:2018/1/29 16:43:00
--  
以下是引用ycwk在2018/1/29 16:08:00的发言:
我想通过openQQ协作编辑word文档,可以用这种方法实现对 .docx文档的独占编辑吗?   (把word文档存在表中的附件列)
[此贴子已经被作者于2018/1/29 16:15:57编辑过]

 

可以。但只是做一个标记。当你打开word文档的时候(在foxtable里面操作打开),记录某某用户打开了xx文档。但是当其关闭文档的时候,程序是无法知道的,要做一个定时器循环检测某某文件是否已经关闭的,如测试代码

 

vars("p") = system.Diagnostics.Process.Start("d:\\test.doc")
msgbox("下面代码判断是否关闭")
try
    vars("p").id
    msgbox("还在打开")
catch ex As exception
    msgbox("xxx已经被关闭")
End try


--  作者:ycwk
--  发布时间:2018/1/29 17:16:00
--  
怎么写服务端代码最少?  客户端呢?  我只需要协作编辑啊,不需要QQ聊天的功能
--  作者:有点甜
--  发布时间:2018/1/29 17:30:00
--  
以下是引用ycwk在2018/1/29 17:16:00的发言:
怎么写服务端代码最少?  客户端呢?  我只需要协作编辑啊,不需要QQ聊天的功能

 

1、那你就不要用服务端了吧。

 

2、打开word的时候,把用户名写进表格里保存,关闭word的时候,把数据移除,即可。


--  作者:ycwk
--  发布时间:2018/1/29 17:38:00
--  
 还想请问一下,关闭word,  foxtable能感知到吗?  还是只能用上面提到的定时器的方法?  


如果文件是放在ftp服务器上   172.16.16.16   user   password     协作文档.docx       
检测附件列中的文档被打开和关闭的代码怎么写?(基于casestudy文件夹下的例子:  独占式编辑一)



[此贴子已经被作者于2018/1/29 17:46:23编辑过]

--  作者:有点甜
--  发布时间:2018/1/29 17:51:00
--  
以下是引用ycwk在2018/1/29 17:38:00的发言:
 还想请问一下,关闭word,  foxtable能感知到吗?  还是只能用上面提到的定时器的方法?

 

只能用定时的方法检测知道,比如

 

打开程序

 

vars("ls") = new Dictionary(of String, object)
vars("ls").add("文档1",system.Diagnostics.Process.Start("d:\\test.doc"))
vars("ls").add("文档2",system.Diagnostics.Process.Start("d:\\test.doc"))
vars("ls").add("文档3",system.Diagnostics.Process.Start("d:\\test.doc"))


 

检测是否关闭

 

try
    vars("ls")("文档3").ExitTime
    msgbox("还在打开")
catch ex As exception
    msgbox("xxx已经被关闭")
End try

[此贴子已经被作者于2018/1/29 17:51:26编辑过]