|
楼主 |
发表于 2013-11-12 09:18:18
|
显示全部楼层
模板的使用
在新附件中,不再使用域,改为使用书签
①新建word文档,在想要自动填充的位置插入书签。
②将word文档上传至文档中心。
③在协同平台-文档管理-文档关联中选择相应的功能-设置文档关联-新增模板-保存。(该方法使功能中所有attachment组件使用相同的模板设置。)
在文档关联中新建key,并设置key的模板。然后将keyID设置给某个attachment组件的keyID属性,该组件将使用key的模板设置。
x5.2.7版本后附件组件加入了一个新的组件事件onOfficeLoaded,实现书签填充不再需要自定义officeEditor页面,只需在onOfficeLoaded事件下进行如下编程。用户使用时候只需要自定义params即可,其他代码可照写。- mainActivity.attachmentEditor_template2OfficeLoaded = function(event) {
- // 书签填充
- // 获取 officeEditor的环境
- var context = event.officeEditorContext;
-
- // 将需要填充的书签内容构造成一个数组 name为书签名,value为插入值。word文件需要有对应的书签。
- var params = [ {
- "name" : "issdate",
- "value" : $("#issdate").val()
- }, {
- "name" : "issuer",
- "value" : $("#issuer").val()
- }, {
- "name" : "context",
- "value" : $("#context").val()
- }, {
- "name" : "copysend",
- "value" : $("#copysend").val()
- }, {
- "name" : "printdate",
- "value" : $("#printdate").val()
- }, {
- "name" : "send",
- "value" : $("#send").val()
- } ];
-
- /*
- * context.execute(fn,params) fn将传递到officeEditor中执行,
- * params为fn将要用到的本页数据,在这里传递
- */
- context.execute(function() {
- var ovObj = $OV2("ov");
- for ( var i = 0; i < params.length; i++) {
- // 标签填充
- ovObj.WriteWordBookmarkInfo(params[i].name, params[i].value);
- }
- }, params);
- };
复制代码 和上面的方法不同,x5.2.6版本中附件组件没有上面提到的事件,需要自己新建一个OfficeEditor页面,具体步骤:
①在自己的功能流程中新建一个静态环节;
②在UI中新建w文件,文件选择新建的静态环节,继承自"/UI/system/service/doc/office/officeEditorDialog.w";
③在新建的w文件中的model1的onModelConstructDone事件中编写代码,实现书签的自动填充。
代码示例:- $('body').bind('officeOpened', function() {
- var data = officeEditorDialog.officeEditor.OVP.text;//text为功能页面传递的内容
- $OV2("ov").WriteWordBookmarkInfo("签发人", data.fQFR);
- $OV2("ov").WriteWordBookmarkInfo("印发日期", data.fYFRQ);
- });
复制代码 在功能页面的model1Load事件中,将新建的w文件的URL指定给对应的attachmentEditor
代码示例:- // 将自定义officeEditor的w文件url指定给对应的attachmentEditor
- justep.xbl("attachmentEditor22").setOfficeEditorUrl("/UI/demo/components/process/attachment/staticActivity2.w");
复制代码 在功能页面的attachmentEditor组件的onOpenOfficeEditor事件中编写代码传递内容。
代码示例:- //向event.data中添加json数据text,将输入框的值放入其中。
- event.data.text = {
- fQFR : $("#input3").val(),
- fZW : $("#textarea1").val()
- };
复制代码 |
|