Foxtable(狐表)用户栏目专家坐堂 → [求助]父表与子表不能同步加载(已解决)


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

主题:[求助]父表与子表不能同步加载(已解决)

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


加好友 发短信
等级:七尾狐 帖子:1530 积分:10633 威望:0 精华:0 注册:2008/9/24 11:16:00
[求助]父表与子表不能同步加载(已解决)  发帖心情 Post By:2011/11/6 20:10:00 [只看该作者]

根据帮助中的父表与子表同步加载案例,如果要求根据"订单"表"订单ID""单位"两个条件对"订单明细"表进行同步加载,以下代码应该如何修改,请各位老师帮助指教,谢谢!!

 

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()

[此贴子已经被作者于2011-11-8 8:02:53编辑过]

 回到顶部
帅哥,在线噢!
狐狸爸爸
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/11/6 20:11:00 [只看该作者]

没有办法。

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


加好友 发短信
等级:七尾狐 帖子:1530 积分:10633 威望:0 精华:0 注册:2008/9/24 11:16:00
  发帖心情 Post By:2011/11/6 20:18:00 [只看该作者]

这就惨了,明细表每个月要增加3000多条数据,全部加载简直是个灾难,狐爸老师,能否考虑采取其他方法来解决?谢谢狐爸老师的回复!!

 回到顶部
帅哥,在线噢!
狐狸爸爸
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/11/6 20:20:00 [只看该作者]

呵呵,一个订单的订单明细,和一个月的订单明细有什么关系?

一个订单会有3000个明细?

也许你的设计有问题,或许你的理解有问题。

 


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


加好友 发短信
等级:七尾狐 帖子:1530 积分:10633 威望:0 精华:0 注册:2008/9/24 11:16:00
  发帖心情 Post By:2011/11/6 20:47:00 [只看该作者]

我只是打个比方,实际情况是共20多个单位,每个单位100多个员工,每个月3000多条数据,一年就是近4万条数据,如果五年的数据就是20万,太恐怖了。

现在的方案是,每次只加载一个月的数据,也就是3000来条,应该问题不大,再次谢谢狐爸老师。


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


加好友 发短信
等级:七尾狐 帖子:1530 积分:10633 威望:0 精华:0 注册:2008/9/24 11:16:00
  发帖心情 Post By:2011/11/6 21:41:00 [只看该作者]

代码好像有点问题,报酬明细表不能加载,不知问题在哪里,请各位老师指教,谢谢!!

 

 


[此贴子已经被作者于2011-11-6 22:04:48编辑过]

 回到顶部
帅哥,在线噢!
狐狸爸爸
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/11/6 21:57:00 [只看该作者]

表达式的日期应该用#可以起来:

 

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

 


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


加好友 发短信
等级:七尾狐 帖子:1530 积分:10633 威望:0 精华:0 注册:2008/9/24 11:16:00
  发帖心情 Post By:2011/11/6 22:03:00 [只看该作者]

谢谢狐爸老师,代码运行正常。再次感谢!!

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


加好友 发短信
等级:七尾狐 帖子:1530 积分:10633 威望:0 精华:0 注册:2008/9/24 11:16:00
  发帖心情 Post By:2011/11/7 10:17:00 [只看该作者]

狐爸老师,上述代码用在内部数据源,运行正常,但是在外部数据源(SQL)的条件下出错,将"#"号去掉,又不能加载明细表,代码应该如何修改?望指教,谢谢!!

 

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

 


图片点击可在新窗口打开查看此主题相关图片如下:s.png
图片点击可在新窗口打开查看
[此贴子已经被作者于2011-11-7 10:19:33编辑过]

 回到顶部
帅哥,在线噢!
狐狸爸爸
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/11/7 14:26:00 [只看该作者]

如果数据源是SQl SERVER,日期常量用单引号而不是#号括起来,例如:
SELECT * FROM {订单} WHERE 日期 >= '1/1/1999' AND 日期 <= '1/31/1999'
如果是Oracle的数据源,必须用TO_DATE函数转换,例如加载1999年10月21日的订单:
SELECT * FROM {订单} WHERE 日期 = TO_DATE('10/21/1999','MM/DD/YYYY')

 回到顶部
总数 11 1 2 下一页