22、列表插件,单据列表颜色,OnFormatRowConditions原创
22人赞赏了该文章
1万次浏览
编辑于2020年07月06日 15:37:21
业务场景:在销售出库单,判断单据日期与当前时间比较,改变颜色,预警
1. 如果销售出库日期和当前日期相差10天内,未审核的单据颜色不变,
2. 如果销售出库日期和当前日期相差10天和20之间,未审核的单据颜色变成浅黄
3. 如果销售出库日期和当前日期相差20天以上,未审核的单据颜色变成橘红
1、打开VS,新建一个类库,具体可以参考21.1 ,1-4步
1.1、添加引用 System.Drawing
1.2、
//本节新增使用 using Kingdee.BOS.Core.Metadata; using System.Drawing;
2、
using System; using System.Collections.Generic; using System.Linq; using System.Text; using Kingdee.BOS; using Kingdee.BOS.Core.Bill.PlugIn; using System.ComponentModel; using Kingdee.BOS.Core.List.PlugIn; using Kingdee.BOS.Core.List; //本节新增使用 using Kingdee.BOS.Core.Metadata; using System.Drawing; namespace Kingdee.Bos.FormatRowCondition { [Description("单据颜色")] [Kingdee.BOS.Util.HotUpdate] public class ClassName:AbstractListPlugIn { public override void OnFormatRowConditions(BOS.Core.List.PlugIn.Args.ListFormatConditionArgs args) { base.OnFormatRowConditions(args); //为判断日期,需要设置2个日期 DateTime dt1;//单据日期 DateTime dt2 = Convert.ToDateTime(DateTime.Now);//当前系统时间 TimeSpan ts; //2个日期相减 int sub; //定义FormatCondition 类型字段 FormatCondition fc = new FormatCondition(); //打开单据的时候,触发 fc.ApplayRow = true; //加载后,如果,单据状态FDOCUMENTSTATUS字段,不等于审核C,即未审核单据 if(args.DataRow["FDOCUMENTSTATUS"].ToString()!="C") { //取单据日期,转换成日期格式,赋值给dt1 dt1 = Convert.ToDateTime(args.DataRow["FDate"].ToString()); //2个日期相减 ts = dt2 - dt1; //相差多少天 sub = ts.Days; if(sub >10 && sub <20) { //黄色 fc.BackColor = ColorTranslator.ToHtml(System.Drawing.Color.FromArgb(255, 255, 187)); } if(sub >=20) { //橙色 fc.BackColor = ColorTranslator.ToHtml(System.Drawing.Color.FromArgb(255, 64, 64)); } args.FormatConditions.Add(fc); } } } }
3、重新生成dll
4、重新打开销售出库单列表,今天日期 2020-7-6
总目录链接
https://vip.kingdee.com/article/64993872014591232
Kingdee.Bos.FormatRowCondition …(14.75KB)
赞 22
22人点赞
还没有人点赞,快来当第一个点赞的人吧!
打赏
0人打赏
还没有人打赏,快来当第一个打赏的人吧!
推荐阅读