Foxtable(狐表)用户栏目专家坐堂 → 如何在子表内绘制甘特图


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

主题:如何在子表内绘制甘特图

帅哥哟,离线,有人找我吗?
chengjingliang
  11楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:250 积分:1813 威望:0 精华:0 注册:2012/6/28 13:53:00
  发帖心情 Post By:2017/8/22 23:00:00 [只看该作者]

用黑细线显示跟踪进度的完成图(实际开始——实际完成),计划甘特图最后显示计划产值,跟踪甘特图最后显示完成比例

图片点击可在新窗口打开查看此主题相关图片如下:1503412920(1).png
图片点击可在新窗口打开查看


 回到顶部
帅哥,在线噢!
有点蓝
  12楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106678 积分:542579 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/8/22 23:13: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
        e.EndDraw()
    End If
    Dim dt3 As Date = r("实际开始")
    Dim dt4 As Date = r("实际完成")
    If dt>=dt3 AndAlso dt<=dt4 Then
        e.Graphics.FillRectangle(Brushes.Black,e.x ,e.y + 8, e.Width, e.Height - 18)
    End If
End If

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


加好友 发短信
等级:五尾狐 帖子:1131 积分:8199 威望:0 精华:0 注册:2013/11/3 19:00:00
  发帖心情 Post By:2017/8/23 6:51:00 [只看该作者]

mark

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


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

如果你有开发版,参考这里也行

 

http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=85221&skin=0

 


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


加好友 发短信
等级:童狐 帖子:250 积分:1813 威望:0 精华:0 注册:2012/6/28 13:53:00
  发帖心情 Post By:2017/8/23 10:59:00 [只看该作者]

能不能在进度计划图后面显示计划产值,实际完成图后面显示完成比例

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


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

以下是引用chengjingliang在2017/8/23 10:59:00的发言:
能不能在进度计划图后面显示计划产值,实际完成图后面显示完成比例

 

再画一段文字就好,参考

 

http://www.foxtable.com/webhelp/scr/1482.htm

 


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


加好友 发短信
等级:童狐 帖子:250 积分:1813 威望:0 精华:0 注册:2012/6/28 13:53:00
  发帖心情 Post By:2017/8/23 13:12:00 [只看该作者]

1、如何按百分比显示完成比例,

    If dt = dt4 Then
        e.StartDraw()
      '  e.Graphics.FillRectangle(Brushes.Green,e.x ,e.y + 5, e.Width, e.Height - 10)
        Dim fnt As New Font("宋体",9)
        Dim msg As String ="    "&  r("完成比例")
        e.Graphics.DrawString(msg,fnt,Brushes.Black,e.x,e.y+2)
        e.EndDraw()
    End If

2、是否可以将甘特图设置为透明,或将完成比例等文字显示于甘特图图层之上,便于显示
[此贴子已经被作者于2017/8/23 13:18:50编辑过]

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


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

1、2

 

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("月_","-")
    e.StartDraw()
    If dt>=dt1 AndAlso dt<=dt2 Then
       
        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
    End If
    Dim dt3 As Date = r("实际开始")
    Dim dt4 As Date = r("实际完成")
    If dt>=dt3 AndAlso dt<=dt4 Then
        e.Graphics.FillRectangle(Brushes.Black,e.x ,e.y + 8, e.Width, e.Height - 18)
    End If
    If dt = dt4 Then
        Dim fnt As New Font("宋体",9)
        Dim msg As String ="    "&  format(r("完成比例"), "0.00%")
        e.Graphics.DrawString(msg,fnt,Brushes.Black,e.x,e.y+2)
    End If

    e.EndDraw()
   
End If


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


加好友 发短信
等级:童狐 帖子:250 积分:1813 威望:0 精华:0 注册:2012/6/28 13:53:00
  发帖心情 Post By:2017/8/23 16:03:00 [只看该作者]

谢谢指教,只是文字不能在进度条图层上面显示,看不见文字,还要请教一下老师

图片点击可在新窗口打开查看此主题相关图片如下:z8_ukb6`t`$}l`7r{48oa)c.png
图片点击可在新窗口打开查看


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/8/23 18:03: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("月_","-")
    e.StartDraw()
    If dt>=dt1 AndAlso dt<=dt2 Then
       
        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
    End If
    Dim dt3 As Date = r("实际开始")
    Dim dt4 As Date = r("实际完成")
    If dt>=dt3 AndAlso dt<=dt4 Then
        e.Graphics.FillRectangle(Brushes.yellow,e.x ,e.y + 8, e.Width, e.Height - 18)
    End If
   
    Dim d2 As Date = iif(r("计划完成")>r("实际完成"), r("计划完成"), r("实际完成"))
    Dim msg As String = format(r("完成比例"), "0.00%")
    If dt >= d2.AddDays(-msg.length+1) AndAlso dt <= d2 Then
        e.text = msg.Substring(msg.length-1-(d2-dt).TotalDays,1)
    End If

    e.EndDraw()
End If


 回到顶部
总数 22 上一页 1 2 3 下一页