Rss & SiteMap

Foxtable(狐表) http://www.foxtable.com

新一代数据库软件,完美融合Access、Foxpro、Excel、vb.net之优势,人人都能掌握的快速软件开发工具!
共3 条记录, 每页显示 10 条, 页签: [1]
[浏览完整版]

标题:多条件问题

1楼
lin98 发表于: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

2楼
lin98 发表于:2025/4/2 13:47:00

图片点击可在新窗口打开查看此主题相关图片如下:多条件.jpg
图片点击可在新窗口打开查看
3楼
有点蓝 发表于: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("原数") 
……下面全部套用同样的用法,就不再重复了
共3 条记录, 每页显示 10 条, 页签: [1]

Copyright © 2000 - 2018 foxtable.com Tel: 4000-810-820 粤ICP备11091905号

Powered By Dvbbs Version 8.3.0
Processed in .02734 s, 2 queries.