保存之前怎么避免保存冲突?

原石化玉 2007-09-14 02:28:59
怎么在保存之前判断一下是否会发生保存冲突,如果会就放弃保存并通知用户?
BS
...全文
110 点赞 收藏 8
写回复
8 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
timlq 2007-10-04
添加一个域进行程序控制,设置内容为当前进行编辑时此文档是否为编辑状态。同时结合LastModified。
回复
原石化玉 2007-09-28
toby跟我想的一样。:)
但是很奇怪的在Notes R6上,db.getDocumentByUNID(UNID)返回的文档也是前台文档。我记得以前R5的时候就是这样区分前后台的啊。现在怎么才能取到服务器文档呢?
另外currdoc.LastModified不能用,它表示的是在前台转为编辑状态的时间,理论上应该打开时读取文档的LastModified作为当前文档的LastModified
回复
tobyzhou 2007-09-26
用LastModified属性试试?
可以获取当前文档currdoc的最后修改时间.
同样,可以利用当前文档的UNID获取服务器上的文档serverdoc(set serverdoc = db.GetDocumentByUNID(UNID))
也可以获取到服务器上文档的最后修改时间.
if currdoc.LastModified <> serverdoc.LastModified then
msgbox "文档在您打开期间已被别人修改过,请重新打开一次."
'其他需要处理的事项.
end if
回复
原石化玉 2007-09-24
加锁容易解锁难啊
回复
klyy 2007-09-21
你可以在表单中设置一个隐藏状态域,用程序控制:对文档进行编辑时首先判断这个域的值是否处于编辑状态,如果是则不允许进行编辑,否则进入编辑同时将状态域的值改为正在编辑,编辑结束退出时将此域的值改未编辑。相当于给文档加一个锁。
回复
E_arm 2007-09-17
哦,这样啊,那就只能期待高手指点拉,
我做的是C/S结构的,入口只有一个,所以可能比较容易控制,也许能实现。
要是入口比较多,确实是个难题阿。
回复
原石化玉 2007-09-14
问题是文档可能会被各种途径编辑,包括CS/BS/代理,可以是LotusScript/JavaScript/公式等等。因此想控制入口是不可能的,除非有文档级的事件,可惜没有。所以我想能否在保存之前先试探一下?如果保存后也能探察一下结果并且可以回滚就更好了。
回复
E_arm 2007-09-14
我也想问这个问题,
我设想了一下,可不可以在打开文档的时候就不让两个人同时打开,
那就不存在上述问题了吧,不知道可不可行,希望高手指点。。
回复
发动态
发帖子
消息协作
创建于2007-08-27

520

社区成员

企业开发 Exchange Server
申请成为版主
社区公告
暂无公告