Foxtable(狐表)用户栏目专家坐堂 → [求助]这个甘特图问题不知道是否能实现


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

主题:[求助]这个甘特图问题不知道是否能实现

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


加好友 发短信
等级:六尾狐 帖子:1287 积分:10368 威望:0 精华:1 注册:2018/1/20 12:40:00
[求助]这个甘特图问题不知道是否能实现  发帖心情 Post By:2020/8/28 10:08:00 [显示全部帖子]


图片点击可在新窗口打开查看此主题相关图片如下:qq截图20200828100143.jpg
图片点击可在新窗口打开查看
1.希望根据table1的时间节点,对颜色进行切分,实现渐变的效果。
2.如果在table1里面增加时间列,也能实现此功能,而不需要修改代码。
密码888
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:甘特图问题.table



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


加好友 发短信
等级:六尾狐 帖子:1287 积分:10368 威望:0 精华:1 注册:2018/1/20 12:40:00
  发帖心情 Post By:2020/8/28 10:44:00 [显示全部帖子]

就是必须把所有时间段都列出来吗?我是想用 isdate 的方法循环,因为正式的程序里面的时间段,会动态增加列的。
我是这么把时间列加进来的。但是后面的关于时间判断的循环,写的就有问题了。

        For Each c As Col In Tables("项目分配_table1").Cols
            If c.IsDate Then
                If cr.IsNull(c.Name)=False Then
                    Datet.Add(cr(c.Name))
                End If
            End If
        Next

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


加好友 发短信
等级:六尾狐 帖子:1287 积分:10368 威望:0 精华:1 注册:2018/1/20 12:40:00
  发帖心情 Post By:2020/8/28 11:31:00 [显示全部帖子]

这个测试的时候,手动添加的。其实就是需要代码能够循环
目前的思路是。把所有的时间都添加 到一个list 中,然后进行排序。
然后根据这个list 的数量,把下图的颜色范围进行切分。然后设置成不同颜色的brush,将这些brush 加入到一个list里面

图片点击可在新窗口打开查看此主题相关图片如下:2.png
图片点击可在新窗口打开查看
最后进行循环匹配。现在问题就出在这个循环匹配上。前面的时间匹配到的颜色,会被后面的覆盖。

 For i As Integer =  1 To Datet.Count-1 '---循环
                    msgbox(Datet(i) )
                    If dt < Datet(i) Then
                        e.Graphics.FillRectangle(blue ,e.x ,e.y + 5, e.Width, e.Height - 13)
                        
                        'Datet.Remove(Datet(i))
                        'BRS.Remove(BRS(i))
                        Exit For
                    Else
                        
                        If i<=Datet.Count-2 Then
                            If dt >= Datet(i) AndAlso dt<=Datet(i+1) Then
                                e.Graphics.FillRectangle(brred,e.x ,e.y + 3, e.Width, e.Height - 8)
                                Exit For
                            End If
                        End If
                        If dt > Datet(Datet.Count-1) AndAlso dt<=dt2 Then
                            
                            e.Graphics.FillRectangle(gray,e.x ,e.y + 3, e.Width, e.Height - 8)
                            Exit For
                        End If
                        
                        e.EndDraw()
                        
                    End If
                Next


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


加好友 发短信
等级:六尾狐 帖子:1287 积分:10368 威望:0 精华:1 注册:2018/1/20 12:40:00
  发帖心情 Post By:2020/8/28 11:45:00 [显示全部帖子]

1楼有实例,,我又简化了一下。
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:甘特图问题.table

密码888
[此贴子已经被作者于2020/8/28 11:45:21编辑过]

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


加好友 发短信
等级:六尾狐 帖子:1287 积分:10368 威望:0 精华:1 注册:2018/1/20 12:40:00
  发帖心情 Post By:2020/8/28 14:03:00 [显示全部帖子]

感谢

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


加好友 发短信
等级:六尾狐 帖子:1287 积分:10368 威望:0 精华:1 注册:2018/1/20 12:40:00
  发帖心情 Post By:2020/8/28 14:44:00 [显示全部帖子]

有一个扩展问题,,我把table2的属性设置成allowededit=true ,但是打字上去之后,字是看不到的。这个能处理吗

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


加好友 发短信
等级:六尾狐 帖子:1287 积分:10368 威望:0 精华:1 注册:2018/1/20 12:40:00
  发帖心情 Post By:2020/8/28 15:02:00 [显示全部帖子]

找到原因了。

 回到顶部