以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 求教,重新加载数据相关问题 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=20509) |
-- 作者:baoxyang -- 发布时间:2012/6/11 10:20:00 -- 求教,重新加载数据相关问题 AfterLoad 如果还没有接触动态数据加载,可以暂时忽略本事件。 在重新加载数据后执行。 e参数属性: DataTable:触发事件的DataTable 示例一 假定有两个表,分别是订单和订单明细,两者通过"订单ID"列关联起来,订单是父表,订单明细是子表,因为每个订单对应有若干订单明细。 要完成这样的任务很简单,只需在订单表的AfterLoad事件中加入以下代码即可: Dim ids As StringFor Each dr As DataRow In DataTables("订单").DataRows ids = ids & "," & dr("订单ID") Next ids= ids.Trim(",") DataTables("订单明细").LoadFilter = "订单ID In (" & ids & ")" DataTables("订单明细").Load() 上述代码会自动扫描已加载订单的订单ID,并合成订单明细表的加载条件,最后重新加载订单明细表。 但是SQL Table 通过Fill 来加载数据时存在不触发此事件。 如 Dim Total As Long 请老大指点! |
-- 作者:狐狸爸爸 -- 发布时间:2012/6/11 12:08:00 -- DataTables("xxx").Fill("....") 你原来的代码复制一份在这里... |
-- 作者:baoxyang -- 发布时间:2012/6/11 13:13:00 -- Dim ss As String = "select * from {托运单据} where 销单否 = \'否\' and 单据性质 = \'正常单\' and ((单据状态 = \'开单入库\' or 单据状态 = \'待出库\' or 单据状态 = \'已发货\' or 单据状态 = \'已送达\') and 预约状态 = \'未预约\')" Tables("S预约管理_Table1").Fill(ss,"baox",False) 重新加载数据时,表S预约管理_Table1 AfterLoad 事件不触发,估计也是一个Bug.老大看看。 |
-- 作者:狐狸爸爸 -- 发布时间:2012/6/11 15:15:00 -- fill不触发afterload事件的。 将代码复制一份到fill之后。 |
-- 作者:baoxyang -- 发布时间:2012/6/14 13:33:00 -- 以下是引用狐狸爸爸在2012-6-11 15:15:00的发言:
fill不触发afterload事件的。 将代码复制一份到fill之后。 未来可否实现Fill加载数据也触发afterload事件呢? |
-- 作者:狐狸爸爸 -- 发布时间:2012/6/14 14:25:00 -- 不会的 |