以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]对于某个用户动态加载时不显示过期行的数据  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=58778)

--  作者:time
--  发布时间:2014/10/23 15:55:00
--  [求助]对于某个用户动态加载时不显示过期行的数据

我的项目里面设置过

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

 

用查询者身份打开时能够实现过期不加载

 

但是当动态加载某一节点时上列功能失效

 

我又用下列方法变通,增加了个辅助列“有效值”

最终目的是打算针对某用户对于过期数据不动态加载也就是点击加载树的某一个节点时对于

 

\'将DataColChanged事件设为:

If e.DataCol.Name = "有效结束日期" Then
    If e.DataRow.IsNull("有效结束日期") Then \'如果没有输入有效结束日期
        e.DataRow("有效值") = Nothing \'则清空应存
    Else
        \'否则计算应存
        e.DataRow("有效值") =  e.DataRow("有效结束日期").Year -Date.Today.Year
    End If
End If

\'在AfterOpenProject事件中,设置下面的代码:
\'DataTables("机构").DataCols("有效结束日期").RaiseDataColChanged()
\'这样每次重新打开项目,就会强行针对有效结束日期列触发DataColChanged事件,效果就像重新输入了出生日期一样.

 

为了实现不加载过期日期我新增加了个“有效值”的列,用了个上面的功能过渡到 

 

\'在BeforeLoad事件 加上 这个条件  例如
e.DataTable.loadFilter= "(" & e.DataTable.loadFilter & ") and 有效值 > 0"

 


当点击加载所有行时提醒语法错误

.NET Framework 版本:2.0.50727.3053
Foxtable 版本:2014.10.23.1
错误所在事件:加载[机构]失败!
详细错误信息:
语法错误 (操作符丢失) 在查询表达式 \'(() and 有效值 > 0)\' 中.

 

 

请教

1.当点击加载所有行时如何实现提醒"您无权加载所有行!"而不是上列的语法错误提示?

2.怎样直接实现过期不动态加载,就像某一特定的用户手机欠费时,无法正常拨打电话一样?

提别提示我是一个非常菜的菜鸟,所以请行家能够开示的更具体到项目属性之项目事件名称,提前预谢!!!


--  作者:有点甜
--  发布时间:2014/10/23 16:00:00
--  

 你可以在beforeLoad事件控制,如果加载条件是""空的,就提示,并取消这次加载。

 

 你也可以在这个事件限制加载的内容,比如原来的加载条件加上 and 10天内的数据。

 

http://www.foxtable.com/help/topics/2057.htm