top
linkSite
 
 
首页  |  产品  |  销售  |  在线订购  |  服务  |  下载  |  新闻  |  二次开发  |  关于我们  |  永中未来星  |  永中手机Office  |  永中论坛   
macro
概况
解决方案
编程指南
使用技巧
技术支持
 
search
新闻搜索
当前位置:首页 > 二次开发 > 使用技巧 > 永中Office痕迹保留编程指南
永中Office痕迹保留编程指南

  痕迹保留是公文处理的一项常用功能,其作用是记录同一份公文中,不同人员在不同时间内编辑的内容,是协同办公的重要工具。

  永中Office提供了痕迹保留功能,也就是我们常说的“修订”功能。永中Office文字处理的修订功能有如下特点:

  • 可记录修订人进行的插入内容、删除内容和改变内容格式的操作;
  • 对插入的内容可通过无变化、加粗、斜体、下划线和双下划线等方式标记,并可自动设置颜色或自定义颜色显示;
  • 对删除的内容可通过隐藏、删除线和双删除线等方式标记,并可自动设置颜色或自定义颜色显示;
  • 对格式的改变可通过无变化、加粗、斜体、下划线和双下划线等方式标记,并可自动设置颜色或自定义颜色显示;
  • 对修订过的行可设置无、左侧框线或右侧框线标记,并可自动设置颜色或自定义颜色显示;
  • 可根据修订人信息自动设置修订格式,如颜色设置等;
  • 可显示文档的原始状态、修订状态和最终状态;
  • 可对修订内容进行审阅,选择接收修订或者拒绝修订。
   下面我们通过样例来演示永中Office的修订功能。界面设计如下图所示:

  网页中嵌入永中Office,左侧栏为控制栏,通过网页的Form元素控制和操作永中Office。其中:

    “打开文件”按钮调用永中Office的打开对话框;
    “新建空白文件”按钮调用新建功能,新建一个空白文字处理文档;
    “高亮显示痕迹”按钮点击后,将打开永中Office的修订开关,此时在永中Office中编辑文档,将记录修订信息;
    “取消痕迹保留”按钮点击后,将关闭永中Office的修订开关,此时在永中Office中编辑文档,不会记录修订信息;
    “前一个修订”和“后一个修订”按钮的作用分别是跳转到当前修订项目的前一项修订处和后一项修订处,如果到了文档开头或者结尾处,系统回弹出提示信息询问是否从新开始;
    “接收当前的修订”和“拒绝当前的修订”按钮的作用分别是接收和拒绝当前的修订项目。
    “属性设置”中可以分别设置插入的文本、删除的文本、改变过的格式和修订过的行的标记和颜色信息。

以下是该网页的源代码。

