附件字段如何删除和引用某个附件

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

附件字段如何删除和引用某个附件

关键词:附件字段、删除、引用

一、需求

       某采购申请单分录中的附件字段第一行有两个附件,点击“附件引用”按钮,把第一行附件字段第2个附件删除,并把删除的附件,添加到第二行分录中。

image.webp

二、思路与方案

     (1)第一步

        怎么把分录第一行里的其中一个附件删除掉。反过来思考,可以把保留下来的附件保存下来即可。参考标准分录附件字段弹窗之后的回调看看分录里的附件字段如何进行赋值,重点是要执行控件数据的刷新。

 this.getView().updateView("kdec_attachmentfield",0);

     (2)第二步

         怎么把第一行分录删除的附件保存到第二行分录的附件字段中,可以用第一步的实现方式,也可以直接通过如下代码往附件字段中添加新的附件。

DynamicObjectCollection attcols2 = (DynamicObjectCollection)this.getModel().getValue("kdec_attachmentfield", 1);
attcols2.addNew().set("fbasedataid",atttemp2.get("fbasedataid"));

三、实现过程

public class ReqAttBillPlugin extends AbstractBillPlugIn implements Plugin {
    @Override
    public void registerListener(EventObject e) {
        Toolbar toolbar = this.getView().getControl("advcontoolbarap");
        toolbar.addItemClickListener(this);
        super.registerListener(e);
    }

    @Override
    public void itemClick(ItemClickEvent evt) {
        int count = this.getModel().getEntryRowCount("kdec_reqentryentity");//两行分录
        if (evt.getItemKey().equals("kdec_attreference")&&count>1){
            AttachmentEdit attachmentEdit = getControl("kdec_attachmentfield");
            DynamicObjectCollection attcols1 = (DynamicObjectCollection) this.getModel().getValue("kdec_attachmentfield", 0);
            if (attcols1.size()>1){//两个附件
                //第一个附件
                DynamicObject atttemp1 = attcols1.get(0);
                ArrayList<Object> ids = new ArrayList<>();
                ids.add(atttemp1.getDynamicObject("fbasedataid").getPkValue());
                //附件字段直接赋值,附件实体对象转成数组
                this.getModel().setValue("kdec_attachmentfield",ids.toArray(),0);
                //第二个附件
                DynamicObject atttemp2 = attcols1.get(1);
                //附件字段添加新的附件
                DynamicObjectCollection attcols2 = (DynamicObjectCollection)this.getModel().getValue("kdec_attachmentfield", 1);
                attcols2.addNew().set("fbasedataid",atttemp2.get("fbasedataid"));
                this.getView().updateView("kdec_attachmentfield",0);
                this.getView().updateView("kdec_attachmentfield",1);
            }
        }
        super.itemClick(evt);
    }
}

四、效果图

      本来第一行有两个附件,点击附件引用之后,第一行里的一个附件被赋值到了第二行附件字段中。

image.webp

五、开发环境版本

V6.0.1

六、参考资料

开发平台

学习成长中心

SDK接口

开发必备100个小知识

开发案例库

七、附件

元数据如下。

meta.zip


附件字段如何删除和引用某个附件

关键词:附件字段、删除、引用一、需求 某采购申请单分录中的附件字段第一行有两个附件,点击“附件引用”按钮,把第一行附件字段...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息