1:需求
案例分析: 员工写了一篇文案 . 需要各位领导需要填写各自的意见 .
2:方案:
不同的用户编辑不同区域的方法,
核心思想: pageoffice 提供了指定区域是否可编辑的方法
在这儿解释一下DataRegion.
DataRegion也就是word 文档中的书签.可以看看下面链接中DataRegion具体的描述
https://www.kancloud.cn/pageoffice_course_group/pageoffice_course/663125
3:具体代码
(1):调用PageOffice在线打开word文件,比如:test.doc
(2):设置不同的用户编辑不同的区域(设置数据区域是否可编辑)
String userName = request.getParameter("userName");
//***************************卓正PageOffice组件的使用********************************
WordDocument doc = new WordDocument();
//打开数据区域
DataRegion dTitle = doc.openDataRegion("PO_title");
//给数据区域赋值
dTitle.setValue("某公司第二季度产量报表");
//设置数据区域可编辑性
dTitle.setEditing(false);//数据区域不可编辑
DataRegion dA1 = doc.openDataRegion("PO_A_pro1");
DataRegion dA2 = doc.openDataRegion("PO_A_pro2");
DataRegion dB1 = doc.openDataRegion("PO_B_pro1");
DataRegion dB2 = doc.openDataRegion("PO_B_pro2");
//根据登录用户名设置数据区域可编辑性
//A部门经理登录后
if (userName.equals("zhangsan")) {
userName = "A部门经理";
dA1.setEditing(true);
dA2.setEditing(true);
dB1.setEditing(false);
dB2.setEditing(false);
}
//B部门经理登录后
else {
userName = "B部门经理";
dB1.setEditing(true);
dB2.setEditing(true);
dA1.setEditing(false);
dA2.setEditing(false);
}
PageOfficeCtrl poCtrl = new PageOfficeCtrl(request);
poCtrl.setWriter(doc);
//设置服务器页面
poCtrl.setServerPage(request.getContextPath()+"/poserver.zz"); //此行必须
poCtrl.setMenubar(false);
//设置文档打开方式
poCtrl.webOpen("doc/test.doc", OpenModeType.docSubmitForm, userName); ******必须用submit 模式