如何动态计算工龄

WEB 报表设计中,会出现输入一个工龄之类的数字,查询比这个数字大或小的所有记录的需求。如果用 SQL 语句从数据集那端过滤是可以实现的,但是由于客户需求的多样化,在同一张报表中还要展示全部的记录,从数据集那端过滤就会略显麻烦。

本文就来通过以下的例子说明怎么用动态参数过滤以实现动态计算工龄。

第一步:为报表准备数据集:

SELECT 雇员 . 雇员 ID, 雇员 . 姓氏 , 雇员 . 名字 , 雇员 . 职务 , 雇员 . 出生日期 , 雇员 . 雇用日期 , 雇员 . 城市 , 雇员 . 地区 FROM 雇员 WHERE year( 雇员 . 雇用日期 )<? or ? is null

第二步:制作报表;

预览效果:

第三步:设置参数;

arg1 是一个普通参数,设置为整数型,用来接收用户传的条件即工龄。

arg2 是动态参数,值表达式中写 int(year(now()))-@arg1 ,利用动态参数算出早于 arg1 参数年限入职的雇员清单。

第四步:接收参数;

接收参数的类型都是默认类型。

最后:预览效果;