电脑桌面
添加蚂蚁七词文库到电脑桌面
安装后可以在桌面快捷访问

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

来源:金蝶云社区作者:金蝶2024-09-2328

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

一、【需求问题】

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

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

一、【需求问题】1、想要实现即时库存明细中显示到期天数字段的值。将该字段在BOS中放出可见性,同时设置字段名后,在即时库存明细中该字段...
点击下载文档文档为doc格式

声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。

已经是第一篇
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息
QQ群
  • 答案:my7c点击这里加入QQ群
支持邮箱
微信
  • 微信