以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 如何实现条件计算? (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=158072) |
-- 作者:lgz518 -- 发布时间:2020/11/6 16:06:00 -- 如何实现条件计算? 表A的字段有“实际数量,上限数量,下限数量,安全数量,安全情况”,如何实现: “安全数量”=是(上限数量-实际数量)和 ( 下限数量-实际数量) 如果(上限数量-实际数量)=0或小于上限数量 ,( 下限数量-实际数量)=0或大于下限数量,“安全数量”显示为0或(上限数量-实际数量)的值, “安全情况”显示为”安全“; 如果(上限数量-实际数量)大于上限数量 ,“安全数量”显示为(上限数量-实际数量)的值,“安全情况”显示为”超安全“; 如果( 下限数量-实际数量)的值小于下限数量不显示,“安全数量”显示为(上限数量-实际数量)的值,“安全情况”显示为”低安全“; 也是就是“安全数量”=(上限数量-实际数量)的值与 ( 下限数量-实际数量)的值,在不等于0或超过或纸于的值,二者出现一个数据
|
-- 作者:lgz518 -- 发布时间:2020/11/6 16:19:00 -- 如:表A的字段 “实际数量,上限数量,下限数量,安全数量,安全情况” 100 120 50 0 安全 120- 100=20, 50 - 100=-50,这两值属于安全区域,所以”安全数量“显为0,”安全情况”显示为“安全”; 150 120 50 -50 超过安全 120- 150=-20, 50 - 100=-50,这两值中实际超过安全区域,所以”安全数量“显为-50,”安全情况”显示 为“超 过安全”; 30 120 50 20 低于 安全 120- 100=20, 50 - 30=20,这两值中实际低于安全区域,所以”安全数量“显为20,”安全情况”显示 为“低于安全”; 120 120 50 0 安全 120- 100=20, 50 - 100=-50,这两值属于安全区域,所以”安全数量“显为0,”安全情况”显示为“安全”;
|
-- 作者:有点蓝 -- 发布时间:2020/11/6 16:49:00 -- DataColChanged事件 Select Case e.DataCol.Name Case "实际数量","上限数量","下限数量" dim a as integer = e.datarow("上限数量") dim b as integer = e.datarow("下限数量") dim c as integer = e.datarow("实际数量") if c > a then e.datarow("安全数量") = a - c e.datarow("安全数量") = "超安全" elseif c < b then 低于安全的赋值 else 安全的赋值 end if End Select
|
-- 作者:lgz518 -- 发布时间:2020/11/6 21:42:00 -- 老师,想把上面计算,进行样式设计,实现“安全情况=超安全为样式1(红色),安全情况=低安全为样式2(黄色)。 1.样式设计好 2.下面代码在单元格没启作用 If e.Row.IsGroup AndAlso e.Col.Name = "安全情况" Then \'如果是分组行的数量列 If e.Row.Level = 0 Then \'如果是1级分组 If e.Row("安全情况") = "超安全" Then e.Style = "样式1" End If ElseIf e.Row.Level = 1 Then \'如果是二级分组 If e.Row("安全情况") = "低安全" Then e.Style = "样式2" End If End If End If 3.还想”安全数量“也跟变色 |
-- 作者:有点蓝 -- 发布时间:2020/11/7 9:03:00 -- If e.Col.Name = "安全数量" orelse e.Col.Name = "安全情况" Then \'如果是分组行的数量列 If e.Row("安全情况") = "超安全" Then e.Style = "样式1" elseIf e.Row("安全情况") = "低安全" Then e.Style = "样式2" End If End If
|