即时库存明细显示到期天数并做颜色标记

一、【需求问题】
1、想要实现即时库存明细中显示到期天数字段的值。将该字段在BOS中放出可见性,同时设置字段名后,在即时库存明细中该字段值依然为空
2、到期天数的计算同保质期预警报表的计算逻辑,到期天数 = 有效期至 - 当前日期的天数差
二、【功能分析】
1、即时库存明细中"到期天数"目前未设置实体字段名,为虚拟字段,虚拟字段即时修改了可见性页面业务不会进行显示
2、即时库存明细列表返回数据并未针对该字段做赋值处理,所以映射实体字段名后,字段显示值为空
3、需要二开列表插件,在列表显示时进行时动态计算,格式化处理
【实现】
1、"到期天数"映射实体字段名FExpiryDays, 设置列表可见性
2、列表插件重写格式化方法FormatCellValue,动态计算到期天数
3、重写OnFormatRowCondition方法,颜色格式化
import clr
clr.AddReference("System")
clr.AddReference("System.Core")
clr.AddReference("Kingdee.BOS")
clr.AddReference("Kingdee.BOS.Core")
clr.AddReference("Kingdee.BOS.DataEntity")、
from System import *
from System import StringComparison
from Kingdee.BOS.Core import *
from Kingdee.BOS.Core.Metadata import *
from Kingdee.BOS.Orm.DataEntity import *
from Kingdee.BOS.Core.List.PlugIn import *
from Kingdee.BOS.Core.List.PlugIn.Args import *
def FormatCellValue(e):
if e.Header.Key.Equals("FExpiryDays", StringComparison.OrdinalIgnoreCase):
expiryDate = Convert.ToDateTime(e.DataRow["FExpiryDate"])
if Convert.ToString(expiryDate) != "0001-01-01 00:00:00":
systemDate = DateTime.Now
e.FormateValue = Convert.ToString((expiryDate - systemDate).Days + 1)
def OnFormatRowConditions(args):
if args.DataRow.DynamicObject.DynamicObjectType.Properties.ContainsKey("FExpiryDays") == False:
return
if args.DataRow.DynamicObject.DynamicObjectType.Properties.ContainsKey("FExpiryDate") == False:
return
expiryDate = Convert.ToDateTime(args.DataRow["FExpiryDate"])
if Co即时库存明细显示到期天数并做颜色标记
一、【需求问题】1、想要实现即时库存明细中显示到期天数字段的值。将该字段在BOS中放出可见性,同时设置字段名后,在即时库存明细中该字段...
点击下载文档文档为doc格式
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。
上一篇
已经是第一篇



