二开实现控制单据体行背景颜色(包括C#和Python脚本示例)
【应用场景】
为了数据看起来更清晰,在单据体根据条件设置行背景色。
【案例演示】
销售订单,控制计价数量大于20时,设置行背景色为黄色。
【实现步骤】
<1>编写表单插件(C#插件和Python插件二者选其一即可),代码如下。
// C# 插件代码示例 using Kingdee.BOS.Core.Bill.PlugIn; using Kingdee.BOS.Core.DynamicForm.PlugIn.Args; using Kingdee.BOS.Core.DynamicForm.PlugIn.ControlModel; using Kingdee.BOS.Util; using System.Collections.Generic; using System.ComponentModel; namespace DemoPlugin { [HotUpdate, Description("表单插件,设置单据体行颜色")] public class SetRowColorPlugin : AbstractBillPlugIn { public override void AfterBindData(System.EventArgs e) { base.AfterBindData(e); // V1 和 V2 任选其一都可使用,建议用 V2 //SetBackColorV1(); SetBackColorV2(); } private void SetBackColorV1() { var entity = this.View.BusinessInfo.GetEntity("FSaleOrderEntry"); var entrys = this.View.Model.GetEntityDataObject(entity); var grid = this.View.GetControl(entity.Key) as EntryGrid; foreach (var entry in entrys) { var rowIndex = this.View.Model.GetRowIndex(entity, entry); if (ObjectUtils.ToDecimal(entry["PriceUnitQty"], 0) > 20) { foreach (var field in entity.Fields) { grid.SetBackcolor(field.Key, "#FFFF00", rowIndex); } } } } private void SetBackColorV2() { var entity = this.View.BusinessInfo.GetEntity("FSaleOrderEntry"); var entrys = this.View.Model.GetEntityDataObject(entity); var grid = this.View.GetControl(entity.Key) as EntryGrid; var colorRows = new List<KeyValuePair<int, string>>(); foreach (var entry in entrys) { var rowIndex = this.View.Model.GetRowIndex(entity, entry); if (ObjectUtils.ToDecimal(entry["PriceUnitQty"], 0) > 20) { colorRows.Add(new KeyValuePair<int, string>(rowIndex, "#FFFF00")); } } grid.SetRowBackcolor(colorRows); } } }
# Python插件代码示例 import clr clr.AddReference('mscorlib') from System import * def AfterBindData(e): SetBackColor() def SetBackColor(): entity = this.View.BusinessInfo.GetEntity("FSaleOrderEntry") entrys = this.View.Model.GetEntityDataObject(entity) grid = this.View.GetControl(entity.Key) for entry in entrys: rowIndex = this.View.Model.GetRowIndex(entity, entry) if int(entry["PriceUnitQty"]) > 20: for field in entity.Fields: grid.SetBackcolor(field.Key, "#FFFF00", rowIndex)
<2>如果用的是C#插件,需要拷贝插件组件到应用站点的WebSite\Bin目录下,重启IIS。
<3>BOSIDE扩展销售订单,注册表单插件(C#插件和Python插件二者选其一即可),保存元数据,开发完毕。
【功能验证】
<1>登录业务站点,打开销售订单编辑界面,点击保存菜单,即可通过VS调试或者日志文件观察到最新的服务插件执行顺序。
【参考资料】
【金蝶云星空BOS二次开发案例演示】
https://vip.kingdee.com/article/94751030918525696
二开实现控制单据体行背景颜色(包括C#和Python脚本示例)
【应用场景】为了数据看起来更清晰,在单据体根据条件设置行背景色。【案例演示】销售订单,控制计价数量大于20时,设置行背景色为黄色。【...
点击下载文档
本文2024-09-23 04:02:02发表“云星空知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-k3cloud-162681.html
您需要登录后才可以发表评论, 登录登录 或者 注册
最新文档
热门文章