Foxtable(狐表)用户栏目专家坐堂 → 多条件问题


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

主题:多条件问题

帅哥,在线噢!
lin98
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1418 积分:9481 威望:0 精华:0 注册:2020/11/4 22:15:00
多条件问题  发帖心情 Post By:2025/4/2 13:46:00 [只看该作者]

需求:

如果  计划数>原数
      如果 计划数不为空  And 完成数不为空   And    完成数>计划数
              完成率=dr1("完成数") / dr1("计划数")*1.5
     如果 计划数不为空  And 完成数不为空   And    完成数=计划数
             完成率=dr1("完成数") / dr1("计划数")*1.3
     如果 计划数不为空  And 完成数不为空   And    完成数<计划数  And 完成数<原数
            完成率=dr1("完成数") / dr1("计划数")*1.05
     如果 计划数不为空  And 完成数=0
           完成率=0

如果  计划数<原数
         
      如果 原数不为空  And 完成数不为空   And    完成数>原数
              完成率=dr1("完成数") / dr1("原数")*1.2
     如果 原数不为空  And 完成数不为空   And    完成数=原数
             完成率=dr1("完成数") / dr1("原数")*1.0
          如果 原数不为空  And 完成数=0
           完成率=0
     如果 原数不为空  And   完成数<原数  And (完成数/原数)<0.6
           完成率=0

   否则
            完成率=dr1("完成数") / dr1("原数")*0.5


下面代码,如何改为实现上面的需求

Dim dr1 As DataRow = e.DataRow
Select Case e.DataCol.Name 
    Case "完成数", "计划数", "原数"
        If dr1("完成数") Is Nothing OrElse dr1("计划数") Is Nothing OrElse dr1("原数") Is Nothing Then
            dr1("完成率") = Nothing
        Else 
            If dr1("计划数") > dr1("原数") And dr1("计划数") > 0 Then
                
                dr1("完成率") = dr1("完成数") / dr1("计划数")
                
            Else
                dr1("完成率") = dr1("计划数") / dr1("完成率")
                
            End If
            
            If dr1("计划数") < dr1("原数") And dr1("原数") > 0Then
                
                
                dr1("完成率") = dr1("完成数") / dr1("原数")
            Else
                
                dr1("完成率") = dr1("原数") / dr1("完成数")
            End If
            
            
            
        End If
End Select


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


加好友 发短信
等级:六尾狐 帖子:1418 积分:9481 威望:0 精华:0 注册:2020/11/4 22:15:00
  发帖心情 Post By:2025/4/2 13:47:00 [只看该作者]


图片点击可在新窗口打开查看此主题相关图片如下:多条件.jpg
图片点击可在新窗口打开查看

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


加好友 发短信
等级:超级版主 帖子:113205 积分:576454 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2025/4/2 14:19:00 [只看该作者]

按照需求做就行了呀
Dim dr1 As DataRow = e.DataRow
Select Case e.DataCol.Name 
    Case "完成数", "计划数", "原数"
        If dr1("完成数") Is Nothing OrElse dr1("计划数") Is Nothing OrElse dr1("原数") Is Nothing Then
            dr1("完成率") = Nothing
        Else 
如果  计划数>原数 If dr1("计划数") > dr1("原数")
下面不需要判断为空了,因为前面已经有判断
      如果 完成数>计划数   If dr1("完成数") > dr1("计划数")
              完成率=dr1("完成数") / dr1("计划数")*1.5  dr1("完成率") = dr1("完成数") / dr1("计划数")*1.5
     如果 完成数=计划数  elseIf dr1("完成数") = dr1("计划数")
             完成率=dr1("完成数") / dr1("计划数")*1.3 dr1("完成率") = dr1("完成数") / dr1("计划数")*1.3
     如果 完成数<计划数  And 完成数<原数  elseIf dr1("完成数") < dr1("计划数") andalso dr1("完成数") < dr1("原数") 
……下面全部套用同样的用法,就不再重复了

 回到顶部