以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  drawcell 问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=184202)

--  作者:edisontsui
--  发布时间:2022/11/28 12:13:00
--  drawcell 问题
Select Case e.Col.name 
    Case "D1", "D2", "D3", "D4", "D5", "D6", "D7", "D8", "D9", "D10", "D11", "D12", "D13", "D14", "D15", "D16", "D17", "D18", "D19", "D20", "D21", "D22", "D23", "D24", "D25", "D26", "D27", "D28", "D29", "D30", "D31", "D32", "D33", "D34", "D35", "D36", "D37", "D38", "D39", "D40", "D41", "D42", "D43", "D44", "D45", "D46", "D47", "D48", "D49", "D50" 
        Dim ary() As String = {"D1", "D2", "D3", "D4", "D5", "D6", "D7", "D8", "D9", "D10", "D11", "D12", "D13", "D14", "D15", "D16", "D17", "D18", "D19", "D20", "D21", "D22", "D23", "D24", "D25", "D26", "D27", "D28", "D29", "D30", "D31", "D32", "D33", "D34", "D35", "D36", "D37", "D38", "D39", "D40", "D41", "D42", "D43", "D44", "D45", "D46", "D47", "D48", "D49", "D50"}
        If array.Indexof(ary, e.Col.name) >= 0 Then
            For Each c As String In ary
                If e.Row(c).contains("P") Then
                    e.Style = "橙底"
                End If
                If e.Row(c).contains("F") Then
                    e.Style = "绿底"
                End If
            Next
        End If
End Select

上面 drawcell 里面的代码,我是希望含有P的列才是橙色,但是现在造成从D1 到 D50 的所有列都是橙色。请问要怎样修改才行呢?谢谢。

--  作者:有点蓝
--  发布时间:2022/11/28 13:32:00
--  
Select Case e.Col.name 
    Case "D1", "D2", "D3", "D4", "D5", "D6", "D7", "D8", "D9", "D10", "D11", "D12", "D13", "D14", "D15", "D16", "D17", "D18", "D19", "D20", "D21", "D22", "D23", "D24", "D25", "D26", "D27", "D28", "D29", "D30", "D31", "D32", "D33", "D34", "D35", "D36", "D37", "D38", "D39", "D40", "D41", "D42", "D43", "D44", "D45", "D46", "D47", "D48", "D49", "D50" 
if e.Row.isnull(e.Col.name) = false
                If e.Row(e.Col.name).contains("P") Then
                    e.Style = "橙底"
                elseIf e.Row(c).contains("F") Then
                    e.Style = "绿底"
                End If
End If
End Select

--  作者:edisontsui
--  发布时间:2022/11/28 16:26:00
--  
谢谢。
--  作者:edisontsui
--  发布时间:2022/12/8 9:09:00
--  
Select Case e.Col.name 
    Case "D1", "D2", "D3", "D4", "D5", "D6", "D7", "D8", "D9", "D10", "D11", "D12", "D13", "D14", "D15" 
       For Each r As Row In Tables("模具项目进度").rows
            Dim r1 As Row = Tables("模具项目进度").rows(r.index + 1)
            If r("计划实际") = "月份" Then \'找出月份那行
                If r(e.Col.name) = "10" Then \'如果某列的月份一行等于10
                    If r1(e.Col.name) = "1" Then \'如果某列的日期一行等于1
                            e.Style = "红底白字"
                    End If
                End If
            End If
        Next 
end select

上面代码我希望月份那行为10,在其下一行的日期为1的时候,1号这个日期就是红底白字。但是,运行结果是10月1日这列全列都是红底白字。请问要怎样修改代码?谢谢。

--  作者:有点蓝
--  发布时间:2022/12/8 9:22:00
--  
截图看看表格数据是怎么样的
--  作者:edisontsui
--  发布时间:2022/12/8 10:35:00
--  

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

--  作者:有点蓝
--  发布时间:2022/12/8 10:43:00
--  
Select Case e.Col.name 
    Case "D1", "D2", "D3", "D4", "D5", "D6", "D7", "D8", "D9", "D10", "D11", "D12", "D13", "D14", "D15" 
            If e.row("计划实际") = "月份" Then \'找出月份那行
Dim r1 As Row = e.Table.rows(e.row.index - 1)
                If r1(e.Col.name) = "10" andalso e.row(e.Col.name) = "1" Then \'如果某列的月份一行等于10
                    e.Style = "红底白字"
                End If
            End If
end select

--  作者:edisontsui
--  发布时间:2022/12/8 11:16:00
--  
谢谢。