起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7707|回复: 6

新附件组件(attachmentEditor2)

  [复制链接]

88

主题

9507

帖子

5135

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
5135
QQ
发表于 2013-11-12 09:12:41 | 显示全部楼层 |阅读模式
从x5.2.6版本开始,系统提供了新的附件组件attachmentEditor2

新附件改变的细节
1. 绑定的data没有记录的时候附件不显示(符合自动感知特点)

2. style="height:auto;" 附件组件的高度设置height为auto可以自动长高

3. 同时原来的single模式 去掉 增加了limit-size属性 可以设置为1 就是原来single模式
当上传文件的数量达到limit-size的时候,自动隐藏上传和从模版新建
删除文件后 自动出现上传和从模版新建

4. 固定高度的时候 新上传的文件 自动在最后面,自动滚动到最下端
表头固定不动 (上传文件和从模版新建),只有内容滚动

新附件的使用方式
1、动作相关的,通过事件搞定,比如点击后干什么

2、附件的结构不满足要求,通过写onRender事件,用自己的代码控制附件的结构,比如:要把文件名显示成图片

3、结构没问题,需要改变长宽、颜色、选中行的颜色等,通过修改css就能搞定,比如修改行高、列宽等
匿名  发表于 2014-8-18 16:54:42
我使用了在w文件中使用了attachmentEditor2怎么绑定的数据表中没有添加附件,这个空间仍然显示呢,需要什么设置吗

88

主题

9507

帖子

5135

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
5135
QQ
 楼主| 发表于 2013-11-12 09:18:18 | 显示全部楼层

模板的使用

在新附件中,不再使用域,改为使用书签

①新建word文档,在想要自动填充的位置插入书签。
②将word文档上传至文档中心。
③在协同平台-文档管理-文档关联中选择相应的功能-设置文档关联-新增模板-保存。(该方法使功能中所有attachment组件使用相同的模板设置。)
在文档关联中新建key,并设置key的模板。然后将keyID设置给某个attachment组件的keyID属性,该组件将使用key的模板设置。

x5.2.7版本后附件组件加入了一个新的组件事件onOfficeLoaded,实现书签填充不再需要自定义officeEditor页面,只需在onOfficeLoaded事件下进行如下编程。用户使用时候只需要自定义params即可,其他代码可照写。
  1. mainActivity.attachmentEditor_template2OfficeLoaded = function(event) {
  2.      // 书签填充
  3.      // 获取 officeEditor的环境
  4.      var context = event.officeEditorContext;

  5.      // 将需要填充的书签内容构造成一个数组  name为书签名,value为插入值。word文件需要有对应的书签。
  6.      var params = [ {
  7.         "name" : "issdate",
  8.         "value" : $("#issdate").val()
  9.      }, {
  10.         "name" : "issuer",
  11.         "value" : $("#issuer").val()
  12.      }, {
  13.         "name" : "context",
  14.         "value" : $("#context").val()
  15.      }, {
  16.         "name" : "copysend",
  17.         "value" : $("#copysend").val()
  18.      }, {
  19.         "name" : "printdate",
  20.         "value" : $("#printdate").val()
  21.      }, {
  22.         "name" : "send",
  23.         "value" : $("#send").val()
  24.      } ];

  25.      /*
  26.       * context.execute(fn,params) fn将传递到officeEditor中执行,
  27.       * params为fn将要用到的本页数据,在这里传递
  28.       */
  29.      context.execute(function() {
  30.         var ovObj = $OV2("ov");
  31.         for ( var i = 0; i < params.length; i++) {
  32.              // 标签填充
  33.              ovObj.WriteWordBookmarkInfo(params[i].name, params[i].value);
  34.         }
  35.      }, params);
  36. };
复制代码
和上面的方法不同,x5.2.6版本中附件组件没有上面提到的事件,需要自己新建一个OfficeEditor页面,具体步骤:
①在自己的功能流程中新建一个静态环节;
②在UI中新建w文件,文件选择新建的静态环节,继承自"/UI/system/service/doc/office/officeEditorDialog.w";
③在新建的w文件中的model1的onModelConstructDone事件中编写代码,实现书签的自动填充。
代码示例:
  1. $('body').bind('officeOpened', function() {
  2.     var data = officeEditorDialog.officeEditor.OVP.text;//text为功能页面传递的内容
  3.     $OV2("ov").WriteWordBookmarkInfo("签发人", data.fQFR);
  4.     $OV2("ov").WriteWordBookmarkInfo("印发日期", data.fYFRQ);
  5. });
复制代码
在功能页面的model1Load事件中,将新建的w文件的URL指定给对应的attachmentEditor
代码示例:
  1. // 将自定义officeEditor的w文件url指定给对应的attachmentEditor
  2. justep.xbl("attachmentEditor22").setOfficeEditorUrl("/UI/demo/components/process/attachment/staticActivity2.w");
复制代码
在功能页面的attachmentEditor组件的onOpenOfficeEditor事件中编写代码传递内容。
代码示例:
  1. //向event.data中添加json数据text,将输入框的值放入其中。
  2. event.data.text = {
  3.     fQFR : $("#input3").val(),
  4.     fZW : $("#textarea1").val()
  5. };
复制代码
远程的联系方法 QQ 728094812。添加好友时,需要填写论坛账号
发远程时同时也发一下帖子的地址,方便了解要解决的问题

如按照该方法解决,请及时跟帖,便于版主结贴

23

主题

150

帖子

737

积分

高级会员

Rank: 4

积分
737
发表于 2013-12-25 14:45:39 | 显示全部楼层
如何删除书签或判断书签是否有值?

88

主题

9507

帖子

5135

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
5135
QQ
 楼主| 发表于 2014-7-8 16:11:08 | 显示全部楼层
控制同名文档不能上传

注意runtime属性必须设置为html4

mainActivity.attachmentEditorMultiFileSelected = function(event){
                var value = justep.xbl('dAttachment_Editor_Multi').getValue("fAttachment");
                if(value){
                        var data = JSON.parse(value);
                        for(var i =0 ;i<data.length ; i++){
                                if(data.docName == event.fileList){
                                        event.cancel = true;
                                        alert("不能上次同名的文件");
                                        break;
                                }
                        }
                }        
};
远程的联系方法 QQ 728094812。添加好友时,需要填写论坛账号
发远程时同时也发一下帖子的地址,方便了解要解决的问题

如按照该方法解决,请及时跟帖,便于版主结贴

126

主题

349

帖子

1030

积分

金牌会员

Rank: 6Rank: 6

积分
1030
QQ
发表于 2014-8-18 16:57:05 | 显示全部楼层
我在w文件中使用了attachmentEditor2怎么绑定的数据表中没有添加附件,这个空间仍然显示呢,需要设置控件的属性吗

70

主题

193

帖子

944

积分

高级会员

Rank: 4

积分
944
QQ
发表于 2015-6-17 13:58:04 | 显示全部楼层
我想问一下,从模板新建的时候,选择模板之后成文之后,在表单上面显示不出来是什么问题啊
高级模式
B Color Image Link Quote Code Smilies

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2024-11-21 16:48 , Processed in 0.053706 second(s), 24 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表