以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]图表问题求助  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=111543)

--  作者:堕落的后天
--  发布时间:2017/12/24 15:05:00
--  [求助]图表问题求助
自己做甘特图类型的图表;

1.如何让X轴在表的顶部,而不是底部。

2.一个表里面有多个记录,但是都隶属于同一个人(字段:所属医生),如何让他在图表里面,重叠绘制,而不是一条条绘制.

谢谢版主

--  作者:堕落的后天
--  发布时间:2017/12/24 15:28:00
--  
第一个问题解决了
--  作者:有点甜
--  发布时间:2017/12/24 20:41:00
--  
以下是引用堕落的后天在2017/12/24 15:05:00的发言:
 

2.一个表里面有多个记录,但是都隶属于同一个人(字段:所属医生),如何让他在图表里面,重叠绘制,而不是一条条绘制.
 

 

select查找此人的所有数据,然后把【开始时间】添加到一个集合,把【结束时间】添加到另一个即可,最后给甘特图赋值不就好了?

 

贴出你写的代码或者上传实例。


--  作者:堕落的后天
--  发布时间:2017/12/24 21:50:00
--  
Dim Chart As WinForm.Chart


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


Chart= Forms("总览").Controls("Chart1")
Chart.SeriesList.Clear() \'清除图表原来的图系
Chart.ChartType = ChartTypeEnum.Gantt \'图表类型为甘特图
Chart.AxisY.Reversed = True \'翻转Y轴
Chart.AxisX.Compass= CompassEnum.North \'X轴位置设为北方(上方)

Chart.AxisY.DateType= True \'Y轴为日期型
Chart.AxisY.AnnoFormatString = "hh:mm" \'设置Y轴的标示格式
Chart.AxisY.MinDate = #8:00# \'设置Y轴的起始日期
Chart.AxisY.MaxDate = #20:00# \'设置Y轴的终止日期
Chart.AxisX.GridMajorVisible = False \'隐藏X轴的网格线

 
For Each drs As DataRow In DataTables("预约表").Select(filter)
     Dim xm As String = drs("所属医生")
    Dim x As Date = drs("开始时间")
    Dim y As Date = drs("结束时间")
    




    With Chart.SeriesList
        .AddGanttSeries(""& xm &"",""& x &"" ,""& y &" ")
        .AddGanttLabels("h:m")



    End With


   
    
    
Next

--  作者:有点甜
--  发布时间:2017/12/24 22:26:00
--  

For Each xm As String In DataTables("预约表").GetValues("所属医生", filter)
    Dim xs As new List(Of Date)
    Dim ys As new List(Of Date)
    For Each drs As DataRow In DataTables("预约表").Select(filter & " and 所属医生 = \'" & xm & "\'")
        Dim x As Date = drs("开始时间")
        Dim y As Date = drs("结束时间")
        xs.add(x)
        ys.add(y)
    Next
    With Chart.SeriesList
        .AddGanttSeries(xm, xs.ToArray, ys.ToArray)
        .AddGanttLabels("h:m")
    End With
next