前端开发做移动端的网站,企业展厅设计图片欣赏,抖音的商业营销手段,网页代理最干净最悠久windows系统也适用#xff0c;该插件可同时支持windows和国产系统
在实际项目开发中#xff0c;以下场景可能会用到Word局部编辑功能#xff1a;
合同审批公文流转策划设计报告汇签单招投标#xff08;标书文件#xff09;其他#xff0c;有模板且需要不同人员协作编辑…windows系统也适用该插件可同时支持windows和国产系统
在实际项目开发中以下场景可能会用到Word局部编辑功能
合同审批公文流转策划设计报告汇签单招投标标书文件其他有模板且需要不同人员协作编辑的场景
PageOffice使用表单模式docSubmitForm打开Word文件之后只有设置了Editing属性为true的数据区域部分是可以编辑的Word中的其他部分都是只读不可编辑的所以利用此特性就可以控制Word文件编辑区域只要保存的时候不处理提交的数据只是保存文件的话就实现了局部编辑功能。
控制编辑区域实现局部编辑的功能通常用在以下两个方面
只是为了控制Word文档中哪些位置属于可编辑区域避免用户误操作修改、或故意修改编辑区域以外的内容多人负责编辑Word文档中不同章节的情况下控制不同用户编辑各自不同的区域
以下我们就合同审批和公文流转两个场景来举例说明PageOffice是如何使用局部编辑功能分别实现这两个需求的。 注意 “数据区域”是指word文件中名称以“PO_”开头的书签。 合同审批的需求
某公司要在线上起草采购合同合同模板是固定的合同条款几乎固定不变只有签订合同的供货单位名称和担保人是根据实际情况变动的。因此在线上制作合同时只需要让合同中那些可变的区域可编辑其他位置则不能编辑这时就需要用到PageOffice的局部编辑功能。 在实际项目中合同审批肯定会用到更多的数据区域本文为了简明扼要所以仅以有限的几个数据区域来举例说明。 首先制作一个销售合同模板比如D:\template1.docx里面包含了购货单位、供货单位、合同编号、产品名称、担保人等数据区域如下图所示 然后起草文件时编程控制用表单模式docSubmitForm打开Word文件并调用WordDocument对象动态填充从Web系统数据库中获取的所有数据到Word模板生成合同文件的初稿同时设置供货单位(PO_Supplier)和担保人(PO_Guarantor)两个数据区域的Editing属性为true即实现除供货单位名称和担保人之外的所有内容都是只读不可编辑的。做如下编码
PageOfficeCtrl poCtrl new PageOfficeCtrl(request);WordDocument wordDoc new WordDocument();
//打开数据区域openDataRegion方法的参数代表Word文档中的书签名称
wordDoc.openDataRegion(PO_Buyer).setValue(北京幻想科技有限公司);
wordDoc.openDataRegion(PO_No).setValue(HT20230211);
wordDoc.openDataRegion(PO_ProductName).setValue(三防热敏标签纸);DataRegion supplierNameDr wordDoc.openDataRegion(PO_Supplier);
supplierNameDr.setValue(湖北某某有限公司);
supplierNameDr.setEditing(true); // true代表当前数据区域可编辑false为不可编辑。默认值是falseDataRegion guarantorDr wordDoc.openDataRegion(PO_Guarantor);
guarantorDr.setValue(张三);
guarantorDr.setEditing(true);poCtrl.setWriter(wordDoc);//必须
poCtrl.setSaveFilePage(saveFile); // 设置保存文件的接口地址
poCtrl.WebOpen(D:\\template1.docx, OpenModeType.docSubmitForm, 李四);生成的合同初稿如下图所示 保存合同文件时在SaveFilePage属性指向的地址接口中调用FileSaver对象保存合同文件为正式的文件名比如hetong001.docx后面的流转和审核环节对hetong001.docx进行处理即可。
FileSaver fs new FileSaver(request, response);
fs.saveToFile(D:\\hetong001.docx);
fs.close();这样一来合同起草人员或合同流转审阅环节的其他人员就只需要根据具体情况修改合同中相关数据无需担心误操作修改了与Web系统紧密相关的关键数据如“合同编号”或其他关键合同条款。最后合同的审核环节领导只需要关注合同中可编辑区域的数据无需逐一核对全文数据不用担心可编辑区域以外的其他内容发生变动极大的提高了领导审核合同的效率。
公文流转的需求
起草人起草文档然后文档在部门之间流转或在人员之间流转一个时常会遇到的需求就是要求A部门人员不能编辑B部门区域的内容反之亦然否则就不能划清部门之间的责任。总的来说就是不同的人负责编辑文章中不同的区域所以就需要控制编辑区域的功能。此功能基本上属于OA系统、文档系统、合同管理等各种类型的文档审核流转的核心功能。比如打开公司公文里面包含两个数据区域“研发部意见”和“销售部意见”名称分别为PO_YanFa、PO_XiaoShou实现A用户打开公文后只能编辑研发部意见B用户打开公文后只能编辑销售部意见可以做如下编码
PageOfficeCtrl poCtrl new PageOfficeCtrl(request);WordDocument wordDoc new WordDocument();if (loginUser.equals(A用户)){wordDoc.openDataRegion(PO_YanFa).setEditing(true); // 设置数据区域为可编辑状态
} else if (loginUser.equals(B用户) {dwordDoc.openDataRegion(PO_XiaoShou).setEditing(true);
}poCtrl.setWriter(wordDoc);//必须
poCtrl.setSaveFilePage(saveFile);
poCtrl.WebOpen(D:\\documents\\hetong.docx, OpenModeType.docSubmitForm, 张三);当A用户打开公文时只能编辑研发部意见的效果如下图所示只有黄色中括号内的区域可以编辑 当B用户打开公文时只能编辑销售部意见的效果如下图所示只有黄色中括号内的区域可以编辑 编辑区域的定义 方法一编辑Word模板即在Word文档中添加书签。在D盘根目录下新建Word文件比如D:\template1.docx打开文件用光标选中需要标记为书签的文字比如“[公司名称]”然后点Word菜单中的“插入”-“书签”就会弹出一个标题为“书签”的对话框如下图所示输入新书签的名称注意书签名必须以“PO_”开头并由字母和数字组成但中间不能有空格。点右侧的“添加”按钮新的书签名将出现在下面的列表中。此方法适用于模板在项目开发时就固定下来不再修改的场景。 方法二请参考“用户自定义模板中数据区域”章节。此方法适用于在项目发布运行后用户还需要修改调整模板、甚至新建模板的场景。 原文链接控制Word编辑区域(局部编辑) | PageOffice 开发者中心