Foxtable(狐表)用户栏目专家坐堂 → 甘特图可以根据主表和明细生成?


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

主题:甘特图可以根据主表和明细生成?

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


加好友 发短信
等级:六尾狐 帖子:1307 积分:8899 威望:0 精华:0 注册:2019/6/13 9:57:00
甘特图可以根据主表和明细生成?  发帖心情 Post By:2025/1/6 9:41:00 [显示全部帖子]

甘特图可以根据主表和明细生成?如何用代码实现?

图片点击可在新窗口打开查看此主题相关图片如下:屏幕截图 2025-01-06 093824.jpg
图片点击可在新窗口打开查看



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


加好友 发短信
等级:六尾狐 帖子:1307 积分:8899 威望:0 精华:0 注册:2019/6/13 9:57:00
  发帖心情 Post By:2025/1/6 11:12:00 [显示全部帖子]

Functions.Execute("BuildGanttTable")
With Tables("窗口2_Table2").Grid
    .FocusRect = C1.Win.C1FlexGrid.FocusRectEnum.None '不显示焦点框
    .HighLight = C1.Win.C1FlexGrid.HighLightEnum.Never '不高亮显示选定区
    .SelectionMode = C1.Win.C1FlexGrid.SelectionModeEnum.Cell '每次只显示一个单元格
End With
甘特图中星期,计划数,完成数,如何生成,,具体代码如何写?如下图


图片点击可在新窗口打开查看此主题相关图片如下:甘特图.jpg
图片点击可在新窗口打开查看

[此贴子已经被作者于2025/1/6 11:11:57编辑过]

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


加好友 发短信
等级:六尾狐 帖子:1307 积分:8899 威望:0 精华:0 注册:2019/6/13 9:57:00
  发帖心情 Post By:2025/1/6 11:51:00 [显示全部帖子]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:编码绘制甘特图-红 - 副本.zip


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


加好友 发短信
等级:六尾狐 帖子:1307 积分:8899 威望:0 精华:0 注册:2019/6/13 9:57:00
  发帖心情 Post By:2025/1/6 13:57:00 [显示全部帖子]

过期升级不了,请老师贴代码,谢谢

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


加好友 发短信
等级:六尾狐 帖子:1307 积分:8899 威望:0 精华:0 注册:2019/6/13 9:57:00
  发帖心情 Post By:2025/1/6 17:33:00 [显示全部帖子]

请有最新版大神,帮转6楼的实例为2022版,谢谢

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


加好友 发短信
等级:六尾狐 帖子:1307 积分:8899 威望:0 精华:0 注册:2019/6/13 9:57:00
  发帖心情 Post By:2025/1/7 16:02:00 [显示全部帖子]

Builder.Adddef("编号", GetType(String), 16)
Builder.Adddef("项目ID", GetType(String), 16)
Builder.Adddef("项目", GetType(String), 16)
加上红代码,后面的代码如何?
Do
    Dim nm As String = dt.Year & "年_" & dt.Month & "月_" & dt.Day & "_" & ss(dt.DayOfWeek)
    Builder.Adddef(nm & "_计划", GetType(Integer))
    Builder.Adddef(nm & "_完成", GetType(Integer))
    dt = dt.Adddays(1)
    If dt > Enddate Then
        Exit Do
    End If
Loop
Tables("窗口2_Table2").DataSource = Builder.buildDataSource

Dim r As Row
For Each a As String In tbl.DataTable.GetValues("项目")
    r = Tables("窗口2_Table2").AddNew
    r("项目") = a
    For Each dr As DataRow In tbl.DataTable.Select("项目='" & a & "'")
        dt = dr("日期")
        r(dt.Year & "年_" & dt.Month & "月_" & dt.Day & "_" & ss(dt.DayOfWeek)& "_计划") = dr("计划数")
    Next 
Next

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


加好友 发短信
等级:六尾狐 帖子:1307 积分:8899 威望:0 精华:0 注册:2019/6/13 9:57:00
  发帖心情 Post By:2025/1/7 17:05:00 [显示全部帖子]