<HTML>
<HEAD>
<meta http-equiv="Content-Language" content="zh-cn">
<TITLE>痕迹保留样例</TITLE>
<script language="JavaScript" type="text/JavaScript">
<!--
function openFileDialog()
{
document.TrackChange.openDialog();
}
function newWp()
{
if(document.TrackChange.isExist() == false)
{
document.TrackChange.goToWp();
return;
}
document.TrackChange.newFile();
}
function openTC()
{
document.TrackChange.openTrackChange();
}
function closeTC()
{
document.TrackChange.colseTrackChange();
}
function previousTC()
{
document.TrackChange.getPrevious();
}
function nextTC()
{
document.TrackChange.getNext();
}
function acceptTC()
{
document.TrackChange.accept();
}
function rejectTC()
{
document.TrackChange.reject();
}
function TCOption()
{
if(document.TrackChange.isExist()==false)
{
alert("编辑区没有活动文档!");
return;
}
document.TrackChange.setTCOption();
}
function applyAttribute()
{
if(document.TrackChange.isExist()==false)
{
alert("编辑区没有活动文档!");
return;
}

insertSign = document.form1.D1.selectedIndex;
insertColor = document.form1.D2.selectedIndex;
deleteSign = document.form1.D3.selectedIndex;
deleteColor = document.form1.D4.selectedIndex;
formatSign = document.form1.D5.selectedIndex;
formatColor = document.form1.D6.selectedIndex;
trackSign = document.form1.D7.selectedIndex;
trackColor = document.form1.D8.selectedIndex;
document.TrackChange.changeTextSign(insertSign);
document.TrackChange.changeTextColor(insertColor);
document.TrackChange.changeDelSign(deleteSign);
document.TrackChange.changeDelColor(deleteColor);
document.TrackChange.changeFormatSign(formatSign);
document.TrackChange.changeFormatColor(formatColor);
document.TrackChange.changeTrackSign(trackSign);
document.TrackChange.changeTrackColor(trackColor);
}
//-->
</script>
</HEAD>
<BODY>
<div style="position: absolute; width: 141px; height: 582px; z-index: 1; left: 6px; top: 5px" id="layer1">
<div style="position: absolute; width: 817px; height: 531px; z-index: 1; left: 155px; top: 0px" id="layer2">
<applet width="823" height="573" code="EIOTrackChange.class" name="TrackChange">
本浏览器不支持JAVA Applet
</applet></div>
<div align="center">
<table border="1" width="100%" cellspacing="1" id="table1">
<tr>
<th height="21">
<p align="center"><font face="华文彩云" color="#0000FF">
基本操作</font></p></th>
</tr>
<tr>
<td height="24">
<input type="button" value="打开文件" name="button1" onclick="openFileDialog();" style="font-family: 宋体; font-size: 10pt; color: #000080; font-weight: bold; width: 140; height: 20; padding: 0" class="button"></td>
</tr>
<tr>
<td height="24">
<input type="button" value="新建空白文件" name="button2" onclick="newWp();" style="font-family: 宋体; font-size: 10pt; color: #000080; font-weight: bold; width: 140; height: 20; padding: 0" class="button"></td>
</tr>
<tr>
<td height="24">
<input type="button" value="高亮显示痕迹" name="button3" onclick="openTC();" style="font-family: 宋体; font-size: 10pt; color: #000080; font-weight: bold; width: 140; height: 20; padding: 0" class="button"></td>
</tr>
<tr>
<td>
<input type="button" value="取消痕迹保留" name="button4" onclick="closeTC();" style="font-family: 宋体; font-size: 10pt; color: #000080; font-weight: bold; width: 140; height: 20; padding: 0" class="button"></td>
</tr>
<tr>
<td>
<input type="button" value="前一个修订" name="button5" onclick="previousTC();" style="font-family: 宋体; font-size: 10pt; color: #000080; font-weight: bold; width: 140; height: 20; padding: 0" class="button"></td>
</tr>
<tr>
<td>
<input type="button" value="后一个修订" name="button6" onclick="nextTC();" style="font-family: 宋体; font-size: 10pt; color: #000080; font-weight: bold; width: 140; height: 20; padding: 0" class="button"></td>
</tr>
<tr>
<td>
<input type="button" value="接受当前的修订" name="button7" onclick="acceptTC();" style="font-family: 宋体; font-size: 10pt; color: #000080; font-weight: bold; width: 140; height: 20; padding: 0" class="button"></td>
</tr>
<tr>
<td>
<input type="button" value="拒绝当前的修订" name="button8" onclick="rejectTC();" style="font-family: 宋体; font-size: 10pt; color: #000080; font-weight: bold; width: 140; height: 20; padding: 0" class="button"></td>
</tr>
</table>
<form method="POST" action="--WEBBOT-SELF--" name="form1">
<!--webbot bot="SaveResults" U-File="fpweb:///_private/form_results.csv" S-Format="TEXT/CSV" S-Label-Fields="TRUE" -->
<fieldset style="width: 146px; height: 316px; padding: 2">
<legend><font size="2">属性设置</font></legend>
<b><font size="2">插入的文本</font></b><select size="1" name="D1">
<option>(无)</option>
<option>加粗</option>
<option>斜体</option>
<option selected>下划线</option>
<option>双下划线</option>
</select> <font size="2">标记</font><select size="1" name="D2">
<option selected>根据作者</option>
<option>自动</option>
<option>黑色</option>
<option>蓝色</option>
<option>青绿色</option>
<option>深灰色</option>
<option>灰色</option>
<option>明亮色</option>
<option>浅灰色</option>
<option>洋红色</option>
<option>金色</option>
<option>粉红色</option>
<option>白色</option>
<option>黄色</option>
<option>深蓝色</option>
<option>青色</option>
<option>绿色</option>
<option>紫罗兰色</option>
<option>暗红色</option>
<option>暗黄色</option>
</select> <font size="2">颜色</font><p><b><font size="2">删除的文本</font></b><select size="1" name="D3">
<option>隐藏</option>
<option selected>删除线</option>
<option>双删除线</option>
</select> <font size="2">标记</font> <select size="1" name="D4">
<option>根据作者</option>
<option>自动</option>
<option>黑色</option>
<option>蓝色</option>
<option>灰色</option>
<option>明亮色</option>
<option>洋红色</option>
<option>黄色</option>
</select><font size="2"> 颜色</font></p>
<p><b><font size="2">改变过的格式</font></b><select size="1" name="D5">
<option selected>(无)</option>
<option>加粗</option>
<option>斜体</option>
<option>下划线</option>
<option>双下划线</option>
</select><font size="2"> 标记</font><select size="1" name="D6">
<option>根据作者</option>
<option>自动</option>
<option>黑色</option>
<option>蓝色</option>
<option>灰色</option>
<option>明亮色</option>
<option>洋红色</option>
<option>黄色</option>
</select><font size="2"> 颜色</font></p>
<p><b><font size="2">修订过的行</font></b><select size="1" name="D7">
<option>(无)</option>
<option selected>左侧框线</option>
<option>右侧框线</option>
</select><font size="2"> 标记</font><select size="1" name="D8">
<option>根据作者</option>
<option>自动</option>
<option>黑色</option>
<option>蓝色</option>
<option>灰色</option>
<option>明亮色</option>
<option>洋红色</option>
<option>黄色</option>
</select><font size="2"> 颜色</font><input type="button" value="确认修改" name="B3" onclick="applyAttribute();"></p>
</fieldset><p align="left"> </p>
</form>
<p> </p>
<p align="left"> </div>
<tr width=100%><td valign=top width=90>
</tr>
</div>
<p align="center"><blink><font size="5" color="#000080">永中Office痕迹保留样例示范</font></blink></p>
</BODY>
</HTML>

  这个网页利用JavaScript的函数调用永中Office小应用程序的对应的方法,实现了操作的互动。永中Office小应用程序源代码如下:

