报表有五个字段,分别为:员工编号,员工姓名,考勤异常类型,天值(即异常的时间算多少天数)
考勤异常类型有:迟到,早退等等报表以“员工编号”为分组头条件在分组脚统计时我想统计成,某员工迟到多少天,早退多少天这种形式
就是想把某员工的各种异常类型总天值统计出来。我在FastReport写了如下语句,但是不成功,好LateDay天值只取分组第一行的值
begin
LateDay := 0;
for i := 0 to [LINE#]-1 do
begin
if [frm_OnDutySum.adsAbnormal."memo"]='迟到' then
begin
LateDay:=LateDay+[frm_OnDutySum.adsAbnormal."Valueday"];
end;
end;
end注:[frm_OnDutySum.adsAbnormal."memo"]即异常类型字段
[frm_OnDutySum.adsAbnormal."Valueday"]为天值,单位:天
想不通如何弄了,请高手指教,谢谢了。
考勤异常类型有:迟到,早退等等报表以“员工编号”为分组头条件在分组脚统计时我想统计成,某员工迟到多少天,早退多少天这种形式
就是想把某员工的各种异常类型总天值统计出来。我在FastReport写了如下语句,但是不成功,好LateDay天值只取分组第一行的值
begin
LateDay := 0;
for i := 0 to [LINE#]-1 do
begin
if [frm_OnDutySum.adsAbnormal."memo"]='迟到' then
begin
LateDay:=LateDay+[frm_OnDutySum.adsAbnormal."Valueday"];
end;
end;
end注:[frm_OnDutySum.adsAbnormal."memo"]即异常类型字段
[frm_OnDutySum.adsAbnormal."Valueday"]为天值,单位:天
想不通如何弄了,请高手指教,谢谢了。
解决方案 »
- Delphi 解压文件的错误
- 向edit发送按键事件
- 非常着急!!搜了很多帖子,关于dbgrid的onDrawColumnCell事件的一个问题还是没能解决!
- 如何通过TControl对象遍历Form上的所有可见控件?
- Delphi 下也可以屏蔽Win200、WinXP、Windows Server 2003下的Ctrl + Alt + Del组合键了
- 有关进度条的问题!
- ★★★★老板,卖艺不卖身啊★★★★
- 请英文比较好、而且对图象处理方面的术语比较懂的兄弟帮我翻译一些名词,先谢谢了。200分。
- 小弟有一个做向导的程序,可是有点问题,请大家帮忙. 附:源程序
- Delphi 7 Studio Architect
- Rave报表中的汉字没有透明化,如何处理?
- 求和.Net中的System.Security.Cryptography.DESCryptoServiceProvider类兼容的des算法的Delphi实现?
‘select 员工编号,员工姓名,考勤异常类型,sum(天值) as 天值 from Table group by 员工编号,员工姓名,考勤异常类型’再在报表中用员工编号分组,再在组脚[Sum(frm_OnDutySum.adsAbnormal."天值")]
我的报表要把所有的记录显示出来,
所以不能用sum(天值)这样的求法
在组脚[Sum(frm_OnDutySum.adsAbnormal."天值")]这个语句会把所有的天值统计出来
我要的效果是统计其中几条记录,而不是所有
但是这个结果怎么插入到报表的分组脚中显示
否则就要用这样的查询语句
select 员工编号,员工姓名 sum(天值) as 迟到 ,旷工=(select sum(天值) from table as B where b.考勤异常类型='旷工' and b.员工编号=a.员工编号 group by 员工编号,员工姓名,考勤异常类型),早退=(select sum(天值) from table as c where c.考勤异常类型='早退' and c.员工编号=a.员工编号 group by 员工编号,员工姓名,考勤异常类型) from Table as a where c.考勤异常类型='迟到' group by 员工编号,员工姓名,考勤异常类型 ’再在报表中用员工编号分组,再在组脚[Sum(frm_OnDutySum.adsAbnormal."迟到")+frm_OnDutySum.adsAbnormal."早退")+frm_OnDutySum.adsAbnormal."旷工")]
用面的试试
'select 员工编号,员工姓名 sum(天值) as 迟到 ,旷工=(select sum(天值) from table as B where b.考勤异常类型='旷工' and b.员工编号=a.员工编号 group by 员工编号,员工姓名,考勤异常类型),早退=(select sum(天值) from table as c where c.考勤异常类型='早退' and c.员工编号=a.员工编号 group by 员工编号,员工姓名,考勤异常类型) from Table as a where a.考勤异常类型='迟到' group by 员工编号,员工姓名,考勤异常类型'再在报表中用员工编号分组,再在组脚 迟到合计:[Sum(frm_OnDutySum.adsAbnormal."迟到")]
早退合计:[Sum(frm_OnDutySum.adsAbnormal."早退")]
旷工合计:[Sum(frm_OnDutySum.adsAbnormal."旷工")]
总合计:[Sum(frm_OnDutySum.adsAbnormal."迟到")+frm_OnDutySum.adsAbnormal."早退")+frm_OnDutySum.adsAbnormal."旷工")]
1.在分组头设置如下变量
LateDays := 0; --迟到
EarlyDays := 0; --早退
AbsentDays := 0; --旷工2.在主项数据里面判断
begin
if [frm_OnDutySum.adsAbnormal."memo"] = '迟到' then
LateDays := LateDays + [Abnormal]
else if [frm_OnDutySum.adsAbnormal."memo"] = '早退' then
EarlyDays := EarlyDays + [Abnormal]
else if [frm_OnDutySum.adsAbnormal."memo"] = '旷工' then
AbsentDays := AbsentDays + [Abnormal];
end注:[frm_OnDutySum.adsAbnormal."memo"]是异常类型在报表中的显示3.在分组脚中如下显示
迟到:[LateDays] 天 早退:[EarlyDays] 天 旷工:[AbsentDays] 天