Relations

一般用户可以忽略本节内容,因为很少需要通过代码来管理关联的。

Relations表示关联集合,可以获得指定名称的关联,例如:

Dim re As Relation
re = Relations(
"ab"
)

Relations包括以下属性和方法。

Count

返回关联数量。

Add

用于添加关联

语法:

Add(RelationName, ParentCol, ChildCol,Visible, RelationPath)

RelationName:    关联名称
ParentCol:       父表关联列
ChildCol:        子表关联列
Visible:         可选参数,是否显示关联表 
RelationPath:    RelationPathEnum型枚举,用于设置关联表生成模式,有三个可选值,分别是:One(单向生成),Both(双向生成),None(不生成)

示例

在产品表和订单表之间,通过产品编号建立关联:

Relations.Add("关联1",DataTables("产品").DataCols("产品编号"),DataTables("订单").DataCols("产品编号"))

如果创建关联只是为了方便获取数据,并不需要显示关联表,可以将代码改为:

Relations.Add("关联1",DataTables("产品").DataCols("产品编号"),DataTables("订单").DataCols("产品编号"), False, RelationPathEnum.None)

ParentCol和ChildCol也可以是数组,这样可以通过多列创建关联,例如产品表和订单表,需要通过品名和型号两列建立关联:

Dim DataCols1(1) As DataCol
Dim
DataCols2(1) As DataCol
DataCols1(
0) = DataTables("产品").DataCols("品名")
DataCols1(
1) = DataTables("产品").DataCols("型号")
DataCols2(
0) = DataTables("订单").DataCols("品名")
DataCols2(
1) = DataTables("订单").DataCols("型号")
Relations.Add(
"po", DataCols1, DataCols2)

Delete

删除指定名称的关联,这个关联必须是通过Add方法增加的。

示例

删除名称为“关联1”的关联:

Relations.Delete("关联1")

Contains

判断是否存在指定名称的关联。

示例

判断是否存在名称为“关联1”的关联:

If Relations.Contains("关联1") Then
   
MessageBox.Show("关联1已经建立!")
End If


本页地址:http://www.foxtable.com/webhelp/topics/1942.htm