单据体附件字段显示附件名称

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

单据体附件字段显示附件名称

1 业务场景

分录上的附件,需要直接显示附件名称的场景。

2 解决方案

通过二开的方式实现。

在afterCreateNewData和propertyChange事件中,获取到分录附件名,然后展示到文本字段中。

3 操作步骤

代码示例

public class ShowAttachmentNameTest extends AbstractFormPlugin implements UploadListener {


    public static final String FIELD_ATTACH = "my_attfield_entry";
    public static final String ENTRY_ID = "my_entryentity";
    public static final String FIELD_ATTACH_NAME = "attname";

    @Override
    public void afterUpload(UploadEvent evt) {
        UploadListener.super.afterUpload(evt);
    }

    @Override
    public void afterCreateNewData(EventObject e) {
        DynamicObjectCollection collection = this.getModel().getEntryEntity(ENTRY_ID);
        if (CollectionUtils.isEmpty(collection)) {
            return;
        }
        DynamicObject entryDyn = collection.get(0);
        DynamicObjectCollection attachs = (DynamicObjectCollection) entryDyn.get(FIELD_ATTACH);
        String attnames = genAttachName(attachs);
        this.getModel().setValue(FIELD_ATTACH_NAME, attnames, 0);
    }

    @Override
    public void propertyChanged(PropertyChangedArgs e) {
        if (!e.getProperty().getName().equals(FIELD_ATTACH)) {
            return;
        }
        ChangeData[] changeSet = e.getChangeSet();
        DynamicObjectCollection attachs = (DynamicObjectCollection) changeSet[0].getNewValue();
        String attnames = genAttachName(attachs);
        this.getModel().setValue(FIELD_ATTACH_NAME, attnames, 0);
    }

    private String genAttachName(DynamicObjectCollection attachs) {
        StringBuilder attnames = new StringBuilder();
        for (DynamicObject attach : attachs) {
            DynamicObject att = (DynamicObject) attach.get("fbasedataid");
            Object name = att.get("name");
            attnames.append(name).append("、");
        }
        if (attnames.length() > 0) {
            attnames.deleteCharAt(attnames.length() - 1);
        }
        return attnames.toString();
    }
}


单据体附件字段显示附件名称

1 业务场景分录上的附件,需要直接显示附件名称的场景。2 解决方案通过二开的方式实现。在afterCreateNewData和propertyChange事件中,获...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息