import javax.swing.JApplet;
import application.Application;
import application.constants.BarConstants;
import application.constants.GlobalConstants;
import application.constants.MacroConstants;
import application.constants.OfficeDialogConstants;
import application.util.Dialogs;
import application.workbooks.Workbook;
import application.workbooks.workbook.documents.ActiveDocument;
import application.workbooks.workbook.documents.Document;
import application.workbooks.workbook.documents.document.TrackChanges;
import application.workbooks.workbook.documents.document.trackchanges.TrackChange;
public class EIOTrackChange extends JApplet implements MacroConstants
{
  public EIOTrackChange()
  {
  }

   public void start()
  {
//创建一个永中Office的实例,将其加入到网页里的applet面板中
Application.createInstance(this);
getContentPane().add("Center", Application.getInstance());
}

public void eioInit()
{
//关闭导航面板
Application.setTaskPanelVisible(GlobalConstants.START_WORK_PANE ,false);
//隐藏画图工具栏
Application.setToolbarVisible(BarConstants.DRAWING_INDEX, false);
}
public void openDialog()
{
//调用永中Office的open对话盒
Dialogs.showOpenDialog();
}
public void newFile()
{
//定义一个Workbook对象,将当前集成文件的处于激活状态的文档赋给这个对象
Workbook workbook = Application.getWorkbooks().getActiveWorkbook();
//在当前集成文件中新建一个空白文字处理文档
workbook.getDocuments().addDocument();
}

public void openTrackChange()
{
//定义一个文字处理文档对象,并将当前处于激活状态的文字处理文档赋给这个对象
Document doc = Application.getWorkbooks().getActiveWorkbook().getDocuments().getActiveDocument();
//获得文本修订对象集合
tc = doc.getTrackChanges();
tc.beginTrackChange();
}

public void colseTrackChange()
{
//关闭修订功能
ActiveDocument.stopTrackChange();
}

public void getPrevious()
{
if (!isExist())
{
return;
}
//获得前一个修订
tc.getPreviousTrackChange();
}

public void getNext()
{
if (!isExist())
{
return;
}
tc.getNextTrackChange();
}

public void accept()
{
if (!isExist())
{
return;
}
//获得前一个修订项目
currenttc = tc.getPreviousTrackChange();
//接受当前修订的内容
currenttc.accept();
}

public void reject()
{
if (!isExist())
{
return;
}
currenttc = tc.getPreviousTrackChange();
//拒绝当前修订的内容
currenttc.reject();
}

public void setTCOption()
{
//打开修订设置对话框
Dialogs.showOfficeDialog(OfficeDialogConstants.TOOLS_TRACT_CHANGES_HIGHLIGHT);
}

/**
* 判断当前是否有工作簿.
*/
public boolean isExist()
{
if (Application.getWorkbooks().getAllWorkbooks() != null
&& Application.getWorkbooks().getAllWorkbooks().length > 0)
{
return true;
}
return false;
}

public void goToWp()
{
//新建一个空白文字处理文档
Application.gotoProduct(1);
}

/*
* 设置插入文本的标识属性 若index =0,无标志; 若index =1,加粗标志; 若index =2,用斜体标志; 若index
* =3,用下划线标志; 若index =4,用双下划线标志
*/
public void changeTextSign(String index)
{
tc.setInsertMark(stringToNum(index));
}

//设置插入文本的颜色属性
public void changeTextColor(String index)
{
//application.util.Macro.showMessageDialog("the index is: "+iColor);
tc.setInsertColor(stringToNum(index) + 1);
}

/*
* 设置删除文本的标识属性 若index =0,隐藏删除的文本; 若index =1,显示删除线; 若index =3,显示双删除线
*/
public void changeDelSign(String index)
{
tc.setDeleteMark(stringToNum(index));
}

/*
* 修改删除文本的颜色
*?
*/
public void changeDelColor(String index)
{
tc.setDeleteColor(stringToNum(index));
}

/*
* 设置标记改变过格式的文本的显示格式 若index =0,无标志; 若index =1,用粗体标志; 若index =2,用斜体标志; 若index
* =3,用下划线标志; 若index =4,用双下划线标志
*/
public void changeFormatSign(String index)
{
tc.setFormatMark(stringToNum(index));
}

//设置设置标记修订时,标记改变过格式的文本的颜色
public void changeFormatColor(String index)
{
tc.setFormatColor(stringToNum(index));
}

/*
* 设置标记修订时,标记修订行的显示格式。 若index =0,无标志; 若index =1,左侧框线; 若index =2,右侧框线;
*/
public void changeTrackSign(String index)
{
tc.setChangeMark(stringToNum(index));
}

//设置标记修订时,标记修订线颜色。
public void changeTrackColor(String index)
{
tc.setChangeColor(stringToNum(index));
}

//string型转换成int型
public int stringToNum(String index)
{
int i = 0;
Integer w = new Integer(0);
i = w.parseInt(index);
return i;
}

public TrackChange currenttc;
public TrackChanges tc;
}

  永中Office小应用程序首先初始化取得实例, eioInit()方法对永中Office进行配置,关闭导航面板并隐藏绘图工具栏, openDialog()和 newFile()分别是调用打开对话框和新建空白文件;

