二开案例.表单插件.修改文件下载链接的链接地址和标题

【应用场景】需要接管系统生成的下载链接,经过二次加工后,产生新的下载链接重新输出到下载界面
【案例演示】采购订单列表,按列表引出数据,在弹出的文件下载界面,通过表单插件修改下载地址和下载链接的标题。

【注意】此文所用方案涉及到重写标准产品的插件,存在一定的兼容性风险,请务必知悉并认真评估此风险项。
【实现步骤】
<1>编写表单插件,代码如下。
using Kingdee.BOS;
using Kingdee.BOS.Business.DynamicForm.PlugIn;
using Kingdee.BOS.Core.DynamicForm.PlugIn.ControlModel;
using Kingdee.BOS.Core.Metadata.ControlElement;
using Kingdee.BOS.JSON;
using Kingdee.BOS.ServiceHelper.FileServer;
using Kingdee.BOS.Util;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Reflection;
using System.Web;
namespace Jac.XkDemo.BOS.Business.PlugIn
{
/// <summary>
/// 【表单插件】修改文件下载链接的链接地址和标题
/// </summary>
[Description("【表单插件】修改文件下载链接的链接地址和标题"), HotUpdate]
public class SetDownloadLinkFormPlugIn : FileDownLoadPlugIn
{
public override void AfterBindData(EventArgs e)
{
if (FileServerHelper.GetIsFlowControlled(this.Context))
{
this.View.ShowErrMessage("流量存储已用尽,请联系销售人员进行购买。"); // 文件服务流量控制。
return;
}
if (this.View.OpenParameter.GetCustomParameters().ContainsKey("urls"))
{
// 多个下载链接
InitLinkList();
return;
}
// 单个下载链接
var url = this.View.OpenParameter.GetCustomParameter("url");
if (!url.IsNullOrEmptyOrWhiteSpace())
{
//var pathurl = HttpUtility.UrlPathEncode(GetDownLoadUrl(url.ToString()));
var pathurl = HttpUtility.UrlPathEncode(url.ToString());
pathurl = pathurl.Replace("+", "%20");
// TODO
// 可以在此处干预下载链接
pathurl = pathurl + "?code=abc";
// TODO
if (!KDConfiguration.Current.IsFileSaveAs)
{
//非强制点击链接另存模式时,继续走直接url打开模式
this.View.GetControl("FDownLoad").SetCustomPropertyValue("url", pathurl);
this.View.GetControl("FDownLoad").SetCustomPropertyValue("IsFileUrl", true);
this.View.GetControl("FDownLoad").InvokeControlMethod("UpdateRihgtMenu", null);
}
else
{
//直接点击调的另存的模式,强制下载
this.View.GetControl("FDownLoad").SetCustomPropertyValue("IsClickSave", true);
this.View.GetControl("FDownLoad").SetCustomPropertyValue("ClickSaveUrl", pathurl);
}
}
// TODO
// 设置下载链接标题
this.View.GetControl("FDownLoad").SetCustomPropertyValue("Text", "亲点我下载呀~~");
// TODO
}
/// <summary>
/// 设置多文件下载链接
/// </summary>
private void InitLinkList()
{
var btnArray = new JSONArray();
var filePaths = (List<string>)this.View.OpenParameter.GetCustomParameter("urls");
var linkLeft = 20;
var linkTop = 5;
二开案例.表单插件.修改文件下载链接的链接地址和标题
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。



