以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 询问“年龄”表达式命令是什么? (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=1252) |
-- 作者:byzy3260 -- 发布时间:2008/11/27 16:10:00 -- 询问“年龄”表达式命令是什么? 易表中求年龄或工龄的命令在狐表中不能用,请问狐表中年龄的表达式如何作?查询了狐表帮助文件没找到答案,请指教!谢谢! |
-- 作者:ybil -- 发布时间:2008/11/27 16:17:00 -- Dim d1 as Date = 出生日期 Output.Show(d2.Year - d1.Year+1 & "岁") |
-- 作者:狐狸爸爸 -- 发布时间:2008/11/27 16:20:00 -- 将年龄列的计算代码设为: If e.DataRow.IsNull("出生日期") Then \'如果没有输入出生日期e.DataRow("年龄") = Nothing \'则清空年龄 Else \'否则计算年龄 e.DataRow("年龄") = Date.Today.Year - e.DataRow("出生日期").Year End If
现在重算的问题解决了,但是却有新的问题,输入或修改出生日期,年龄列的数据不会自动刷新,除非你重算年龄列。 If e.DataCol.Name = "出生日期" Thene.DataTable.DataCols("年龄").Recalc(e.DataRow) End If Recalc是DataCol类型的一个方法,用于重算列(也就是重新运行该列的计算代码)。 经过上述设置,输入出生日期,年龄可以自动计算,如果年龄的计算规则有变,修改了年龄列的计算代码,我们只需重算年龄列,即可得到按新规则计算得出的年龄。 |
-- 作者:byzy3260 -- 发布时间:2008/11/27 16:47:00 -- 请问,年龄列设成“数据列”还是“表达式列”?,我把公式复制粘贴到年龄列的计算代码窗口,年龄列并没有什么变化! |
-- 作者:ybil -- 发布时间:2008/11/27 16:55:00 -- 以下是引用狐狸爸爸在2008-11-27 16:20:00的发言:
现在重算的问题解决了,但是却有新的问题,输入或修改出生日期,年龄列的数据不会自动刷新,除非你重算年龄列。 If e.DataCol.Name = "出生日期" Thene.DataTable.DataCols("年龄").Recalc(e.DataRow) End If Recalc是DataCol类型的一个方法,用于重算列(也就是重新运行该列的计算代码)。 经过上述设置,输入出生日期,年龄可以自动计算,如果年龄的计算规则有变,修改了年龄列的计算代码,我们只需重算年龄列,即可得到按新规则计算得出的年龄。 还需在数据表→表属性→事件→DataColChanged→设置如上的重算代码 |
-- 作者:byzy3260 -- 发布时间:2008/11/27 17:25:00 -- 谢谢,成功啦! |