BeforeLoadInnerTable

普通用户可以忽略本事件。
打开项目,准备加载某内部数据表的时候执行,可以在此更改加载的字段和条件。

e参数属性:

DataTableName:   正在加载的数据表名称。
Fields:          指定加载的字段(列),不同字段用逗号分割。
Filter:          设置过滤条件,只加载符合此条件的数据。
User:            登录用户。
Cancel:          逻辑型,设置为True,将不加载此表。
HideSplashForm: 逻辑型,设为True,关闭Foxtable的启动封面。

注意此事件必须通过e.User来引用用户。
如果数据量很大,可以通过用此事件设置条件,只加载部分数据,甚至不加载数据,在运行的过程中根据条件动态加载数据。
有关动态加载数据,会有专门的章节介绍。

示例一

初始不加载任何数据:

If e.DataTableName = "订单" Then
    e.Filter = "[_Identify] Is Null"
End If

由于_Identify列是不可能为空的,所以上述代码会使得订单表初始不加载任何数据。

示例二

对于录入员,只加载当天的订单:

If e.DataTableName = "订单" AndAlso e.User.Name = "录入员" Then
    e.Filter =
"[日期] = #" & Date.Today & "#"
End
If

示例三

对于录入员,只加载10天以内的订单:

If e.DataTableName = "订单" AndAlso e.User.Name = "录入员" Then
    Dim
StartDate As Date = Date.Today().AddDays(-10)
    e.Filter =
"[日期] > #" & StartDate & "#"
End
If

示例四

对于录入员,只加载本年的订单:

If e.DataTableName = "订单" AndAlso e.User.Name = "录入员" Then
    Dim
StartDate As New Date(Date.Today.Year, 1, 1)
   
Dim EndDate As New Date(Date.Today.Year, 12 ,31)
    e.Filter =
"[日期] >= #" & StartDate & "# And [日期] <= #" & EndDate & "#"
End
If

示例五

只加载业务员为登录用户的订单:

If e.DataTableName = "订单"
    e.Filter =
"[业务员] = '" & e.User.Name & "'"
End
If

示例六

只加载折扣在0.05和0.15之间的订单:

If e.DataTableName = "订单" Then
    e.Filter = "
[折扣] Between 0.05 And 0.15"
End
If

示例七

只加载上海和北京地区的订单:

If e.DataTableName = "订单" Then
    e
.Filter = "[地区] In ('上海','北京')"
End
If


本页地址:http://www.foxtable.com/webhelp/topics/0669.htm