以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  统计数据  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=73330)

--  作者:xiaohuli
--  发布时间:2015/8/17 15:16:00
--  统计数据

 

[此贴子已经被作者于2015/8/18 15:22:02编辑过]

--  作者:有点蓝
--  发布时间:2015/8/17 15:31:00
--  
可以,参考下面帮助就能完成 
--  作者:xiaohuli
--  发布时间:2015/8/17 18:25:00
--  
老师你好,我现在做了一个甘特图,如图所示,
图片点击可在新窗口打开查看此主题相关图片如下:qq图片20150817182046.png
图片点击可在新窗口打开查看
我想实现比如在7号,或8号来点击第一条的甘特图的时候,能不能出来点击的那天的明细记录。例如,我点击甘特图想看到7号的明细数据,这个该怎么实现?
--  作者:大红袍
--  发布时间:2015/8/17 19:49:00
--  

去编写click事件,弹出一个窗口,然后根据 e.Col.Name 筛选对应日期的数据即可。


--  作者:xiaohuli
--  发布时间:2015/8/17 20:14:00
--  

老师,主要是如何取到单击的那列的日期呀,


图片点击可在新窗口打开查看此主题相关图片如下:qq图片20150817182046.png
图片点击可在新窗口打开查看
当我点击7号那列的时候得需要取到2011-08-07的日期呀,不然没法将日期传递过去呀。
--  作者:大红袍
--  发布时间:2015/8/17 20:16:00
--  
click事件取列名啊。
--  作者:xiaohuli
--  发布时间:2015/8/17 20:42:00
--  

老师,还有一个绘制甘特图的问题,表中有一下字段,销售编号,产品名称,计划销售数量,实际销售数量,开始日期,结束日期等字段,我想通过实际销售数量/计划销售数量来绘制甘特图,这个该怎么绘制?下面的代码应该如何改?

If DrawGannt Then
    Dim r As Row  = Tables("销售进度_Table1").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
        e.StartDraw()
        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
        If r.IsNull("计划销售数量") = False Then
            Dim day As Double = r("实际销售数量") / r("计划销售数量")
            Output.Show(day)
            If dt <= dt1.AddHours(24 * day) Then
                Dim d As Integer = math.Floor(day)
                If (dt-dt1).Days < d Then \'满格
                    e.Graphics.FillRectangle(Brushes.Yellow,e.x ,e.y + 8, e.Width, e.Height - 16)
                Else
                    Dim width As Integer = (day - d) * e.width
                    e.Graphics.FillRectangle(Brushes.Yellow,e.x ,e.y + 8, width, e.Height - 16)
                End If
            End If
        End If
        e.EndDraw()
    End If
End If
\'
\'
\'
\'


--  作者:大红袍
--  发布时间:2015/8/17 20:47:00
--  

不理解你什么意思,甘特图是绘制开始和结束的。


--  作者:xiaohuli
--  发布时间:2015/8/17 20:56:00
--  

是的,甘特图是绘制开始和结束的,但绘制的时候不得有个完成进度吗?在开始日期和结束日期的这段时间内,想通过完成的进度来绘制甘特图呀,在这段时间内完成的进度是多少?进度=实际销售数量/计划销售数量。老师,不知道你现在理解我的意思了没?


--  作者:大红袍
--  发布时间:2015/8/17 21:05:00
--  

       If r.IsNull("计划销售数量") = False Then
            Dim day As Integer = r("实际销售数量") / r("计划销售数量") * (dt2-dt1).TotalDays
            Dim dt3 As Date = dt1.AddDays(day)
            If dt <= dt3 Then
                e.Graphics.FillRectangle(Brushes.Yellow,e.x ,e.y + 8, e.Width, e.Height - 16)
            End If
        End If