以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  怎么做 一个带判断的计算啊???  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=51663)

--  作者:洗衣粉
--  发布时间:2014/5/30 23:49:00
--  怎么做 一个带判断的计算啊???
Dim c As DataCol = DataTables("财务科相关").DataCols("实收工资")
Dim d As DataCol = DataTables("财务科相关").DataCols("应收提成")
    Dim a As String = c.name
    Dim b As String = d.name
For Each dr As DataRow In DataTables("财务科相关").DataRows
    If dr("是否会员") = True Then
        If dr("a") <= 39 Then
           dr("b") = 0
        ElseIf dr("a") > 39 And dr("a") <= 59 Then
           dr("b") = dr("a") * 0.05
        ElseIf dr("a") > 59 And dr("a") <= 99 Then
           dr("b") = 3 + (dr("a") - 60) * 0.1
        ElseIf dr("a") > 99 Then
           dr("b") = 7 + (dr("a") - 100) * 0.2
        End If
    Else
        If dr("a") <= 39 Then
           dr("b") = 0
        ElseIf dr("a") > 39 And dr("a") <= 59 Then
           dr("b") = dr("a") * 0.1
        ElseIf dr("a") > 59 And dr("a") <= 99 Then
           dr("b") = 6 + (dr("a") - 60) * 0.15
        ElseIf dr("a") > 99 Then
           dr("b") = 12 + (dr("a") - 100) * 0.2
        End If
    End If
Next

我写的相关代码如上,附图如下,请大师帮忙!!!!


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

[此贴子已经被作者于2014-5-31 12:57:08编辑过]

--  作者:洗衣粉
--  发布时间:2014/5/31 8:47:00
--  
前辈们,帮帮忙啊,初学者,好多不懂!!
--  作者:54kang
--  发布时间:2014/5/31 16:45:00
--  
你想问什么?你自己写的代码不对?还是想建一个表达式列,自动计算?
--  作者:洗衣粉
--  发布时间:2014/6/1 0:39:00
--  
一个带判断的表达式
 If dr("a") <= 39 Then
           dr("b") = 0
        ElseIf dr("a") > 39 And dr("a") <= 59 Then
           dr("b") = dr("a") * 0.05
        ElseIf dr("a") > 59 And dr("a") <= 99 Then
           dr("b") = 3 + (dr("a") - 60) * 0.1
        ElseIf dr("a") > 99 Then
           dr("b") = 7 + (dr("a") - 100) * 0.2
        End If
重要的是对输入的值进行判断

--  作者:菲舍尔
--  发布时间:2014/6/2 1:58:00
--  
 If dr(a) <= 39 Then
           dr(b) = 0
        ElseIf dr(a) > 39 And dr(a) <= 59 Then
           dr(b) = dr(a) * 0.05
        ElseIf dr(a) > 59 And dr(a) <= 99 Then
           dr(b) = 3 + (dr(a) - 60) * 0.1
        ElseIf dr(a) > 99 Then
           dr(b) = 7 + (dr(a) - 100) * 0.2
        End If

--  作者:y2287958
--  发布时间:2014/6/2 8:26:00
--  
我更喜欢用:Select Case

Select Case dr(a)
    Case
is < 39
        
dr(b) = 0
   
Case 40 To 59
       
 dr(b) = dr(a) * 0.05
   
Case 60 To 99
        
dr(b) = 3 + (dr(a) - 60) * 0.1
   
Case is > 99
        
 dr(b) = 7 + (dr(a) - 100) * 0.2

End Select


--  作者:洗衣粉
--  发布时间:2014/6/3 19:27:00
--  
谢谢各位,我看帮助上面的,列不是要加双引吗?
--  作者:有点甜
--  发布时间:2014/6/3 19:33:00
--  
以下是引用洗衣粉在2014-6-3 19:27:00的发言:
谢谢各位,我看帮助上面的,列不是要加双引吗?

 

如果是直接写列名,就要加双引号,如果是引用一个变量,就不需要加双引号。