不一样的书签功能,解锁WebOffice新技能

栏目:云苍穹知识作者:金蝶来源:金蝶云社区发布:2024-09-23浏览:1

不一样的书签功能,解锁WebOffice新技能

最近,业务开发小伙伴小明被上级领导下达了一条令他感到烦恼的任务。经了解,原来他接到了这样的需求:开发一个合同范文模板,根据合同单据中的某个表单的数据和选择的合同模板在线生成一份合同文件,且该合同模板还可以放置图片、水印等。


为了解决小明的困惑,小编这就带领大家了解这一功能的快速实现方法。




1 解决方案


该功能需求的实现需要借助苍穹的WebOffice控件,主要的实现原理为:借助WebOffice控件的书签功能,将word文档中的某段内容当成变量,根据后端数据进行内容的替换

如文档中设置了内容变量:【合同编号】,可根据表单数据将word文档中的【合同编号】 替换成单据中合同编号的字段值,实现模板变量替换的功能。


2 具体设计流程


实现合同模板变量替换功能的整体流程,如下图所示。



具体操作步骤如下:


Step1 合同模板开发设计


合同模板的开发设计,主要分三部分:


  1. 设计合同模板基础资料,为选中的合同单据设计属于自己的合同模板;

  2. 设计合同模板编辑界面;

  3. 设计一个单据打开合同模板变量替换的界面。


三部分的核心代码如下:


  • 获取控件


WebOffice webOffice = getControl("webofficeap");


  • 添加书签至文档中


addMarks(WebOfficeMark mark)
// markKey是书签的标识,markValue是书签值
webOffice.addMarks(new WebOfficeMark(markKey, markValue));


  • 替换书签,根据原有的书签key替换值


modifyMarks(List<WebOfficeMark> marks)
// 组装变量
List<WebOfficeMark> marks = new ArrayList<>(10);
// markKey是原有书签的标识,newMarkValue是新值进行替换
marks.add(new WebOfficeMark(markKey, newMarkValue));
//  支持批量修改
webOffice.modifyMarks(marks);


Step2 合同模板设置



1.打开【合同模板】界面,为单据设置合同模板。点击“编辑合同模板”,补充基本信息并保存后,将生成的临时文件URL上传至文件服务器,后续即可自行操作文件URL,例如绑定至附件面板上。


注:在【合同模板】界面实现打开编辑合同模板的按钮的具体方法,可参考往期文章:WebOffice小科普,轻松助力在线Office办公



2. 打开【编辑合同模板】界面,将单据的字段读取作为书签变量放置于单据体中,点击“插入变量”至文档中保存。



Step3 合同模板应用


1. 打开【合同单据】界面,选择步骤1存储的合同模板(此处以“合同模板1”为例),点击“查看合同”按钮,可看到所选择模板的书签内容。



2. 在【编辑合同模板】界面,点击“替换变量”将书签内容替换为当前单据字段值(此处以“编号:0001”为例),即可实现替换功能。



以上就是本期分享的全部内容,如果有类似的业务场景,赶紧学习并尝试一下吧!


注:目前WebOffice支持插入图片(具体接口:insertPictures(List<WebOfficeImage> image)),后续Weboffice将会支持水印功能,敬请期待~





更多精彩内容,”码“上了解↓


不一样的书签功能,解锁WebOffice新技能

最近,业务开发小伙伴小明被上级领导下达了一条令他感到烦恼的任务。经了解,原来他接到了这样的需求:开发一个合同范文模板,根据合同单据...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息