在线公文审批系统整合--WebOffice解决方案之一

OA办公都离不在一个在线的Office编辑功能,在政府的办公系统中,在线的Office文档编辑及审批功能是必不可少的,微软目前提供了一个dsoframer.ocx控件可以实现这个功能,不过这个控件并没有较好提供完善的升级服务,所以对Office2007的支持并不好,而国内有不少公司或开发人员却基于此开发了不少的功能,不过大部分都需要收费,北京却有一家点聚的公司开发了WebOffice在控件,并且提供免费升级服务,这让OA开发用户多了一种新的选择。

出于此免费的方案,Joffice有其中一个方案是基于它来集成在线的文档编辑功能,而电子签章可以根据用户的需求与该公司进行购买集成,以下为Joffice集成的JOffice控件其中一个界面,支持保留痕迹,清除痕迹。

代码如下:

/**
 * @author csx
 * @description 公文模板在线显示及编辑窗口
 * @company 广州宏天软件有限公司
 * @param {} docPath
 * @param {} readOnly
 */
var OfficeTemplateView=function(docPath,readOnly,callback){
	this.docPath=docPath;
	this.readOnly=readOnly==null?false:readOnly;
	
	var objHtml = "<object id='WebOfficeObj' height='100%' width='100%' style='LEFT: 0px; TOP: 0px'  classid='clsid:E77E049B-23FC-4DB8-B756-60529A35FAD5' codebase='"+__ctxPath+"/js/core/weboffice/HWPostil_V3074.cab#V6,0,4,2'>";
				objHtml+="<param name='TitlebarColor' value='7898C2'/>";
				objHtml +="</object>";
				//文件保存在服务器端的路径			
				var win=new Ext.Window({
					title:'公文模板详细信息',
					height:500,
					width:700,
					maximizable:true,
					html:objHtml
				});
				
				//是否只读
				if(!this.readOnly){
					win.buttonAlign='center';
					win.buttons=[
					{
						iconCls:'btn-save',
						text:'保存',
						handler:function(){
							
								var url=__fullPath+"/file-upload";
								document.all.WebOfficeObj.HttpInit();
								document.all.WebOfficeObj.HttpAddPostString('file_cat', 'archive');
								//overwrite file path
								document.all.WebOfficeObj.HttpAddPostString('file_path', docPath);
								
								document.all.WebOfficeObj.HttpAddPostCurrFile("AipFile ","");	
								// 提交上传文件
								returnValue = document.all.WebOfficeObj.HttpPost(url);
								var obj;
								eval('obj='+returnValue+";");
								
								if(obj.success){
									Ext.ux.Toast.msg('操作信息','已经成功保存至服务器!');
									if(callback!=null){
										callback.call(this,obj.fileId,obj.filePath);
									}
									win.close();
								}else{
									Ext.ux.Toast.msg('操作信息','操作出错,请联系管理员!');
								}
							
						}//end of handler
					},
					{
						iconCls:'btn-cancel',
						text:'关闭',
						handler:function(){
							win.close();
						}
					},
					{
						text:'保留修改痕迹',
						handler:function(){
							 document.all.WebOfficeObj.SetTrackRevisions(1);
				 			 document.all.WebOfficeObj.SetCurrUserName(curUserInfo.fullname);
						}
					},
					{
						text:'取消保留痕迹',
						handler:function(){
							 document.all.WebOfficeObj.SetTrackRevisions(0);
						}
					},
					{
						text:'清除痕迹',
						handler:function(){
							 document.all.WebOfficeObj.SetTrackRevisions(4);
						}
					}
					];
				}
				
				win.show();
				//隐藏保存与返回的按钮
				//document.all.WebOfficeObj.HideMenuItem(0x04 + 0x2000);
				document.all.WebOfficeObj.ShowToolBar=false;
				var fullDocPath=''
				if(this.docPath!=null && this.docPath!=''){
					fullDocPath=__fullPath+'/attachFiles/' + this.docPath;
				}
				document.all.WebOfficeObj.LoadOriginalFile(fullDocPath,'doc');
				
				//一定需要加上这个控制,保证关闭窗口后,office实例也需要关闭
				win.on('close',function(){
					try{
						document.all.WebOfficeObj.Close();
					}catch(ex){
					}
				});
				//当窗口关闭时也需要做同样的操作
				window.onUnload=function(){
					try{
						document.all.WebOfficeObj.Close();
					}catch(ex){
					}
				}
};
 

猜你喜欢

转载自man1900.iteye.com/blog/578281