Foxtable(狐表)用户栏目专家坐堂 → [求助] 请教关于BeforeLoadInnerTable事件的问题


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

主题:[求助] 请教关于BeforeLoadInnerTable事件的问题

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


加好友 发短信
等级:幼狐 帖子:142 积分:1649 威望:0 精华:0 注册:2014/5/3 14:52:00
[求助] 请教关于BeforeLoadInnerTable事件的问题  发帖心情 Post By:2014/8/8 2:12: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

以上为第一种要求的代码


一下为第二种要求的代码

'假定对于表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)


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


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

 

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

 


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By: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
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:142 积分:1649 威望:0 精华:0 注册:2014/5/3 14:52:00
  发帖心情 Post By: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.


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/8/8 11:36:00 [只看该作者]

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

 

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


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


加好友 发短信
等级:幼狐 帖子:142 积分:1649 威望:0 精华:0 注册:2014/5/3 14:52:00
  发帖心情 Post By:2014/8/8 11:47:00 [只看该作者]

好了,非常谢谢!

 

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

 

 

 

 

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


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


加好友 发短信
等级:幼狐 帖子:142 积分:1649 威望:0 精华:0 注册:2014/5/3 14:52:00
  发帖心情 Post By: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
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:142 积分:1649 威望:0 精华:0 注册:2014/5/3 14:52:00
  发帖心情 Post By:2014/8/8 13:17:00 [只看该作者]

提示表A不存在名为 ""的列!

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


加好友 发短信
等级:幼狐 帖子:142 积分:1649 威望:0 精华:0 注册:2014/5/3 14:52:00
  发帖心情 Post By: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
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:142 积分:1649 威望:0 精华:0 注册:2014/5/3 14:52:00
  发帖心情 Post By: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)

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/8/8 14:08:00 [只看该作者]

 回复楼上,代码这样写

 

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

DataTables("表A").LoadPage = 0

DataTables("表A").LoadTop = 30

DataTables("表A").Load

 

 


 回到顶部