以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 求教生成甘特图 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=88412) |
||||
-- 作者:yiwente -- 发布时间:2016/8/2 11:54:00 -- 求教生成甘特图 请大侠帮我编写一段代码: 1、我按人员筛选后,将某人参与的设计项都筛选出来,但此人有的项目只参与3D设计,有的项目只参与2D设计,有的项目3D、2D都参与; 2、现在我想根据生成此人的3D、2D设计的开始时间、结束时间生成甘特图,审核时间计划不管它; 其中1我已完成,第2点代码有问题,不知如何解决,请高手帮忙,现行谢过!
|
||||
-- 作者:blackzhu -- 发布时间:2016/8/2 12:01:00 -- Forms("设计计划甘特图").Show() Dim Chart As WinForm.Chart Chart= Forms("设计计划甘特图").Controls("Chart1") Chart.ChartType = ChartTypeEnum.Gantt \'图表类型为甘特图 Chart.SeriesList.Clear Dim t As Table = Tables("设计分配计划表") Chart.Inverted = True \'对调X轴和Y轴位置 Chart.AxisY.DateType= True \'Y轴为日期型 Chart.AxisY.AnnoFormatString = "MM-dd" \'设置Y轴的标示格式\' Chart.AxisX.GridMajorVisible = False \'隐藏X轴的网格线\\ With e.Form.Controls("设计人员") If .Value IsNot Nothing Then Dim drs As List(Of DataRow) drs = DataTables("设计分配计划表").Select("[设计3D_担当] = \'" & .Value & "\' And [设计2D_担当] = \'" & .Value & "\'") For Each dr As DataRow In drs With Chart.SeriesList .AddGanttSeries(dr("治具规格"),New DateTime() {dr("设计3D_计划开始日期"),dr("设计2D_计划开始日期")},New DateTime() {dr("设计3D_计划结束日期"),dr("设计2D_计划结束日期")}) .AddGanttLabels("M月d日") End With Next End If End With
|
||||
-- 作者:yiwente -- 发布时间:2016/8/2 13:52:00 -- 谢谢老朱! 上面代码有两个问题: 1、当3D或3D设计的开始日期和结束日期是同一天,则甘特图上无显示; 2、当3D设计与2D设计不是同一人时,被筛选出的此人所参与的3D或2D设计甘特图上也无显示。 还请支招! |
||||
-- 作者:Hyphen -- 发布时间:2016/8/2 14:17:00 -- 2楼的代码改这里 drs = DataTables("设计分配计划表").Select("[设计3D_担当] = \'" & .Value & "\' Or [设计2D_担当] = \'" & .Value & "\'")
|
||||
-- 作者:blackzhu -- 发布时间:2016/8/2 15:38:00 -- 第二个问题,究竟是要显示同一个人还是不同一个人 |
||||
-- 作者:yiwente -- 发布时间:2016/8/2 16:07:00 -- 在甘特图上要只显示被筛选的人的工作,如一个项目3D设计是谢虎,2D设计是张兵,被筛选的是谢虎时,则谢虎的3D设计在甘特图上显示,而张兵的2D设计不显示 |
||||
-- 作者:yiwente -- 发布时间:2016/8/2 16:08:00 -- 第一个问题最难解决,版主能否帮帮忙? |
||||
-- 作者:blackzhu -- 发布时间:2016/8/2 16:17:00 -- 那应该还是 AND
|
||||
-- 作者:281512373 -- 发布时间:2016/8/2 16:40:00 -- 学习一下 |
||||
-- 作者:yiwente -- 发布时间:2016/8/2 17:13:00 -- 烦请版主大人帮帮忙! |