Rss & SiteMap
Foxtable(狐表) http://www.foxtable.com
Dim d1 as Date = 出生日期
Dim d2 as Date = Date.Today
Output.Show(d2.Year - d1.Year+1 & "岁")
将年龄列的计算代码设为:
If
e.DataRow.IsNull("出生日期") Then '如果没有输入出生日期
设置计算代码之后,我们随时可以通过菜单按钮来重算年龄列,得到最新的年龄数据:
现在重算的问题解决了,但是却有新的问题,输入或修改出生日期,年龄列的数据不会自动刷新,除非你重算年龄列。
我们需要在DataColChanged事件中加入代码,使得出生日期发生变化后,能够自动重算该行的年龄列:
If
e.DataCol.Name = "出生日期" ThenRecalc是DataCol类型的一个方法,用于重算列(也就是重新运行该列的计算代码)。
给Recalc加上参数e.DataRow,表示仅仅重算出生日期发生变化的这一行,如果省略这个参数,将重算整个年龄列,大大增加系统的负荷。
经过上述设置,输入出生日期,年龄可以自动计算,如果年龄的计算规则有变,修改了年龄列的计算代码,我们只需重算年龄列,即可得到按新规则计算得出的年龄。
如果到了明年,也只需重算年龄列即可得到最新的年龄。
设置计算代码之后,我们随时可以通过菜单按钮来重算年龄列,得到最新的年龄数据:
现在重算的问题解决了,但是却有新的问题,输入或修改出生日期,年龄列的数据不会自动刷新,除非你重算年龄列。
我们需要在DataColChanged事件中加入代码,使得出生日期发生变化后,能够自动重算该行的年龄列:
If
e.DataCol.Name = "出生日期" ThenRecalc是DataCol类型的一个方法,用于重算列(也就是重新运行该列的计算代码)。
给Recalc加上参数e.DataRow,表示仅仅重算出生日期发生变化的这一行,如果省略这个参数,将重算整个年龄列,大大增加系统的负荷。
经过上述设置,输入出生日期,年龄可以自动计算,如果年龄的计算规则有变,修改了年龄列的计算代码,我们只需重算年龄列,即可得到按新规则计算得出的年龄。
如果到了明年,也只需重算年龄列即可得到最新的年龄。
还需在数据表→表属性→事件→DataColChanged→设置如上的重算代码