以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  同步加载子表,适不适合加载外部数据表  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=129738)

--  作者:jq_shang
--  发布时间:2019/1/4 21:19:00
--  同步加载子表,适不适合加载外部数据表

e.DataTable.LoadChildren("子表名")
在父表的afterload下用上述命令,加载子表出现问题。
父表名称:员工基础表
子表名称:个人持证情况表、员工职称表
以上全部是外部数据表。
任务:按单位加载员工基础表,同步加载对应的持证情况表和职称表。

问题现象一:
在项目事件beforeloadoutertable中,加入代码,限制基础表加载行:
If e.DataTableName = "员工基础表" Then
    e.SelectString = "Select * Fro m {员工基础表} Where [部门] = \'" & usbm & "\'"
End If
注意,这里没有限制持证表和职称表的加载。
在“员工基础表“的afterload表事件中,加入了代码:
e.DataTable.LoadChildren("个人持证情况表")
e.DataTable.LoadChildren("员工职称表")

运行,后两个表的记录全体加载了,超出了本部门范围。
问题的原因,是不是在项目事件beforeloadoutertable中没有设置限制呢?
加入限制加载的语句后,问题出边了另外一个极端:

问题现象二:
项目事件beforeloadoutertable代码,加入了后两表禁止加载的语句:
Dim usbm As String
usbm = e.user.group

Select Case e.DataTablename    
    Case "个人持证情况表"
        e.SelectString = "Select * Fro m {个人持证情况表} Where [_Identify] Is Null"
    Case "员工职称表"
        e.SelectString = "Select * Fro m {员工职称表} Where [_Identify] Is Null"
    Case "员工基础表"
        e.Selectstring = "select * fro m {员工基础表} where [部门] = \'" & usbm & "\'"
        DataTables("员工基础表").LoadChildren("个人持证情况表")
        DataTables("员工基础表").LoadChildren("员工职称表")
End Select
最后这两句loadchildren语句,这边去掉,表事件afterload中加入,结果也一样——后两个表的记录,一条也没有加载进来。
所以问一下,这个loadchildren命令,对外部数据表有效吗?怎么用?

总的来说不会用,导致一抓就死,一放就乱。不限制就全加载,限制了,就完全不加载。就不听话。
[此贴子已经被作者于2019/1/4 21:29:25编辑过]

--  作者:有点蓝
--  发布时间:2019/1/4 21:38:00
--  
应该这样

beforeloadoutertable事件
Select Case e.DataTablename    
    Case "个人持证情况表","员工职称表","员工基础表"
        e.SelectString = "Select * From {" & e.DataTablename & "} Where [_Identify] Is Null"
End Select

afteropenproject事件
DataTables("员工基础表").loadfilter = "[部门] = \'" & usbm & "\'"
DataTables("员工基础表").load

"员工基础表"的afterload表事件:
e.DataTable.LoadChildren("个人持证情况表")
e.DataTable.LoadChildren("员工职称表")

--  作者:jq_shang
--  发布时间:2019/1/4 22:39:00
--  
HI,版主辛苦了,我试试看。
当前正在看帮助文件,看得眼花缭乱。谢谢版主。

--  作者:jq_shang
--  发布时间:2019/1/4 22:55:00
--  
嗯嗯,完全解决了。
谢谢甜版主。