Foxtable(狐表)用户栏目专家坐堂 → [求助]DrawCell 请教


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

主题:[求助]DrawCell 请教

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


加好友 发短信
等级:幼狐 帖子:64 积分:632 威望:0 精华:0 注册:2018/3/25 16:34:00
[求助]DrawCell 请教  发帖心情 Post By:2018/11/23 11:01:00 [只看该作者]

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

 


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By: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
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:64 积分:632 威望:0 精华:0 注册:2018/3/25 16:34:00
  发帖心情 Post By: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


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By: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
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:64 积分:632 威望:0 精华:0 注册:2018/3/25 16:34:00
  发帖心情 Post By: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
图片点击可在新窗口打开查看

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By: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

 回到顶部