以文本方式查看主题

-  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