Foxtable(狐表)用户栏目专家坐堂 → 甘特图


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

主题:甘特图

美女呀,离线,留言给我吧!
nuoyan89
  21楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:409 积分:2844 威望:0 精华:0 注册:2020/10/9 8:45:00
  发帖心情 Post By:2022/5/20 17:35:00 [只看该作者]

老师,代码改了下,但是显示不是按要求显示的如图1,正确的显示应该是绿色的开始日期/预计结束日期的时间段,统计和的没有显示出来,明细如图2,内部函数红色的是不是要改下,请帮忙看看,谢谢

If DrawGannt Then
    Dim r As Row = Tables("排产显示_生产排产表").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()
        Dim Sum2 As Double = DataTables("工序跟踪表").sqlCompute("Sum(合格品)", "生产批次 = '" & r("生产批次") & "'")
        Dim bh As Brush
        If Sum2 > 0 Then
            bh = Brushes.Green
        Else
            bh = Brushes.yellow
        End If
        If dt < Date.Today Then
            e.Graphics.FillRectangle(bh, 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
End If

BuildGanttTable内部函数代码:
Dim tbl As Table = Tables("排产显示_生产排产表")
Tables("排产显示_进度计划").StopRedraw()
Dim StartDate As Date = tbl.Compute("Min(开始日期)")
Dim EndDate As Date = tbl.Compute("max(实际完成日期)")
For Each c As Col In tbl.Cols
    If c.Name.StartsWith("进度") Then
        Dim temp As Date = tbl.Compute("Min(" & c.Name & ")")
        If temp <> Nothing AndAlso temp < startDate Then
            startDate = temp
        End If
        temp = tbl.Compute("max(" & c.Name & ")")
        If temp <> Nothing AndAlso temp > EndDate Then
            EndDate = temp
        End If
    End If
Next
Dim dt As Date = StartDate
Dim Builder As New DataTableBuilder("统计")
Do
    Dim nm As String = dt.Year & "年" &  dt.Month & "月_" & dt.Day
    Builder.Adddef(nm,Gettype(String),1)
    dt = dt.Adddays(1)
    If dt > Enddate Then
        Exit Do
    End If
Loop
Tables("排产显示_进度计划").DataSource = Builder.BuildDataSource
For Each cl As Col In Tables("排产显示_进度计划").Cols
    cl.width = 20
Next
Functions.Execute("AddGanttRows")
Tables("排产显示_进度计划").ResumeRedraw()


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

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

[此贴子已经被作者于2022/5/20 17:42:24编辑过]

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


加好友 发短信
等级:超级版主 帖子:105478 积分:536381 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/5/21 9:05:00 [只看该作者]

看图统计的Sum(合格品)都是大于0 啊,当然就是绿色了。统计条件不对吧

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