以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]请高手帮忙写代码  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=77070)

--  作者:表哥
--  发布时间:2015/11/10 16:12:00
--  [求助]请高手帮忙写代码
子表有一表达式列,父表有一表达式列来统计子表表达式列的数据。 现想通过代码实现使父表中的逻辑列根据父表的表达式列数据大小显示:是;否。 是(父表表达式列数值大于等于5);否(父表表达式列数值小于5)
--  作者:大红袍
--  发布时间:2015/11/10 16:21:00
--  
iif(第一列>=5,true,false)
--  作者:表哥
--  发布时间:2015/11/10 16:27:00
--  
什么表事件,表达式列无法触发事件
--  作者:大红袍
--  发布时间:2015/11/10 16:28:00
--  
你这里弄成表达式不就行了?
--  作者:表哥
--  发布时间:2015/11/10 16:29:00
--  
逻辑列能用表达式?
--  作者:大红袍
--  发布时间:2015/11/10 16:30:00
--  

如果写代码,就去写子表的datacolchanged事件

 

If e.DataCol.Name = "数量" Then

    Dim pdr As DataRow = e.DataRow.GetParentRow("父表")

    If pdr isNot Nothing Then

        pdr("逻辑") = (pdr("合计") >= 5)

    End If

End If


--  作者:表哥
--  发布时间:2015/11/10 16:33:00
--  
如果子表是数据列这段代码是生效的,但是我的子表也是表达式列,刚这一段还是没有作用。
--  作者:大红袍
--  发布时间:2015/11/10 16:36:00
--  
以下是引用表哥在2015/11/10 16:33:00的发言:
如果子表是数据列这段代码是生效的,但是我的子表也是表达式列,刚这一段还是没有作用。

 

那就写到某一列是数据列的datacolchanged事件里

 

 

If e.DataCol.Name = "数量" Then
   
    Dim pdr As DataRow = e.DataRow.GetParentRow("子表")
   
    If pdr IsNot Nothing Then
       
        pdr = pdr.GetParentRow("父表")
       
        If pdr IsNot Nothing Then
           
            pdr("逻辑") = (pdr("合计") >= 5)
           
            End If
           
        End If
       
    End If
   

 


--  作者:表哥
--  发布时间:2015/11/10 16:41:00
--  
我再试试吧,谢谢啦
--  作者:表哥
--  发布时间:2015/11/10 21:20:00
--  
不行啊!这个问题该怎么解决呢,表叔表舅们快帮帮我吧!