以文本方式查看主题

-  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=127842)

--  作者:vxzx
--  发布时间:2018/11/23 11:01:00
--  [求助]DrawCell 请教

DrawCell

 

Case "白度"
If e.Col.name = "白度" Then \'如果编辑的是白度列
    If e.Row.IsNull("白度") = False Then \'如果编辑的白度列不是空的
        Dim dx = DataTables("产品标准").Find("配方名称 = \'" & e.Row("配方名称") & "\'") \'查找产品标准表中配方名称列对应编辑表的配方名称列
        If dx IsNot Nothing  Then \' 如果不是什么东西都没有,即找到对应名称
            If val(e.Row("白度")) < val(dx("白度_最低值")) OrElse val(e.Row("白度")) > val(dx("白度_最高值")) Then \' 同时如果输入的数值比标准低或高
                e.Table.DataTable.AddUserStyle("不合格", Color.red, Color.black) \' 定义不合格的格式
                e.Style = "不合格" \' 编辑数据为不合格格式显示
         Else \' 反之
                e.Table.DataTable.AddUserStyle("合格", Color.LawnGreen, Color.black) \' 定义合格的格式
                e.Style = "合格" \' 编辑数据为合格格式显示
            End If
        End If
    End If  
End If

 

我上边的代码和备注有没有理解错误?如果我要加入内容“查找产品标准表中配方名称列对应编辑表的配方名称列,如果找到对应,同时“白度_最低值”列 为空,那么显示格式为“不需要格式”显示”,要怎么加代码进去?我改成下面的代码,不行,求助,谢谢。

Case "白度"
If e.Col.name = "白度" Then 
    If e.Row.IsNull("白度") = False Then 
        Dim dx = DataTables("产品标准").Find("配方名称 = \'" & e.Row("配方名称") & "\'") 
        If dx IsNot Nothing  Then 
           If dx.IsNull("白度_最低值") Then
       e.Table.DataTable.AddUserStyle("不需要", Color.black, Color.black)
            e.Style = "不需要"

           If val(e.Row("白度")) < val(dx("白度_最低值")) OrElse val(e.Row("白度")) > val(dx("白度_最高值")) Then 
                e.Table.DataTable.AddUserStyle("不合格", Color.red, Color.black) 
                e.Style = "不合格" 
         Else \' 反之
                e.Table.DataTable.AddUserStyle("合格", Color.LawnGreen, Color.black) 
                e.Style = "合格" 
            End If
        End If
    End If  
End If
End If

 


--  作者:有点甜
--  发布时间:2018/11/23 11:29:00
--  
If e.Col.name = "白度" Then
    If e.Row.IsNull("白度") = False Then
        Dim dx = DataTables("产品标准").Find("配方名称 = \'" & e.Row("配方名称") & "\'")
        If dx IsNot Nothing  Then
            If dx.IsNull("白度_最低值") Then
                e.Table.DataTable.AddUserStyle("不需要", Color.black, Color.black)
                e.Style = "不需要"
            Else
                If val(e.Row("白度")) < val(dx("白度_最低值")) OrElse val(e.Row("白度")) > val(dx("白度_最高值")) Then
                    e.Table.DataTable.AddUserStyle("不合格", Color.red, Color.black)
                    e.Style = "不合格"
                End If
            End If           
        Else \' 反之
            e.Table.DataTable.AddUserStyle("合格", Color.LawnGreen, Color.black)
            e.Style = "合格"
        End If
    End If
End If

