Foxtable(狐表)用户栏目专家坐堂 → 如何实现条件计算?


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

主题:如何实现条件计算?

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


加好友 发短信
等级:六尾狐 帖子:1257 积分:8555 威望:0 精华:0 注册:2019/6/13 9:57:00
如何实现条件计算?  发帖心情 Post By:2020/11/6 16:06:00 [只看该作者]

表A的字段有“实际数量,上限数量,下限数量,安全数量,安全情况”,如何实现:

“安全数量”=是(上限数量-实际数量)和  ( 下限数量-实际数量)

     如果(上限数量-实际数量)=0或小于上限数量 ,( 下限数量-实际数量)=0或大于下限数量,“安全数量”显示为0或(上限数量-实际数量)的值,
              “安全情况”显示为”安全“;
     如果(上限数量-实际数量)大于上限数量 ,“安全数量”显示为(上限数量-实际数量)的值,“安全情况”显示为”超安全“;
    如果( 下限数量-实际数量)的值小于下限数量不显示,“安全数量”显示为(上限数量-实际数量)的值,“安全情况”显示为”低安全“;


也是就是“安全数量”=(上限数量-实际数量)的值与 ( 下限数量-实际数量)的值,在不等于0或超过或纸于的值,二者出现一个数据

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


加好友 发短信
等级:六尾狐 帖子:1257 积分:8555 威望:0 精华:0 注册:2019/6/13 9:57:00
  发帖心情 Post By: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,”安全情况”显示为“安全”;

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


加好友 发短信
等级:超级版主 帖子:110592 积分:562856 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By: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
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1257 积分:8555 威望:0 精华:0 注册:2019/6/13 9:57:00
  发帖心情 Post By: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.还想”安全数量“也跟变色

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


加好友 发短信
等级:超级版主 帖子:110592 积分:562856 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By: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

 回到顶部