以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]关于判断日期并给指定单元格上色 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=178170) |
-- 作者:lasn -- 发布时间:2022/6/21 15:28:00 -- [求助]关于判断日期并给指定单元格上色 1、已在表的自定义格式中设置远期,近期,到期三个样式 2、根据表中“服务结束时间”到今天的值判断,>30天是远期,<=30天并且>=0天是近期,<0天的到期 3、根据结果让“服务结束时间”变成指到的背景色 4、在表的Drawcell事件中建立以下代码 Dim t As TimeSpan t = Date.Today - CDate(CurrentTable.Current("服务结束时间")) If t.TotalDays > 30 Then e.style = "远期" ElseIf t.Totaldays <= 30 And t.Totaldays >= 0 Then e.Style = "近期" ElseIf t.Totaldays < 0 Then e.style = "到期" End If 这是代码,执行后全行都变了,而且在增加数据,修改数据时,颜色会变来变去的。 请老师指导一下,非常感谢。 [此贴子已经被作者于2022/6/21 15:29:12编辑过]
|
-- 作者:有点蓝 -- 发布时间:2022/6/21 15:31:00 -- 看看:http://www.foxtable.com/webhelp/topics/2925.htm if e.row.isnull("服务结束时间") = false then
Dim t As TimeSpan t = Date.Today - CDate(e.row("服务结束时间")) If t.TotalDays > 30 Then e.style = "远期" ElseIf t.Totaldays <= 30 And t.Totaldays >= 0 Then e.Style = "近期" ElseIf t.Totaldays < 0 Then e.style = "到期" End If endif [此贴子已经被作者于2022/6/21 15:32:57编辑过]
|
-- 作者:lasn -- 发布时间:2022/6/21 15:52:00 -- 明白了,不能直接用current,这样颜色就不会变来变去的了 另外,那请教一下,怎么才能让指定单元格变,而不是一行都变。
|
-- 作者:有点蓝 -- 发布时间:2022/6/21 15:56:00 -- 加上列名判断 if e.col.name = "xxxx"
|
-- 作者:lasn -- 发布时间:2022/6/21 16:03:00 -- 多谢蓝主,今天我又进步了! |