--  作者:vxzx
--  发布时间:2018/11/23 11:47:00
--  
以下是引用有点甜在2018/11/23 11:29:00的发言:
If e.Col.name = "白度" Then
    If e.Row.IsNull("白度") = False Then
        Dim dx = DataTables("产品标准").Find("配方名称 = \'" & e.Row("配方名称") & "\'")
        If dx IsNot Nothing  Then
            If dx.IsNull("白度_最低值") Then
                e.Table.DataTable.AddUserStyle("不需要", Color.black, Color.black)
                e.Style = "不需要"
            Else
                If val(e.Row("白度")) < val(dx("白度_最低值")) OrElse val(e.Row("白度")) > val(dx("白度_最高值")) Then
                    e.Table.DataTable.AddUserStyle("不合格", Color.red, Color.black)
                    e.Style = "不合格"
                End If
            End If           
        Else \' 反之
            e.Table.DataTable.AddUserStyle("合格", Color.LawnGreen, Color.black)
            e.Style = "合格"
        End If
    End If
End If

 

甜大神,码不对。

达到的效果是,在标准范围内显示绿色,在标准外显示红色,若没标准即不需要检测则显示黑色,同时若不需要检测的而输入了数据则也显示红色。

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.table


--  作者:有点甜
--  发布时间:2018/11/23 12:39:00
--  
If e.Col.name = "白度" Then
    If e.Row.IsNull("白度") = False Then
        Dim dx = DataTables("产品标准").Find("配方名称 = \'" & e.Row("配方名称") & "\'")
        If dx IsNot Nothing  Then
            If dx.IsNull("白度_最低值") Then
                e.Table.DataTable.AddUserStyle("不需要", Color.black, Color.black)
                e.Style = "不需要"
            Else
                If val(e.Row("白度")) < val(dx("白度_最低值")) OrElse val(e.Row("白度")) > val(dx("白度_最高值")) Then
                    e.Table.DataTable.AddUserStyle("不合格", Color.red, Color.black)
                    e.Style = "不合格"
                Else \' 反之
                    e.Table.DataTable.AddUserStyle("合格", Color.LawnGreen, Color.black)
                    e.Style = "合格"
                End If
            End If
        End If
    End If
End If

--  作者:vxzx
--  发布时间:2018/11/23 12:59:00
--  
以下是引用有点甜在2018/11/23 12:39:00的发言:
If e.Col.name = "白度" Then
    If e.Row.IsNull("白度") = False Then
        Dim dx = DataTables("产品标准").Find("配方名称 = \'" & e.Row("配方名称") & "\'")
        If dx IsNot Nothing  Then
            If dx.IsNull("白度_最低值") Then
                e.Table.DataTable.AddUserStyle("不需要", Color.black, Color.black)
                e.Style = "不需要"
            Else
                If val(e.Row("白度")) < val(dx("白度_最低值")) OrElse val(e.Row("白度")) > val(dx("白度_最高值")) Then
                    e.Table.DataTable.AddUserStyle("不合格", Color.red, Color.black)
                    e.Style = "不合格"
                Else \' 反之
                    e.Table.DataTable.AddUserStyle("合格", Color.LawnGreen, Color.black)
                    e.Style = "合格"
                End If
            End If
        End If
    End If
End If

 

甜大神,没有标准的,还是不会以黑色填充格式出现。

 


图片点击可在新窗口打开查看此主题相关图片如下:qq截图20181123125742.png
图片点击可在新窗口打开查看

--  作者:有点甜
--  发布时间:2018/11/23 15:01:00
--  
If e.Col.name = "白度" Then
    Dim dx = DataTables("产品标准").Find("配方名称 = \'" & e.Row("配方名称") & "\'")
    If dx IsNot Nothing  Then
        If dx.IsNull("白度_最低值") Then
            e.Table.DataTable.AddUserStyle("不需要", Color.black, Color.black)
            e.Style = "不需要"
        Else
            If val(e.Row("白度")) < val(dx("白度_最低值")) OrElse val(e.Row("白度")) > val(dx("白度_最高值")) Then
                e.Table.DataTable.AddUserStyle("不合格", Color.red, Color.black)
                e.Style = "不合格"
            Else \' 反之
                e.Table.DataTable.AddUserStyle("合格", Color.LawnGreen, Color.black)
                e.Style = "合格"
            End If
        End If
    End If
End If