列表插件:动态创建列给列赋值,并按动态列格式化单元格颜色
一、概述
本篇主要介绍列表通过插件的方式动态创建列并给列赋值,同时按动态列格式化单元格颜色。。
二、详情
2.1 以【出差申请单列表】例,动态增加一列【随机码】,如果随机码是 偶数 则当前单元格为 蓝色
参考代码如下:
using Kingdee.BOS.Core.List.PlugIn; using Kingdee.BOS.Core.List.PlugIn.Args; using System; using System.Collections.Generic; using System.Linq; using Kingdee.BOS.Core.Metadata; using Kingdee.BOS; namespace BOS.Debug.PCPlugIn { /// <summary> /// 列表插件 /// </summary> [System.ComponentModel.Description("列表插件--动态列 & 标记列颜色")] public class ListPlugIn_DynCol : AbstractListPlugIn { //动态列的值,key=内码;value=动态列值 Dictionary<string, int> dic = new Dictionary<string, int>(); //动态添加列 public override void CreateListHeader(CreateListHeaderEventArgs e) { var header = e.ListHeader.AddChild();//将动态列放在列表的最后 //header = e.ListHeader.AddChild(0);//将动态列放在列表的指定位置 header.Key = "F_Dyn_Col"; header.Caption = new Kingdee.BOS.LocaleValue("动态列(随机码)"); header.FieldName = "F_Dyn_Col"; header.ColType = SqlStorageType.Sqlnvarchar; header.Width = 200; header.Visible = true; header.ColIndex = e.ListHeader.GetChilds().Max(o => o.ColIndex) + 1; } public override void FormatCellValue(FormatCellValueArgs args) { base.FormatCellValue(args); if (args.Header.Key.Equals("F_Dyn_Col", StringComparison.OrdinalIgnoreCase)) { var pkid = args.DataRow["fid"].ToString(); var m = Guid.NewGuid().GetHashCode(); var formatVal=new Random(m).Next(10000); //赋值 args.FormateValue = formatVal.ToString(); dic[pkid] = formatVal; } } public override void OnFormatRowConditions(ListFormatConditionArgs args) { //按当前内码取对应动态列值 var pkid = args.DataRow["fid"].ToString(); var cellVal = dic[pkid]; if (cellVal%2==0) { //偶数随机码标 蓝色 var fc = new FormatCondition(); fc.Key = "F_Dyn_Col";//未指定Key,则是设置整行的背景色 fc.BackColor = "#62a8f1"; args.FormatConditions.Add(fc); } } } }
列表插件:动态创建列给列赋值,并按动态列格式化单元格颜色
一、概述本篇主要介绍列表通过插件的方式动态创建列并给列赋值,同时按动态列格式化单元格颜色。。二、详情2.1 以【出差申请单列表】例,...
点击下载文档
本文2024-09-23 03:57:26发表“云星空知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-k3cloud-162185.html
您需要登录后才可以发表评论, 登录登录 或者 注册
最新文档
热门文章