22、列表插件,单据列表颜色,OnFormatRowConditions原创
金蝶云社区-林荫大道cc
林荫大道cc
19人赞赏了该文章 7934次浏览 未经作者许可,禁止转载编辑于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;

image.png




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



image.png



总目录链接

https://vip.kingdee.com/article/64993872014591232




赞 19