二开案例.列表插件.列表单元格打开超链接

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

二开案例.列表插件.列表单元格打开超链接

【应用场景】列表表格单元格中的文本内容是网址,将其显示成超链接样式,且在点击单元格时,直接打开默认浏览器,跳转到指定链接。

【案例演示】采购订单,明细信息单据体,添加基础资料属性字段【淘宝链接】,引用物料的某个文本字段(该字段存放的是网址),打开采购订单列表时,将【淘宝链接】字段显示成超链接样式,且点击链接时直接打开默认浏览器,跳转到指定链接。

参考案例:https://vip.kingdee.com/article/119516731957088000

【实现步骤】

<1>编写列表插件,代码如下。

using Kingdee.BOS.Core.DynamicForm.PlugIn.Args;

using Kingdee.BOS.Core.List.PlugIn;

using Kingdee.BOS.Orm.DataEntity;

using Kingdee.BOS.Util;

using System;

using System.ComponentModel;

using System.Linq;


namespace Jac.XkDemo.BOS.Business.PlugIn

{

    /// <summary>

    /// 【列表插件】列表单元格打开超链接

    /// </summary>

    [Description("【列表插件】列表单元格打开超链接"), HotUpdate]

    public class ClickGridCellAndOpenUrlListPlugIn : AbstractListPlugIn

    {

        public override void EntryButtonCellClick(EntryButtonCellClickEventArgs e)

        {

            base.EntryButtonCellClick(e);

            //

            if (e.Row < 0)

            {

                return;

            }

            if (!e.FieldKey.EqualsIgnoreCase("F_Jac_BaseProperty"))

            {

                return;

            }

            var rowData = this.ListView.CurrentPageRowsInfo.FirstOrDefault(row => row.RowKey == e.Row);

            if (rowData == null)

            {

                return;

            }

            var material = rowData.DataRow["FMaterialId_Ref"] as DynamicObject;

            if (material == null || material["F_Jac_Text"] == null)

            {

                return;

            }

            // 生成Url地址

            var url = material["F_Jac_Text"].ToString();

            if (String.IsNullOrWhiteSpace(url))

            {

                // 超链接不存在

                return;

            }

            // 方式一:直接打开Url地址

            this.View.AddAction("ShowWebURL", url);


            // 方式二:弹窗打开Url地址

            //var webobj = new JSONObject();

            //webobj["source"] = url;

            //webobj["height"] = 600;

            //webobj["width"] = 800;

            //webobj["isweb"] = true; // true弹窗默认浏览器,false弹窗动态表单外壳

            //webobj["title"] = "百度一下";

            //this.View.AddAction("ShowKDWebbrowseForm", webobj);

            //this.View.SendDynamicFormAction(this.View);

        }

    }

}


<2>拷贝插件组件到应用站点的WebSite\Bin目录下,重启IIS。


<3>BOSIDE扩展采购订单,注册列表插件,保存元数据,开发完毕。

如果使用Python插件,注册方式如下图所示。

#【Python】【列表插件】列表单元格打开超链接

import clr
clr.AddReference('mscorlib')
clr.AddReference('Kingdee.BOS')
clr.AddReference('Kingdee.BOS.Core')
from Kingdee.BOS.Core.Bill.PlugIn import *
from Kingdee.BOS.Core.DynamicForm.PlugIn.Args import *
from Kingdee.BOS.JSON import *
from Kingdee.BOS.Util import *
from System import *

def EntryButtonCellClick(e):
    if (e.Row < 0):
        return
    if (not e.FieldKey.Equals("F_Jac_BaseProperty", StringComparison.OrdinalIgnoreCase)):
        return
    rowData = None
    for pageRow in this.ListView.CurrentPageRowsInfo:
        if pageRow.RowKey == e.Row:
            rowData = pageRow
            break
    if (rowData == None):
        return
    material = rowData.DataRow["FMaterialId_Ref"]
    if (material == None and material["F_Jac_Text"] == None):
        return
    # 生成Url地址
    url = material["F_Jac_Text"].ToString()+"?rowId="+e.Row.ToString()
    if (String.IsNullOrWhiteSpace(url)):
        return
    # 方式一:直接打开Url地址
    #this.View.AddAction("ShowWebURL", url)
    # 方式二:弹窗打开Url地址
    webobj = JSONObject()
    webobj["source"] = url
    webobj["height"] = 600
    webobj["width"] = 800
    webobj["isweb"] = True
    webobj["title"] = "百度一下"
    this.View.AddAction("ShowKDWebbrowseForm", webobj)
    this.View.SendDynamicFormAction(this.View)



现在可以登录业务站点,打开采购订单,检验一下插件的控制效果啦。



【参考资料】

【二开案例.单据插件.表格单元格打开超链接】https://vip.kingdee.com/article/119516731957088000















【金蝶云星空BOS二次开发案例演示】https://vip.kingdee.com/article/94751030918525696

二开案例.列表插件.列表单元格打开超链接

【应用场景】列表表格单元格中的文本内容是网址,将其显示成超链接样式,且在点击单元格时,直接打开默认浏览器,跳转到指定链接。【案例演...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息