以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  [求助]如何在Drawcall中用代码引用父表的关联数据  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=29257)

--  作者:lyzhuo
--  发布时间:2013/3/3 14:09:00
--  [求助]如何在Drawcall中用代码引用父表的关联数据

已经知道可以用DataRow引用父表中的关联数据,可以用Row引用父表中的关联数据吗?


--  作者:狐狸爸爸
--  发布时间:2013/3/4 9:13:00
--  

既然DataRow可以,那么Row也可以。

因为Row有DataRow属性,可以返回对应的DataRow:

 

e.Row.DataRow.GetParentRow("父表名称")

 

不过确实不应该在DrawCell事件中有太多复杂的计算和引用工作,以免影响运行速度。


--  作者:lyzhuo
--  发布时间:2013/3/4 9:30:00
--  

我用了:

  Dim kmmcs As DataRow = e.Row.DataRow.GetParentRow("收入科目")
  Dim kmmc As String = kmmcs("科目名称")

  问题解决了。

 

不知道这样做是不是会影响运行速度?


--  作者:狐狸爸爸
--  发布时间:2013/3/4 9:47:00
--  
实际运行就知道了,自己能接受就行。
--  作者:lyzhuo
--  发布时间:2013/3/4 10:11:00
--  

Dim kmmcs As DataRow = e.Row.DataRow.GetParentRow("收入科目")
Select Case e.col.name
    Case "科目名称","税款所属日期","开票日期","税票类型","税票铅印号","科目代码"
        If e.Row("科目名称") = kmmcs("科目名称") And kmmcs("末级标志") = True
            e.style = "科目名称绿"
        End If
    Case "乡镇代码","乡镇名称","征收部门代码","征收部门名称"
        e.style = "黄色"
End Select

 

改成了以上代码,可以运行,但是过一会儿会出现以下错误代码,并清除了所有格式,不知是什么原因?

Exception has been thrown by the target of an invocation.

 


--  作者:狐狸爸爸
--  发布时间:2013/3/4 10:13:00
--  

Dim kmmcs As DataRow = e.Row.DataRow.GetParentRow("收入科目")
If kmmcs  IsNot Nothing Then
    Select Case e.col.name
        Case "科目名称","税款所属日期","开票日期","税票类型","税票铅印号","科目代码"
            If e.Row("科目名称") = kmmcs("科目名称") And kmmcs("末级标志") = True
                e.style = "科目名称绿"
            End If
        Case "乡镇代码","乡镇名称","征收部门代码","征收部门名称"
            e.style = "黄色"
    End Select
End If


--  作者:lyzhuo
--  发布时间:2013/3/4 10:15:00
--  
问题解决了,谢谢狐狸爸爸