Dim r As Row
For Each a As String In tbl.DataTable.GetValues("编号,项目ID,项目")
    r = Tables("窗口2_Table2").AddNew
    
r("编号")=dr("编号")
r("项目ID")=dr("项目ID")
r("项目") = a
    For Each dr As DataRow In tbl.DataTable.Select("编号='" & dr("编号") & "'" AND   "项目ID='" & dr("项目ID")& "'" AND  "项目='" & a & "'"   )
        dt = dr("日期")
        r(dt.Year & "年_" & dt.Month & "月_" & dt.Day & "_" & ss(dt.DayOfWeek)& "_计划") = dr("计划数")
    Next 
Next

是这样改?

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


加好友 发短信
等级:六尾狐 帖子:1307 积分:8899 威望:0 精华:0 注册:2019/6/13 9:57:00
  发帖心情 Post By:2025/1/8 9:53:00 [显示全部帖子]

执行后,二列分类时,合在一行显示,不直观,如何实现不同分类,在不同行显示?图示

图片点击可在新窗口打开查看此主题相关图片如下:在同行不好.jpg
图片点击可在新窗口打开查看


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


加好友 发短信
等级:六尾狐 帖子:1307 积分:8899 威望:0 精华:0 注册:2019/6/13 9:57:00
  发帖心情 Post By:2025/1/8 11:59:00 [显示全部帖子]

执行下面代码,发生上面图的问题
Dim tbl As Table = Tables("表A")

Dim StartDate As Date = tbl.Compute("Min(日期)", "日期 IS NOT NULL")
Dim EndDate As Date = tbl.Compute("Max(日期)", "日期 IS NOT NULL")
Dim dt As Date = StartDate
Dim ss() As String = {"星期天", "星期一", "星期2", "星期3", "星期4", "星期5", "星期6"}
Dim Builder As New DataTableBuilder("统计")
Builder.Adddef("编号", GetType(String), 16)
Builder.Adddef("项目", GetType(String), 16)

Do
    Dim nm As String = dt.Year & "年_" & dt.Month & "月_" & dt.Day & "_" & ss(dt.DayOfWeek)
    Builder.Adddef(nm & "_计划", GetType(Integer))
    Builder.Adddef(nm & "_完成", GetType(Integer))
    dt = dt.Adddays(1)
    If dt > Enddate Then
        Exit Do
    End If
Loop
Tables("窗口2_Table2").DataSource = Builder.buildDataSource

Dim r As Row
For Each a As String In tbl.DataTable.GetValues("项目")
    r = Tables("窗口2_Table2").AddNew
    r("项目") = a
    For Each dr As DataRow In tbl.DataTable.Select("项目='" & a & "'")
r("编号") =dr("编号")
        dt = dr("日期")

        r(dt.Year & "年_" & dt.Month & "月_" & dt.Day & "_" & ss(dt.DayOfWeek)& "_计划") = dr("计划数")
    Next 
Next

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


加好友 发短信
等级:六尾狐 帖子:1307 积分:8899 威望:0 精华:0 注册:2019/6/13 9:57:00
  发帖心情 Post By:2025/1/8 13:47:00 [显示全部帖子]

    
    Dim Arys As List(Of String())
    Arys = DataTables("窗口2_Table2").GetValues("编号|项目", "", "编号,项目")
    For Each Ary As String() In Arys
'        Output.Show(Ary(0) & "|" & Ary

        Ary = Tables("窗口2_Table2").AddNew
        Ary("编号") = (Ary(0) & "|" & Ary
        

        For Each dr As DataRow In tbl.DataTable.Select("编号='" & a & "'")
  
            
            '      For Each dr As DataRow In tbl.DataTable.Select("编号='" & a("编号") & "'" And "项目='" & a("项目") & "'") 
            dt = dr("日期")
       Next
    Next

不会改,请老师帮改,谢谢



 回到顶部
总数 15 1 2 下一页