以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  [求助] 请教关于BeforeLoadInnerTable事件的问题  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=54961)

--  作者:time
--  发布时间:2014/8/8 2:12:00
--  [求助] 请教关于BeforeLoadInnerTable事件的问题

\'用项目事件的 BeforeLoadInnerTable对于查询者,只加载有效结束日期10天以内的机构数据行:
If e.DataTableName = "表A" AndAlso e.User.Name = "查询者" Then
    Dim StartDate As Date = Date.Today().AddDays(-10)
    e.Filter = "[有效结束日期] > #" & StartDate & "#"
End If

以上为第一种要求的代码


一下为第二种要求的代码

\'假定对于表A要采用分页加载功能,每次加载30行.
\'设计步骤:\'1/2首先要确保默认不加载任何数据.\'如果是内部表,\'设置项目事件BeforeLoadInnerTable的代码为:
If e.DataTableName = "表A" Then
    e.Filter = "[_Identify] Is Null"
End If
设计步骤:2/2在AfterOpenProject事件中设置代码,\'打开加载树,每页加载30行,并默认加载第一页数据:
Tables("表A").OpenLoadTree("省|地区",150,30,True)


这两个加载目同时使用的只能实现第二种,去掉第二种要求的代码,才可以正常实现第一种要求,


请问怎样才能让两种目的同时有效,既能对于过期的数据不加载,又能实现加载树的功能?

 

我对代码编程一窍不通,请按照详细步骤启示。提前预谢!!!

 


--  作者:有点甜
--  发布时间:2014/8/8 9:54:00
--  

1、

 

If e.DataTableName = "表A" Then

    If e.User.Name = "查询者" Then
        Dim StartDate As Date = Date.Today().AddDays(-10)
        e.Filter = "[有效结束日期] > #" & StartDate & "#"

    Else

        e.Filter = "[_Identify] Is Null"

    End If
End If

 

2、

 

Tables("表A").OpenLoadTree("省|地区",150,30,True)


--  作者:time
--  发布时间:2014/8/8 11:33:00
--  

我试过出现下列情况:

 

.NET Framework 版本:2.0.50727.3053
Foxtable 版本:2014.8.6.1
错误所在事件:项目,BeforeLoadInnerTable
详细错误信息:
Object reference not set to an instance of an object.


--  作者:有点甜
--  发布时间:2014/8/8 11:36:00
--  

 你写了什么代码?这一句写在AfterOpenProject事件里去

 

Tables("表A").OpenLoadTree("省|地区",150,30,True)


--  作者:time
--  发布时间:2014/8/8 11:47:00
--  

好了,非常谢谢!

 

在AfterOpenProject事件中设置以下代码,\'打开加载树,

 

 

 

 

Tables("表A").OpenLoadTree("省|地区",150,30,True)


--  作者:time
--  发布时间:2014/8/8 13:15:00
--  

点击系统菜单加载树---设置加载树后出现:

 

.NET Framework 版本:2.0.50727.3053
Foxtable 版本:2014.8.6.1
错误所在事件:菜单,SetLoadTree,Click
详细错误信息:
Object reference not set to an instance of an object.

 

 

请教怎样恢复 :点击系统菜单加载树---设置加载树的功能?


--  作者:time
--  发布时间:2014/8/8 13:17:00
--  
提示表A不存在名为 ""的列!
--  作者:time
--  发布时间:2014/8/8 13:23:00
--  

\'用项目事件的 BeforeLoadInnerTable对于查询者,只加载有效结束日期10天以内的机构数据行:
If e.DataTableName = "表A" AndAlso e.User.Name = "查询者" Then
    Dim StartDate As Date = Date.Today().AddDays(-10)
    e.Filter = "[有效结束日期] > #" & StartDate & "#"
End If

 

我打算用上列代码结合筛选树,请问如果以后数据表的行数庞大,是否影响启动,数据表行数增加到什么极限,最终会引起什么结果?谢谢!


--  作者:time
--  发布时间:2014/8/8 13:50:00
--  
\'假定对于表A要采用分页加载功能,每次加载30行.
\'设计步骤:
\'1/2首先要确保默认不加载任何数据.
\'如果是内部表,\'设置项目事件BeforeLoadInnerTable的代码为:
\'If e.DataTableName = "表A" Then
\'    e.Filter = "[_Identify] Is Null"
\'End If
\'2/2在AfterOpenProject事件中设置代码,\'打开加载树,每页加载30行,并默认加载第一页数据:
Tables("表A").OpenLoadTree("|省|地区|市",130,1000,True)
Dim StartDate As Date = Date.Today().AddDays(-10)

--  作者:有点甜
--  发布时间:2014/8/8 14:08:00
--  

 回复楼上,代码这样写

 

Tables("表A").OpenLoadTree("省|地区|市",130,30,True)

DataTables("表A").LoadPage = 0

DataTables("表A").LoadTop = 30

DataTables("表A").Load