以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]根据条件 改变单元格颜色 然后根据单元格颜色做判断 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=173228) |
-- 作者:王小风 -- 发布时间:2021/11/19 16:38:00 -- [求助]根据条件 改变单元格颜色 然后根据单元格颜色做判断 表 a 有两列 如果: 第一列>1 改变单元格颜色为红,第二列输入‘合格’会提示"第一列>1" 如果: 第一列<1 不改变单元格颜色,第二列输入‘合格’无提示会
|
-- 作者:有点蓝 -- 发布时间: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 |
-- 作者:王小风 -- 发布时间: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 我明白这样操作,因为这个代码比较多,所以想问下有更好的方法么? |
-- 作者:王小风 -- 发布时间:2021/11/19 17:09:00 -- 这个只是DataColChanged 的代码 |
-- 作者:有点蓝 -- 发布时间:2021/11/19 17:12:00 -- 没有的 |