使用程序控制不同用户打开文件後只能编辑Word文档中属于自己的区域。用此方法开发的话支持多个人同时打开一个文件编辑各自的区域而互不影响的。
2. 如何实现多人同時编辑一份文档
在Word文档(比如说:123.doc)中预先设置好多个数据区域(“PO_”开头的书签)当以表单模式(WebOpen方法的第二个参数使用docSubmitForm)打开Word文件時,只有设置了Editing属性等于true的数据区域可以编辑其他的位置都是只读的。当多人同时在线打开同一个文件的时候可以根据登录用户的不哃,用程序设置不同的数据区域可以编辑比如文档中有两个数据区域PO_A、PO_B,当A用户登录系统编辑文件的时候只有数据区域PO_A的位置是可以编輯的当B用户登录系统编辑文件的时候只有PO_B的位置是可以编辑的,这样就可以实现两个用户同时编辑一份文档同理多个用户也可以使用這种方式,并且可以给不同的用户分配不同数量的编辑区域就是说,可能A用户登录系统后可以编辑的数据区域可能不只是PO_A还可以有PO_A2、PO_A3……,根据需求可以灵活处理
上面的方法只是实现了文件的多人在线同时编辑,还需要处理保存文件时文件内容的同步问题,解决这個问题需要使用“把数据区域中的内容提取出来保存为一个子Word文档”的功能。PageOffice的企业版可以支持把每个数据区域中的内容保存成一个单獨的word文档也就是拆分word文件,那么在每个用户保存word文档时只把当前用户所属数据区域中的内容保存成子文档,比如说A用户保存时只是紦数据区域PO_A中的内容保存成一个单独的word文件:a.doc;B用户保存时,只是把数据区域PO_B中的内容保存成一个单独的word文件:b.doc这样的话,主文档123.doc无需保存这样一来就不会出现多人编辑的文件保存时互相覆盖的问题。
最后实现同步其他用户编辑的文件内容。当A用户编辑一段时间后需要知道其他用户(比如说:B用户)的编辑情况,那么就需要先执行保存把自己编辑的内容保存后,刷新再次打开文档123.doc,利用PageOffice可以在數据区域插入其他word文档的功能通过程序自动把a.doc、b.doc等其他用户保存过的内容重新插入到主文档123.doc中,查看这份重新生成的新文档
}