本技术资料版权所有,禁止分发.©(2003-2007),重庆软航科技有限公司,保留所有权利.NTKO和软航是软航科技的商标

NTKO OFFICE文档控件技术资料

不同office版本下,如何设置文档修订的显示状态,如设置无标记 或者是最终标记状态


创建时间:06/15/2020 11:00:41 AM 修改时间: 06/15/2020 11:30:50 AM
分类:BS开发-常见问题, BS开发-开发入门及架构, BS开发-开发技巧, BS客户端-JavaScript控制Word
适应版本号:4,0,6,X; 4,0,3,X; 4,0,1,X; 4,0,0,X; 3,0,0,x

相关文档:本文档没有相关文档

需求:实现文档处于修订模式下,修订的标记显示模式为无标记,或者其他标记状态


分析:微软Office 2013中对于修订的标记状态增加了RevisionsFilter对象来控制,而10则使用之前的方式 因此考虑不同office版本兼容的情况下需要通过文档控件的GetOfficeVer方法来判断客户端的office版本,然后针对不同的Office版本进行代码控制。 假设需要在文档打开之后进行设置,请在OnDocumentOpened事件中完成代码,确保设置时文档是处于完全打开的状态。

注意:控件本身是不区分大小写的,但是不排除部分环境是区分大小写的,比如说正常情设置 修订模式:控件对象.ActiveDocument.TrackRevisons=true,是可用的,但是某些环境必须写成控件对象.ActiveDocument.TrackRevisons=True,才能正常进行修订模式(office功能区中 审阅---修订是选中状态:) 如果您设置修订标记显示模式之后,请确认文档依然处于修订模式下,这样才能确保之后修改的内容做为修订痕迹保留在文档上,否则编辑的内容就不能保存为痕迹。

相关参考代码:
function YuanshiState(){
//修订显示原始状态
var doc=obj.ActiveDocument;//对于需要重复访问的对象可先声明,以优化代码执行效率
var officeVersion=obj.GetOfficeVer();
var docview=doc.ActiveWindow.View;
if(officeVersion>=15){//Office2013及以上版本
//原始状态
/*
WdRevisionsMarkup 枚举 (Word) Office 2013 及更高版本
常量,这些常量表示标记在文档中,返回并传递给RevisionsFilter.Markup属性可见的程度。
wdRevisionsMarkupAll 2 显示在显示所有标记的最终文档。
wdRevisionsMarkupNone 0 显示最终文档不显示任何标记。
wdRevisionsMarkupSimple 1 简单标记中显示最终文档: 修订合并,但不显示标记。
WdRevisionsView 枚举 (Word) Office 2013 及更高版本
指定 Word 是显示文档的原始版本还是显示应用了修订和格式更改的版本。
wdRevisionsViewFinal 0 显示应用了格式和内容更改的文档。
wdRevisionsViewOriginal 1 显示进行更改之前的文档。
*/
docview.RevisionsFilter.Markup=0;
docview.RevisionsFilter.View =1;
alert("Office 2013及以上版本 设置修订显示为原始状态");
}
else{ //Office 2010及以下版本
var docview=doc.ActiveWindow.View;
docview.ShowRevisionsAndComments=true;//是否显示标记
docview.RevisionsView=1;//显示原始状态
alert("Office 2010及以下版本 设置修订显示为原始状态");
}
}

function BiaojiFinal(){
//修订显示显示标记的最终状态: Office 2013及以上 为无标记状态
var doc=obj.ActiveDocument;//对于需要重复访问的对象可先声明,以优化代码执行效率
var officeVersion=obj.GetOfficeVer();
var docview=doc.ActiveWindow.View;
if(officeVersion>=15){//Office2013及以上版本
//无标记状态 不显示标记但是为应用格式与内容更改后的文档
docview.RevisionsFilter.Markup=0;
docview.RevisionsFilter.View =0;
alert("Office 2013及以上版本 设置修订显示为无标记状态");
}
else{ //Office 2010及以下版本
docview.ShowRevisionsAndComments=true;//是否显示标记
docview.RevisionsView=0;//显示最终状态
alert("Office 2010及以下版本 设置修订显示为最终状态");
}
}


function ShowRevisions(bool){//是否显示痕迹
var doc=obj.ActiveDocument;//对于需要重复访问的对象可先声明,以优化代码执行效率
doc.ShowRevisions=bool;//是否显示修订
}

function AcceptAndSave(){//接受修订并保存到本地
Revisions();//调用接受修订的方法接受修订
obj.ShowDialog(3);//使用文档控件的ShowDialog()方法另存为
//此处若提交到服务器上也是可以的
}
function Revisions(){
//检查文档是否处于修订状态,如果是,接收修订
//if(obj.ActiveDocument.TrackRevisions==true){
//利用Document对象的TrackRevisions属性判断是否处于修订状态
var num=null;
var revision=obj.ActiveDocument.Revisions;//以下均会使用Revisions对象,为优化效率,此处声明定义
num=revision.Count;//利用Revisions对象的Count方法计算修订数目
alert(num);//打印修订数目
if(num>0){
for(var i=1;i<=num;i++){//注意修订等数目应从1开始
//for循环遍历修订,接收修订
if(revision.Item(i).Author=="ntko"){//当修订的用户名为某某时,接受修订
revision.Item(i).Accept();//用Revision对象的Accept方法接受修订
}
//alert(revision.Item(i).Date);//打印某条修订对应的日期
//revision.Item(i).Accept();//用Revision对象的Accept方法接受修订
}
}
//对于修订的接受,除了以上的遍历每条修订一一接受的方式,还可通过如下方式:
/*
TANGER_OCX_OBJ.ActiveDocument.Revisions.AcceptAll(); //接受所有修订
TANGER_OCX_OBJ.ActiveDocument.AcceptAllRevisions(); //接受修订 此处TANGER_OCX_OBJ为文档控件对象
*/
//}
//else{
//以下使用三目运算:问号前面是判断语句 如果为true 则取冒号前的值 为false 取冒号之后的值
//alert("文档是否处于修订状态:\n"+obj.ActiveDocument.TrackRevisions==true?"是":"非修订状态");
//}
}

其他参考资料: http://dev.ntko.com:8000/admin/support.nsf/vwWebBSDocsPubDefault/F7F7CC237403B9504825815C0012ABF6?opendocument


返回页面顶部↑  
本文档的相关文档:

本文档没有相关文档