Foxtable(狐表)用户栏目专家坐堂 → 父子表同步加载有多个关联列时怎么办?


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

主题:父子表同步加载有多个关联列时怎么办?

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


加好友 发短信
等级:四尾狐 帖子:976 积分:8521 威望:0 精华:0 注册:2012/2/9 16:35:00
父子表同步加载有多个关联列时怎么办?  发帖心情 Post By:2013/11/27 10:34:00 [只看该作者]

父表与子表同步加载

要完成这样的任务很简单,只需在订单表的AfterLoad事件中加入以下代码即可:

If DataTables("订单").DataRows.Count = 0 Then '如果订单表没有数据
DataTables(
"订单明细").LoadFilter = "订单ID Is Null" '不加载订单明细
Else
Dim
ids As String
For Each
dr As DataRow In DataTables("订单").DataRows
ids = ids & "," & dr("订单ID")
Next
ids= ids.Trim(",")
DataTables(
"订单明细").LoadFilter = "订单ID In (" & ids & ")"
End If
DataTables(
"订单明细").Load()



当主表可能有多个关联列时,并且关联列的数据类型可能不一样。此时想用数组来累加生成加载条件,但下面红色部分不知怎么写?


  Dim Recols As String = “订单ID,产品编号”

  For Each dr In DataTables(e.DataTable.name).DataRows

     dim rec() as string = Recols.split(",")

     For i As Integer = 0 To  rec().Length - 1

         ids = ids & ",'" & dr(Rcol) & "'"  ‘这里应该是多维数组累计,或者可以用两个集合吗?

     Next

  Next


谢谢!


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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2013/11/27 10:39:00 [只看该作者]

多个关联列就异常麻烦了,其实我搞不懂你们为什么要用多个关联列,一个唯一标识关联列不知道多好

多个关联列就要用下面这种格式了

"(第一列='abc' and 第二列='a123') or (第一列='abd' and 第二列='a124') or (第一列='abe' and 第二列='a125')"

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


加好友 发短信
等级:四尾狐 帖子:976 积分:8521 威望:0 精华:0 注册:2012/2/9 16:35:00
  发帖心情 Post By:2013/11/27 10:55:00 [只看该作者]

谢谢BIN,那样确实太麻烦了,主要是窗口中有三个表,比如主表是生产单,子表是生产单的工序明细(通过生产单号与主表关联), 工序明细还有一个子表是工序物料明细(其通过生产单号,工序号两列与工序明细表关联)
现在就是想加载主表生产单时同步加载其下的工序明细及每个工序明细下面的物料明细表。你的意思是工序明细和物料明细另外设置一个只有一列的不相关的关联列吗

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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2013/11/27 11:00:00 [只看该作者]

设置一个唯一的标识列作为关联即可.

 回到顶部