Foxtable(狐表)用户栏目专家坐堂 → 表事件,DATACOLCAHNGED里面写,SELECT CASE


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

主题:表事件,DATACOLCAHNGED里面写,SELECT CASE

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


加好友 发短信
等级:四尾狐 帖子:842 积分:5971 威望:0 精华:0 注册:2013/6/29 9:36:00
表事件,DATACOLCAHNGED里面写,SELECT CASE  发帖心情 Post By:2015/11/8 10:00:00 [只看该作者]

表事件,DATACOLCAHNGED里面写,SELECT CASE 

Select e.DataCol.name
    Case "含量"
        Dim pr As DataRow = e.DataRow.GetParentRow("清单指引")
        If pr IsNot Nothing Then
            e.DataRow("数量") = pr("工程量") * e.NewValue
        End If
    Case "数量"
        Dim pr As DataRow = e.DataRow.GetParentRow("清单指引")
        If pr IsNot Nothing Then
            e.DataRow("含量") = e.NewValue/pr("工程量")
        End If
    Case "数量","单价","成本价"
        If e.DataRow.IsNull(e.DataCol.Name)=False Then
            e.DataRow("合价")=e.DataRow("单价")*e.DataRow("数量")
            e.DataRow("成本合价")=e.DataRow("成本价")*e.DataRow("数量")
        Else
            e.DataRow("合价")=Nothing
            e.DataRow("成本合价")=Nothing
        End If
end select 

我感觉,Case "数量"  在上面,它的代码会执行,Case "数量","单价","成本价"在下面,代码不执行?
是不是这个select case 语句不能这样写呢?

我把代码,合并成如下代码,就正常?

    Case "数量","单价","成本价"
        Dim pr As DataRow = e.DataRow.GetParentRow("清单指引")
        If pr IsNot Nothing Then
            If  pr("工程量") > 0 Then
                e.DataRow("含量") = e.DataRow("数量")/pr("工程量")
            End If
        End If
        e.DataRow("合价") = e.DataRow("单价") * e.DataRow("数量")
        e.DataRow("成本合价") = e.DataRow("成本价") * e.DataRow("数量")
[此贴子已经被作者于2015/11/8 10:03:26编辑过]

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/11/8 11:49:00 [只看该作者]

方法一:分开

 

Select e.DataCol.name
    Case "含量"
        Dim pr As DataRow = e.DataRow.GetParentRow("清单指引")
        If pr IsNot Nothing Then
            e.DataRow("数量") = pr("工程量") * e.NewValue
        End If
    Case "数量"
        Dim pr As DataRow = e.DataRow.GetParentRow("清单指引")
        If pr IsNot Nothing Then
            e.DataRow("含量") = e.NewValue/pr("工程量")
        End If
End Select
 
Select Case e.DataCol.Name
    Case "数量","单价","成本价"
        If e.DataRow.IsNull(e.DataCol.Name)=False Then
            e.DataRow("合价")=e.DataRow("单价")*e.DataRow("数量")
            e.DataRow("成本合价")=e.DataRow("成本价")*e.DataRow("数量")
        Else
            e.DataRow("合价")=Nothing
            e.DataRow("成本合价")=Nothing
        End If
end select 

 


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/11/8 11:49:00 [只看该作者]

select case,一次,只会匹配一个。


 回到顶部