移动附件V 7.5_下载篇

一、概述:
为清楚讲解移动附件的相关功能,这里将分为:控件介绍篇、上传篇、V7.5下载篇、V7.5删除篇、V7.5控制篇等5个篇幅。
本篇将详细介绍如下内容:
1. 附件控件、附件字段如何加载数据
2. 附件控件、附件字段如何下载附件
3. 通过指令下载指定的文件
二、适用版本:
适用于V 7.5及以上
三、移动附件下载的开发介绍
3.1. V7.5前的版本,请参考:
https://vip.kingdee.com/article/150753
3.2. V7.5及以上版本的下载开发讲解:
3.2.1. 附件为PC端单据列表-》选项-》附件中的数据(包括单据头和单据体),可通过加载附件时给定FileId,就可以点击对应附件直接下载(注:不用像V6.X那样在加载页面时在临时目录中创建下载文件)。
这里结合上一篇《移动附件_上传篇》,进行附件的加载和下载的插件开发。
涉及到的知识点包括:
(1)如何根据单据获取附件数据。
//获取附件数据,
// formId关联单据的formid
// interId关联单据的主键ID
// entryKey 关联的单据体标识,如果是关联单据头则为“ ”
// entryInterId 关联的单据体主键ID,如果是单据头则为 -1;
var condition = string.Format("FBILLTYPE = '{0}' AND FINTERID = '{1}' AND FENTRYKEY='{2}' AND FENTRYINTERID='{3}'",formId, interId, entryKey, entryInterId);
var filter = OQLFilter.CreateHeadEntityFilter(condition);
var attachments = BusinessDataServiceHelper.Load(this.Context, Kingdee.BOS.Core.FormIdConst.BOS_Attachment, null, filter);
(2)如何组装数据。
var fileList = new List<Kingdee.BOS.Mobile.Metadata.ControlDataEntity.File>();
foreach (var dyn in attachments)
{
var file = new Kingdee.BOS.Mobile.Metadata.ControlDataEntity.File()
{
FileID = dyn["Id"].ToString(),//下载的关键依据
Name = dyn["AttachmentName"].ToString(),
Type = dyn["ExtName"].ToString()
};
fileList.Add(file);
}
var imgData = new AccessoryData()
{
FormId = formId,
BillId = interId,
Data = fileList
};
this.View.GetControl("F_PAEZ_FileUpdate").SetValue(imgData.ToJsonString());
//如果是附件字段,可以如下赋值
//this.View.Model.SetValue(“附件字段标识”,imgData.ToJsonString());
完整代码如下,供大家参考:
using System;
using System.Linq;
using System.Collections.Generic;
using Kingdee.BOS.Mobile.Metadata.ControlDataEntity;
using Kingdee.BOS.Util;
using Kingdee.BOS.Mobile.PlugIn.Args;
using Kingdee.BOS.Mobile.PlugIn.ControlModel;
using System.Web;
using Kingdee.BOS.Core.Metadata;
using Kingdee.BOS.ServiceHelper;
using Kingdee.BOS.Core;
using Kingdee.BOS.Orm.DataEntity;
using Kingdee.BOS.FileServer.Core;
using Kingdee.BOS.FileServer.ProxyService;
using Kingdee.BOS.FileServer.Core.Object;
using Kingdee.BOS.Mobile.Metadata;
using Kingdee.BOS.Orm;
using Kingdee.BOS.Core.DynamicForm;
using Kingdee.BOS.Core.DynamicForm.PlugIn.Args;
using Kingdee.BOS.Mobile.PlugIn;
namespace BOS.Debug.MobilePlugIn
{
//
/// <summary>
/// 移动表单继承:AbstractMobilePlugin, 移动单据继承:AbstractMobileBillPlugin
/// </summary>
[System.ComponentModel.Description("移动单据表单插件--附件相关功能DEMO")]
public class MobileBillPlugIn_AttachDemo : AbstractMobileBillPlugin
{
public override void AfterBindData(EventArgs e)
{
LoadAttachments();
}
/// <summary>
/// 加载附件
/// </summary>
private void LoadAttachments()
{
var formId = this.View.GetFormId(); //关联单据的formid
var interI
移动附件V 7.5_下载篇
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。



