以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]自动赋值的问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=34456)

--  作者:feikaba
--  发布时间:2013/6/7 20:41:00
--  [求助]自动赋值的问题
如果第一列的值等于sc则第二列的值为0.05
如果第一列的值为ssc则第二列的值也为0.05
如果第一列的值等于c则第二列的值为0
如果第一列的值等于sc则第二列的值也为0

请问这个要用代码怎么写呢?如果表达式可以用也可以用表达式!!
菜鸟求助!

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

[此贴子已经被作者于2013-6-7 22:00:36编辑过]

--  作者:feikaba
--  发布时间:2013/6/7 21:57:00
--  
If e.DataCol.name ="第一列" Then
    If e.DataRow("第一列")= "sc" Then
        e.DataRow("第二列")=0.05
    Else
        If e.DataRow("第一列")= "ssc" Then
            e.DataRow("第二列")=0.05
        Else
            If e.DataRow("第一列")= "c" Then
                e.DataRow("第二列")=0
            Else
                If e.DataRow("第一列")= "scd" Then
                    e.DataRow("第二列")=0
                End If
            End If
        End If
    End If
End If


自己试着这样写是出来了!但是觉得代码还是不够精炼!望高手指点一二!
[此贴子已经被作者于2013-6-7 21:57:56编辑过]

--  作者:y2287958
--  发布时间:2013/6/7 22:24:00
--  
试试表达式
IIF([第一列]=\'sc\' or [第一列]=\'ssc\',0.05,IIF([第一列]=\'c\' or [第一列]=\'scd\',0,\'\'))
[此贴子已经被作者于2013-6-7 22:24:51编辑过]

--  作者:狐狸爸爸
--  发布时间:2013/6/8 11:30:00
--  

用表达式最好.

 

另外你二楼的代码,如果用Select Case语句,会简洁很多:

http://www.foxtable.com/help/topics/0224.htm

 

If e.DataCol.Name = "第一列"

    Select Case e.Datarow("第一列")

        case "a"

               e.datarow(“第二列")  = 0.1

        case "g"

               e.datarow(“第二列")  = 0.2

        case "f"

               e.datarow(“第二列")  = 0.5

        case "=ua"

               e.datarow(“第二列")  = 0.9

        case "ff"

               e.datarow(“第二列")  = 0.11

     end Select

End IF