以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 进度条显示异常 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=119450) |
||||
-- 作者:yetle -- 发布时间:2018/5/25 9:13:00 -- 进度条显示异常 此主题相关图片如下:未命名2.png 在老师的指导下,甘特图完成的差不多了,但还有一个问题一直未解决,同一个班组的两个排产内容合并到一行后,进度条显示异常,没有完全跟到日期,怎么解决?另外能不能做到同一个班组的两个排产内容合并到一行后是两个不同的颜色 此主题相关图片如下:未命名.png 甘特图表drawcell代码: If DrawGannt Then Dim cr As Row = Tables("生产计划").Rows(e.Row.Index) For Each r As DataRow In cr.Table.DataTable.Select("班组 = \'" & cr("班组") & "\'", "开始日期") Dim dt1 As Date = r("开始日期") Dim dt2 As Date = r("结束日期") Dim dt As Date = e.Col.Name.Replace("年","-").Replace("月_","-") If dt = dt1 Then e.StartDraw() e.Graphics.FillRectangle(Brushes.RoyalBlue,e.x ,e.y , e.Width , e.Height) Dim fnt As New Font("宋体",9) Dim msg As String = r("排产内容") e.Graphics.DrawString(msg,fnt,Brushes.LightGreen,e.x,e.y+2) e.EndDraw() End If Next End If 合并显示按钮代码: Tables("生产计划").RepeatFilter("班组", 1) Functions.Execute("BuildGanttTable") With Tables("甘特图_Table2").Grid .FocusRect = C1.Win.C1FlexGrid.FocusRectEnum.None \'不显示焦点框 .HighLight = C1.Win.C1FlexGrid.HighLightEnum.Never \'不高亮显示选定区 .SelectionMode = C1.Win.C1FlexGrid.SelectionModeEnum.Cell \'每次只显示一个单元格 End With Dim tb As Table = Tables("甘特图_Table2") tb.Grid.AllowMerging = C1.Win.C1FlexGrid.AllowMergingEnum.Custom Dim minD As Date = Tables("生产计划").Compute("min(开始日期)") Dim ls As new List(of object) For Each r As object In tb.Grid.MergedRanges ls.add(r) Next For Each r As object In ls tb.Grid.MergedRanges.Remove(r) Next For i As Integer = tb.HeaderRows To tb.Rows.Count+tb.HeaderRows Dim cr As Row = Tables("生产计划").Rows(i-2) For Each r As DataRow In cr.Table.DataTable.Select("班组 = \'" & cr("班组") & "\'", "开始日期") Dim dt1 As Date = r("开始日期") Dim dt2 As Date = r("结束日期") Dim sp As TimeSpan = dt2 - dt1 Dim sp2 As TimeSpan = dt1 - minD Dim rng As C1.Win.C1FlexGrid.CellRange = tb.Grid.GetCellRange(i, sp2.TotalDays+1, i, sp2.TotalDays+1+sp.TotalDays) tb.Grid.MergedRanges.add(rng) Next Next [此贴子已经被作者于2018/5/25 9:46:24编辑过]
|
||||
-- 作者:有点甜 -- 发布时间:2018/5/25 9:58:00 -- 上传具体实例测试。 |
||||
-- 作者:有点甜 -- 发布时间:2018/5/25 10:01:00 -- 例子测试没问题
http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=118958&skin=0
|
||||
-- 作者:yetle -- 发布时间:2018/5/25 10:58:00 -- 做到了同一个班组的两个排产内容合并到一行后是两个不同的颜色,但是同一个班组的两个排产内容合并到一行后,进度条显示异常,还是没有完全跟到日期 [此贴子已经被作者于2018/5/25 10:57:57编辑过]
|
||||
-- 作者:有点甜 -- 发布时间:2018/5/25 11:04:00 -- 上传具体实例说明问题。
要注意一点,你两个日期区间,是不能重叠的。 |
||||
-- 作者:yetle -- 发布时间:2018/5/25 11:09:00 -- 同一个班组的排产内容没有重叠,不同班组的重叠不影响吧
|
||||
-- 作者:有点甜 -- 发布时间:2018/5/25 11:19:00 -- BuildGanttTable函数
Dim tbl As Table = Tables("生产计划") |