想要显示“附件下载次数”,看这里

很多小伙伴在后台给小编私信,希望可以通过案例对附件下载次数的开发进行详细的说明。这不,宠粉的小编带着案例走来了。
1 需求背景
在单据中,附件上传并保存到单据的附件面板。用户点下载后,需要在附件面板上显示下载的次数。如下图所示:

下载次数展示
2 实现方案
1、提交单据时,提交的操作插件需要初始化下载次数为0。
由于苍穹平台没有在文件服务器上直接提供文件被下载的次数接口。因此,需要初始化下载次数,将信息保存在备注内容之前,实现代码如下所示:
1//提交的操作插件-
2public class OrderOpPlugin extends AbstractOperationServicePlugIn {
3 @Override
4 public void beginOperationTransaction(BeginOperationTransactionArgs e) {
5 //提交之后,初始化下载次数
6 if (e.getOperationKey().equals("submit")) {
7 DynamicObject[] dataEntities2 = e.getDataEntities();
8 for (DynamicObject dynamicObject : dataEntities2) {
9 Object pkValue = dynamicObject.getPkValue();
10 String name = dynamicObject.getDataEntityType().getName();
11 List<Map<String, Object>> attachments = AttachmentServiceHelper.getAttachments(name, pkValue, "attachmentpanel");
12 for (Map<String, Object> map : attachments) {
13 String description = (String) map.get("description");
14 String uid = (String) map.get("uid");
15 /**
16 * 初始化:添加下载次数为备注的前缀信息
17 * 注意如果有撤销操作,则需要在撤销时重置删掉下载次数的备注前缀
18 */
19 AttachmentServiceHelper.mark(uid, "|下载次数:0|\t"+ description);
20 }
21 }
22 }
23 super.beginOperationTransaction(e);
24 }
25}2、附件被下载时需要动态更新下载次数。
附件被下载时,会通过监听附件的下载操作来获取下载次数。动态更新对应附件的下载次数=原下载次数+1。实现代码如下所示:
1//表单插件
2 public class OrderAttamentPlugin extends AbstractBillPlugIn implements AttachmentDownloadListener{
3//(1)添加下载的监听事件
4 @Override
5 public void registerListener(EventObject e) {
6 AttachmentPanel attachment = this.getView().getControl("attachmentpanel");
7 // 下载监听
8 attachment.addDownloadListener(this);
9 super.registerListener(e);
10 }
11//(2)下载后事件中更新下载的次数
12 @Override
13 public void attachmentAfterDownload(AttachmentDownLoadEvent evt) {
14 String billstatus = (String) this.getModel().getValue("billstatus");
15 //提交状态才更新下载次数
16 if (billstatus.equals("B")) {
17 L想要显示“附件下载次数”,看这里
很多小伙伴在后台给小编私信,希望可以通过案例对附件下载次数的开发进行详细的说明。这不,宠粉的小编带着案例走来了。1 需求背景在单据...
点击下载文档文档为doc格式
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。
上一篇
已经是第一篇



