Foxtable(狐表)用户栏目专家坐堂 → [求助]根据条件 改变单元格颜色 然后根据单元格颜色做判断


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

主题:[求助]根据条件 改变单元格颜色 然后根据单元格颜色做判断

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


加好友 发短信
等级:婴狐 帖子:43 积分:462 威望:0 精华:0 注册:2021/9/2 16:35:00
[求助]根据条件 改变单元格颜色 然后根据单元格颜色做判断  发帖心情 Post By:2021/11/19 16:38:00 [只看该作者]

表 a 有两列 如果: 第一列>1 改变单元格颜色为红,第二列输入‘合格’会提示"第一列>1"
如果: 第一列<1 不改变单元格颜色,第二列输入‘合格’无提示会

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


加好友 发短信
等级:超级版主 帖子:107321 积分:545866 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/11/19 16:54:00 [只看该作者]

颜色到drawcell事件处理:http://www.foxtable.com/webhelp/topics/0656.htm
If e.Col.Name = "第二列" Then 
if e.row("第一列") > 1 then
    e.style = "样式1"
endif
End IF

改单元格值到datacolchanged事件处理:http://www.foxtable.com/webhelp/topics/0625.htm
If e.DataCol.Name = "第一列" Then
    
If e.DataRow.IsNull("第一列"Then
        e.
DataRow("第二列") = Nothing
    
Else
if  e.DataRow("第一列") > 1 then
        e.DataRow("第二列") = “合格
else
e.DataRow("第二列") = “不合格
endif
    End If
End If

 回到顶部
帅哥哟,离线,有人找我吗?
王小风
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:43 积分:462 威望:0 精华:0 注册:2021/9/2 16:35:00
  发帖心情 Post By:2021/11/19 17:08:00 [只看该作者]

Dim bz As DataRow

bz=DataTables("工艺标准").Find("工艺编号='" & d("排产信息_订单_工艺标准") &"'")

Select Case e.DataCol.Name

    Case "生产信息_卷头基重_a","生产信息_卷头基重_b","生产信息_卷头基重_c"

        If  (e.DataRow("生产信息_卷头基重_a")*1+e.DataRow("生产信息_卷头基重_b")*1+e.DataRow("生产信息_卷头基重_c")*1)/3 > bz("性能标准_基重_上限")*1 Then

            MessageBox.Show("请注意,卷头基重已超上限")

        ElseIf (e.DataRow("生产信息_卷头基重_a")*1+e.DataRow("生产信息_卷头基重_b")*1+e.DataRow("生产信息_卷头基重_c")*1)/3 < bz("性能标准_基重_下限")*1 Then

            MessageBox.Show("请注意,卷头基重已超下限")

        End If

End Select

Select Case e.DataCol.Name

    Case "生产信息_卷尾基重_a","生产信息_卷尾基重_c","生产信息_卷尾基重_b"

        If (d("生产信息_卷尾基重_a")*1+d("生产信息_卷尾基重_b")*1+d("生产信息_卷尾基重_c")*1)/3 > bz("性能标准_基重_上限")*1 Then

            MessageBox.Show("请注意,卷尾基重已超上限")

        ElseIf (d("生产信息_卷尾基重_a")*1+d("生产信息_卷尾基重_b")*1+d("生产信息_卷尾基重_c")*1)/3 < bz("性能标准_基重_下限")*1 Then

            MessageBox.Show("请注意,卷尾基重已超下限")

        End If

End Select

Select Case e.DataCol.Name

    Case "生产信息_抗拉强度_a","生产信息_抗拉强度_b","生产信息_抗拉强度_c"

        If (d("生产信息_抗拉强度_a")*1+d("生产信息_抗拉强度_b")*1+d("生产信息_抗拉强度_c")*1)/3>bz("性能标准_抗拉强度_上限")Then

            MessageBox.show("请注意,抗拉强度已超上限")

        ElseIf (d("生产信息_抗拉强度_a")*1+d("生产信息_抗拉强度_b")*1+d("生产信息_抗拉强度_c")*1)/3<bz("性能标准_抗拉强度_下限")Then

            MessageBox.show("请注意,抗拉强度已超下限")

        End If

End Select

Select Case e.DataCol.Name

    Case "生产信息_屈服强度_a","生产信息_屈服强度_b","生产信息_屈服强度_c"

        If (d("生产信息_屈服强度_a")*1+d("生产信息_屈服强度_b")*1+d("生产信息_屈服强度_c")*1)/3>bz("性能标准_屈服强度_上限")Then

            MessageBox.show("请注意,屈服强度已超上限")

        ElseIf (d("生产信息_屈服强度_a")*1+d("生产信息_屈服强度_b")*1+d("生产信息_屈服强度_c")*1)/3<bz("性能标准_屈服强度_下限")Then

            MessageBox.show("请注意,屈服强度已超下限")

        End If

End Select

If e.DataCol.Name="生产信息_达因值" And d("生产信息_达因值")<>"" Then

If d("生产信息_达因值")<>bz("性能标准_表面湿润度")

MessageBox.show("请注意,表面湿润度超出标准")

End If

End If

If e.DataCol.Name="生产信息_包装_管芯种类" And d("生产信息_包装_管芯种类")<>"" Then

If d("生产信息_包装_管芯种类")<>bz("包装要求_管芯种类")

MessageBox.show("请注意,管芯种类不符合要求")

End If

End If

If e.DataCol.Name="生产信息_包装_管芯长度" And d("生产信息_包装_管芯长度")<>"" Then

If d("生产信息_包装_管芯长度")*1>bz("包装要求_管芯长度_上限")*1 Or d("生产信息_包装_管芯长度")*1<bz("包装要求_管芯长度_下限")*1

MessageBox.show("请注意,管芯长度不符合要求")

End If

End If

我明白这样操作,因为这个代码比较多,所以想问下有更好的方法么?




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


加好友 发短信
等级:婴狐 帖子:43 积分:462 威望:0 精华:0 注册:2021/9/2 16:35:00
  发帖心情 Post By:2021/11/19 17:09:00 [只看该作者]

这个只是DataColChanged 的代码

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


加好友 发短信
等级:超级版主 帖子:107321 积分:545866 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/11/19 17:12:00 [只看该作者]

没有的

 回到顶部