Foxtable(狐表)用户栏目专家坐堂 → [求助]甘特图的特别运用


  共有1601人关注过本帖树形打印复制链接

主题:[求助]甘特图的特别运用

帅哥哟,离线,有人找我吗?
堕落的后天
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:175 积分:1431 威望:0 精华:0 注册:2017/8/4 14:17:00
[求助]甘特图的特别运用  发帖心情 Post By:2017/11/26 12:27:00 [只看该作者]

想用甘特图来展示一个人当天的预约情况;

表为(“预约表”)里面有“病人姓名” “日期” “开始时间”“结束时间” 4个字段

预约时间定义为X轴  8:00  到 20:00  Y轴用预约的患者名字来生成

参照说明书:写如下代码来生成当天的预约情况甘特图()


Dim Chart As WinForm.Chart
Dim Series As WinForm.ChartSeries '定义一个图系变量

Chart= Forms("甘特图测试").Controls("Chart1")
Chart.ChartType = ChartTypeEnum.Gantt '图表类型为甘特图
Chart.Inverted = True '对调X轴和Y轴位置
Chart.AxisY.DateType= True 'Y轴为日期型
Chart.AxisY.AnnoFormatString = "hh-mm" '设置Y轴的标示格式
Chart.AxisY.MinDate = #7:30# '设置Y轴的起始日期
Chart.AxisY.MaxDate = #20:00# '设置Y轴的终止日期
Chart.AxisX.GridMajorVisible = False '隐藏X轴的网格线
Dim a As Date = Date.Today

Dim r As DataRow = DataTables("预约表").Find("日期 = " & a & " ")'找出对应年月的行
        If r IsNot Nothing '如果找到对应年月的行

With Chart.SeriesList
.AddGanttSeries("病人姓名",“开始时间”, “结束时间”)
    .AddGanttLabels("h:m")
End With


End If


不会引用表内字段来生成X/Y轴   不会同时添加筛选条件  向版主请教

 回到顶部
帅哥哟,离线,有人找我吗?
堕落的后天
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:175 积分:1431 威望:0 精华:0 注册:2017/8/4 14:17:00
  发帖心情 Post By:2017/11/26 14:57:00 [只看该作者]

版主  已经解决了问题  ,我还想问问  ;这个生成的甘特图  能和表进行数据互动么?  

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/11/26 17:31:00 [只看该作者]

以下是引用堕落的后天在2017/11/26 14:57:00的发言:
版主  已经解决了问题  ,我还想问问  ;这个生成的甘特图  能和表进行数据互动么?  

 

如何互动,指什么?只能根据表格生成甘特图,你无法操作甘特图修改表信息的。


 回到顶部
帅哥哟,离线,有人找我吗?
堕落的后天
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:175 积分:1431 威望:0 精华:0 注册:2017/8/4 14:17:00
  发帖心情 Post By:2017/11/26 18:11:00 [只看该作者]

额  也就是说只能看看,不能根据表改动数据了.   


我看 图表一章  有个“数据标示”   Series.TooltipText  这个属性适用于  甘特图么?(比如我鼠标移到一个区块上,就能显示该区块的其他字段信息)




 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/11/26 21:49:00 [只看该作者]

以下是引用堕落的后天在2017/11/26 18:11:00的发言:
额  也就是说只能看看,不能根据表改动数据了.   


我看 图表一章  有个“数据标示”   Series.TooltipText  这个属性适用于  甘特图么?(比如我鼠标移到一个区块上,就能显示该区块的其他字段信息)



 

表改动数据以后,重新生成甘特图,不就好了?

 

如果要有提示,参考代码

 

Dim Chart As WinForm.Chart
Chart= Forms("窗口1").Controls("Chart1")
Chart.ChartType = ChartTypeEnum.Gantt '图表类型为甘特图
Chart.Inverted = True '对调X轴和Y轴位置
Chart.AxisY.DateType= True 'Y轴为日期型
Chart.AxisY.AnnoFormatString = "MM-dd" '设置Y轴的标示格式
Chart.AxisY.MinDate = New DateTime(2004, 1, 1)
Chart.AxisY.MaxDate = New DateTime(2004, 7, 30)
Chart.AxisX.GridMajorVisible = False '隐藏X轴的网格线

Dim bchart = chart.BaseControl

Dim cg = bchart.ChartGroups.Group0
Dim cdsc = cg.ChartData.SeriesList
cdsc.Clear()

Dim clc = bchart.ChartLabels.LabelsCollection

Dim cds = cdsc.AddNewSeries()
cds.Label = "任务一"
cds.Y.CopyDataIn(New DateTime() {New DateTime(2004, 1, 1),New DateTime(2004, 5, 1)})
cds.Y1.CopyDataIn(New DateTime() {New DateTime(2004, 3, 9),New DateTime(2004, 6, 1)})
Dim p As Integer
clc.clear
For p = 0 To cds.Length - 1
    Dim lab As C1.Win.C1Chart.Label = clc.AddNewLabel()
    Dim start As DateTime = CType(cds.Y(p), DateTime)
    Dim [End] As DateTime = CType(cds.Y1(p), DateTime)
    lab.Text = start.ToString("ddMMM") + "-" + [End].ToString("ddMMM")
    lab.AttachMethod = C1.Win.C1Chart.AttachMethodEnum.DataIndex
    lab.AttachMethodData.GroupIndex = 0
    lab.AttachMethodData.SeriesIndex = 0
    lab.AttachMethodData.PointIndex = p
    lab.Compass = LabelCompassEnum.West
    lab.Offset = 0
    lab.style.forecolor = Color.red
    lab.Visible = True
Next
cds.tooltiptext = "123"

cds = cdsc.AddNewSeries()
cds.Label = "任务二"
cds.Y.CopyDataIn(New DateTime() {New DateTime(2004, 2, 1)})
cds.Y1.CopyDataIn(New DateTime() {New DateTime(2004, 3, 9)})
For p = 0 To cds.Length - 1
    Dim lab As C1.Win.C1Chart.Label = clc.AddNewLabel()
    Dim start As DateTime = CType(cds.Y(p), DateTime)
    Dim [End] As DateTime = CType(cds.Y1(p), DateTime)
    lab.Text = start.ToString("ddMMM") + "-" + [End].ToString("ddMMM")
    lab.AttachMethod = C1.Win.C1Chart.AttachMethodEnum.DataIndex
    lab.AttachMethodData.GroupIndex = 0
    lab.AttachMethodData.SeriesIndex = 1
    lab.AttachMethodData.PointIndex = p
    lab.Compass = LabelCompassEnum.West
    lab.Offset = 0
    lab.style.forecolor = Color.red
    lab.Visible = True
Next
cds.tooltiptext = "abc"


 回到顶部