电脑桌面
添加蚂蚁七词文库到电脑桌面
安装后可以在桌面快捷访问

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

来源:金蝶云社区作者:金蝶2024-09-234

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

【应用场景】需要接管系统生成的下载链接,经过二次加工后,产生新的下载链接重新输出到下载界面

【案例演示】采购订单列表,按列表引出数据,在弹出的文件下载界面,通过表单插件修改下载地址和下载链接的标题。

注意】此文所用方案涉及到重写标准产品的插件,存在一定的兼容性风险,请务必知悉并认真评估此风险项。

【实现步骤】

<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;

   

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

【应用场景】需要接管系统生成的下载链接,经过二次加工后,产生新的下载链接重新输出到下载界面【案例演示】采购订单列表,按列表引出数据...
点击下载文档文档为doc格式

声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。

已经是第一篇
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息
QQ群
  • 答案:my7c点击这里加入QQ群
支持邮箱
微信
  • 微信