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编辑过]