以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 甘特图的改变问题? (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=125207) |
||||
-- 作者:zsslly -- 发布时间:2018/9/22 10:24:00 -- 甘特图的改变问题?
如图,如案例: 我添加了“确认结束日期”一列,想把右边的甘特图改成:1、每一项任务结束后必须确认日期,如“确认结束日期”和“结束日期”相同,则甘特图显示如上面的样子;2、在结束日期未到的情况下,也就是“确认结束日期”未确认的情况下,甘特图正常显示;3、在结束日期已过,且“确认结束日期”未确认的情况下,从结束日期到今天之间在甘特图上显示为灰色。 求大神指点,可否实现? |
||||
-- 作者:zsslly -- 发布时间:2018/9/22 10:29:00 -- 还有第四种情况:如果“确认结束日期”的日期确认后,大于“结束日期”的情况下,超出日期仍以灰色显示,但不增加了!跪求指点? |
||||
-- 作者:有点蓝 -- 发布时间:2018/9/22 10:56:00 -- If DrawGannt Then Dim r As Row = Tables("任务").Rows(e.Row.Index) Dim dt1 As Date = r("开始日期") Dim dt2 As Date = r("结束日期") Dim dt As Date = e.Col.Name.Replace("年","-").Replace("月_","-") If dt>=dt1 AndAlso dt<=dt2 Then If dt < Date.Today Then e.Graphics.FillRectangle(Brushes.Green,e.x ,e.y + 5, e.Width, e.Height - 10) Else e.Graphics.FillRectangle(Brushes.Red,e.x ,e.y + 3, e.Width, e.Height - 7) End If e.EndDraw() End If If r.IsNull("结束日期") = False AndAlso dt <= Date.Today AndAlso dt>dt2 AndAlso ((r.IsNull("确认结束日期") AndAlso dt2 < Date.Today) OrElse r("确认结束日期") > dt2) Then e.StartDraw() e.Graphics.FillRectangle(Brushes.LightGray,e.x ,e.y + 3, e.Width, e.Height - 7) e.EndDraw() End If End If
|
||||
-- 作者:zsslly -- 发布时间:2018/9/22 11:01:00 -- 跪谢老师!
|
||||
-- 作者:有点蓝 -- 发布时间:2018/9/22 11:03:00 -- 参考3楼的方法自己做,做不通把你的代码贴上来 |
||||
-- 作者:zsslly -- 发布时间:2018/9/22 11:19:00 -- If DrawGannt Then Dim r As Row = Tables("任务").Rows(e.Row.Index) Dim dt1 As Date = r("开始日期") Dim dt2 As Date = r("结束日期") Dim dt As Date = e.Col.Name.Replace("年","-").Replace("月_","-") If dt>=dt1 AndAlso dt<=dt2 Then If dt < Date.Today Then e.Graphics.FillRectangle(Brushes.Green,e.x ,e.y + 5, e.Width, e.Height - 10) Else e.Graphics.FillRectangle(Brushes.Red,e.x ,e.y + 3, e.Width, e.Height - 7) End If e.EndDraw() End If If r.IsNull("结束日期") = False AndAlso dt <= Date.Today AndAlso dt>dt2 AndAlso ((r.IsNull("确认结束日期") AndAlso dt2 < Date.Today) OrElse r("确认结束日期") > dt2 OrElse r("确认结束日期") < dt) Then e.StartDraw() e.Graphics.FillRectangle(Brushes.LightGray,e.x ,e.y + 3, e.Width, e.Height - 7) e.EndDraw() End If End If 结束日期小于今天,改了好像没反应?求助?
|
||||
-- 作者:有点蓝 -- 发布时间:2018/9/22 11:34:00 -- If r.IsNull("结束日期") = False AndAlso dt>dt2 AndAlso ((r.IsNull("确认结束日期") AndAlso dt2 < Date.Today AndAlso dt <= Date.Today) OrElse r("确认结束日期") > dt2 AndAlso dt < r("确认结束日期")) Then ……
|