Rss & SiteMap
Foxtable(狐表) http://www.foxtable.com
怎样实现类似的功能?
我想在主表的DatacolChanging事件中进行处理,即当主表的关联列变更时,用代码查找子表中相关联的列,然后进行变更?这种办法有无问题?还有无更好的办法?
另外,既然动态建立的关联关联列不能自动更新,那么我不再动态建立关联了,而是全部改为用代码替代关联的功能(帮助有例子),不知这样有什么问题没有?执行效率哪个更高?
GetChildRows
返回一个DataRow集合,集合中包括指定子表中和该行对应的全部关联行,语法:
GetChildRows(ChildName)
ChildName: 子表名称。
示例
假定产品表和订单表之间通过产品编号建立了关联,下面的代码获得第一个产品的全部订单,并将这些订单的折扣设为0.1:
Dim
drs As List(Of Datarow)GetChildRows
返回一个DataRow集合,集合中包括指定子表中和该行对应的全部关联行,语法:
GetChildRows(ChildName)
……
注意我这个贴子的问题是:
利用动态建立的关联,怎样让子表的关联列随主表自动更新呢?除了在DatacolChanging事件进行设置,有无更好的办法呢?
没有别的办法
没有别的办法
不能在用代码动态建立关联时增加一个参数,来决定是否自动更新吗?
这样也很简单的啊:
DataColChanging事件
If e.DataCol.Name = "关联列" Then
Dim drs As List(Of Datarow)
drs = e.DataRow.GetChildRows("子表")
For Each dr As DataRow In drs
dr("关联列") = e.NewValue
Next
Next
Select Case e.DataCol.Name
Case "IO","商标
Dim kh As String = e.DataRow("IO")
Dim cp As String = e.DataRow("商标")
Dim tj = "IO = '" & kh & "' And 商标 = '" & cp & "'"
If kh >"" AndAlso cp> "" Then
If DataTables("辅料明细").Find(tj) Is Nothing Then
Dim dr As DataRow = DataTables("辅料明细").AddNew()
dr("IO") = kh
dr("商标") = cp
End If
End If
End Select
以前狐爸给我的代码,对你应该有用.
建立关联的时候,绝大多数情况下都需要关联列自动更新。
建议贺老师把系统改一下,利用代码动态建立的关联,缺省状态下关联列自动更新。这样更方便!