ActiveDocument是当前活动的文字处理文档对象,其中包含了对修订进行处理的基本方法,如ActiveDocument.beginTrackChange()是打开修订开关, ActiveDocument.stopTrackChange()是关闭修订开关。

因为文档中可以存在多处修订,永中通过 application.workbooks.workbook.documents.document.TrackChanges类进行管理,通过ActiveDocument.getTrackChanges()可获得修订集合,TrackChanges中的 getPreviousTrackChange()和getNextTrackChange()方法可分别获得前一个修订和后一个修订对象,application.workbooks.workbook.documents.document.TrackChange类是基本的修订类,它包括了 accept()和 reject()方法,也就是接收和拒绝修订的方法。

TrackChanges类还能对修订内容的属性进行设置,如 changeTextSign()和 changeTextColor()方法分别用于设置插入内容的标记方式设置和颜色设置。
 
right
 永中集成Office 2007
 产品聚焦
·产品注册
·在线升级
·2007试用版下载
·补丁下载
 资料下载
·模板下载
·产品白皮书
·应用秘笈
·二次开发手册
 与我们联系
·800-808-6655
·0510-85213588(客服)
公司荣誉
二次开发
bottom
Copyright © 2001-2008 永中科技有限公司
电话:0510-85213588 8008086655 传真:0510-85218836