以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  甘特图  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=177145)

--  作者:nuoyan89
--  发布时间:2022/5/10 21:46:00
--  甘特图
老师,如图的甘特图,我想把右边的那个时间合并到左边的那个表可以吗?还有一个我点击左边对应的排产想让右边的一起联动,这个不知道怎么设置

图片点击可在新窗口打开查看此主题相关图片如下:1.jpg
图片点击可在新窗口打开查看
[此贴子已经被作者于2022/5/10 21:48:11编辑过]

--  作者:有点蓝
--  发布时间:2022/5/10 21:51:00
--  
没看懂,怎么个合并法?合并后是什么效果?联动又具体指什么?
--  作者:nuoyan89
--  发布时间:2022/5/10 22:03:00
--  
现在窗口里是两个窗口表,第一个是排产窗口表,第二个是根据排产窗口表中的时间而显示进度一样的一个窗口表,我想把显示进度的那个窗口表内容在排产窗口表中显示,如图1一样。(二楼中联动的我处理好了),如图2的也请老师帮忙看看,显赫时间进度的第一行和排产窗口的第一行错位的。

图片点击可在新窗口打开查看此主题相关图片如下:1.jpg
图片点击可在新窗口打开查看
[此贴子已经被作者于2022/5/10 22:09:35编辑过]

--  作者:有点蓝
--  发布时间:2022/5/10 22:57:00
--  
错行应该是没有考虑到多层标题,一个2层,一个1层

放到一个表参考。AfterOpenProject事件添加临时列的用法效率比较低。可以看看窗口2使用临时表的方式
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:编码绘制甘特图.zip



--  作者:nuoyan89
--  发布时间:2022/5/11 8:33:00
--  
老师,请再帮忙的看看如图的异常,谢谢!我做了筛选后再两个界面没有同步,并且我点击甘特图表后出现了如图的异常

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

--  作者:有点蓝
--  发布时间:2022/5/11 9:34:00
--  
索引超界。drawcell代码发上来看看
--  作者:nuoyan89
--  发布时间:2022/5/11 10:31:00
--  
请帮忙看看,谢谢
If DrawGannt Then
    Dim r As Row  = Tables("排产显示_生产排产表").Rows(e.Row.Index,True)
    Dim dt1 As Date = r("开始日期")
    Dim dt2 As Date = r("实际开始日期")
    Dim dt3 As Date = r("预计结束日期")
    Dim dt4 As Date = r("实际完成日期")
    
    Dim dt As Date = e.Col.Name.Replace("年","-").Replace("月_","-")
    e.StartDraw()
    Dim y As Integer = e.y + 0
    Dim h As Integer = e.height / 2
    If dt>=dt1 AndAlso dt<=dt3 Then
        e.Graphics.FillRectangle(Brushes.Green,e.x , y, e.Width, h)
    End If
    
    If r.IsNull("预计结束日期") OrElse r.IsNull("实际完成日期")
    Else
        y = e.y + 10
        If dt>=dt2 AndAlso dt<=dt4 Then
            e.Graphics.FillRectangle(Brushes.yellow,e.x , y, e.Width, h)
        End If
    End If
    e.EndDraw()
End If

--  作者:有点蓝
--  发布时间:2022/5/11 10:38:00
--  
应该是2个表的行数不一样多,所以下面代码有问题,必须保证行数是一样的

Dim r As Row  = Tables("排产显示_生产排产表").Rows(e.Row.Index,True)
--  作者:nuoyan89
--  发布时间:2022/5/11 11:22:00
--  
是的,我在排产表那里做了一个筛选查询,排产窗口表按照要求显示了,但是甘特图的那个窗口表却不随着排产表的那个变动而变动,想对排产表进行查询之后甘特图的也跟着排产窗口表对应显示可以设置吗?查询按钮代码如下:


Dim Filter As String
With e.Form.Controls("生产批次1")
    If .Value IsNot Nothing Then
        If Filter > "" Then
            Filter = Filter & " And "
        End If
        Filter = Filter & "生产批次 = \'" & .Value & "\'"
    End If
End With
With e.Form.Controls("设备名称1")
    If .Value IsNot Nothing Then
        If Filter > "" Then
            Filter = Filter & " And "
        End If
        Filter = Filter & "使用设备 = \'" & .Value & "\'"
    End If
End With
With e.Form.Controls("开始日期1")
    If .Value IsNot Nothing Then
        If Filter >"" Then
            Filter = Filter & " And "
        End If
        Filter = Filter & "开始日期 >= \'" & .Value & "\'"
    End If
End With
With e.Form.Controls("开始日期2")
    If .Value IsNot Nothing Then
        If Filter >"" Then
            Filter = Filter & " And "
        End If
        Filter = Filter & "开始日期 <= \'" & .Value & "\'"
    End If
End With
With e.Form.Controls("结束日期1")
    If .Value IsNot Nothing Then
        If Filter >"" Then
            Filter = Filter & " And "
        End If
        Filter = Filter & "预计结束日期 >= \'" & .Value & "\'"
    End If
End With
With e.Form.Controls("结束日期2")
    If .Value IsNot Nothing Then
        If Filter >"" Then
            Filter = Filter & " And "
        End If
        Filter = Filter & "预计结束日期 <= \'" & .Value & "\'"
    End If
End With
With e.Form.Controls("成品编码1")
    If .Value IsNot Nothing Then
        If Filter >"" Then
            Filter = Filter & " And "
        End If
        Filter = Filter & "成品编码= \'"   & .Value & "\'"
    End If
End With
With e.Form.Controls("加工工序1")
    If .Value IsNot Nothing Then
        If Filter >"" Then
            Filter = Filter & " And "
        End If
        Filter = Filter & "加工工序= \'"   & .Value & "\'"
    End If
End With
With e.Form.Controls("成品描述1")
    If .Value IsNot Nothing Then
        If Filter >"" Then
            Filter = Filter & " And "
        End If
        Filter = Filter & "成品描述 like \'%" & .Value & "%\'"
    End If
End With
If Filter >"" Then
    e.Form.controls("生产排产表").Table.DataTable.LoadPage = 0
    e.Form.controls("生产排产表").Table.DataTable.LoadFilter = Filter
    e.Form.controls("生产排产表").Table.DataTable.Load
End If
[此贴子已经被作者于2022/5/11 11:23:17编辑过]

--  作者:有点蓝
--  发布时间:2022/5/11 11:31:00
--  
筛选前清空甘特图表,筛选后,重新生成甘特图表