【问题标题】:Using Crystal Report employee in out time calculation使用 Crystal Report 员工外出时间计算
【发布时间】:2016-06-15 14:35:46
【问题描述】:

我有这样的员工考勤软件和数据

emp id     Date             Time    
1         15/06/16          08:00 12:30  01:00 08:00        
2         15/06/16          08:00 12:30  01:00 07:30

如何使用水晶报表计算一天中的总小时数?

例如:
emp id 1 在日期 15 /06/16 总小时工作日是 12 小时 和
emp id 2 在日期 15/06/16 工作日的总小时数是 11:30。

【问题讨论】:

    标签: sql-server crystal-reports


    【解决方案1】:

    试试这个:

    创建公式:

    Split(Totext(database.Time)," ")[1]& " "&"in time"&ChrW(13)
    Split(Totext(database.Time)," ")[2]& " "&"out time"&ChrW(13)
    Split(Totext(database.Time)," ")[3]& " "&"in time"&ChrW(13)
    Split(Totext(database.Time)," ")[4]& " "&"out time"
    

    放置详细部分

    编辑........

    创建一个公式并在数据库字段之后编写以下代码并放置:

    注意:其中 Database.fieldname 包含 08:00 12:30 01:00 08:00 整个字符串

    Numbervar starthour;
    Numbervar startminute;
    Numbervar endhour;
    Numbervar endminute;
    Numbervar Finalhour;
    Numbervar Finalminute;
    Numbervar i:=0;
    
    
    
    starthour:=(ToNumber(Split(Split({Database.fieldname}," ")[2],":")[1]) - ToNumber(Split(Split({Database.fieldname}," ")[1],":")[1]));
    endhour:=(ToNumber(Split(Split({Database.fieldname}," ")[7],":")[1]) - ToNumber(Split(Split({Database.fieldname}," ")[4],":")[1]));
    startminute:=(ToNumber(Split(Split({Database.fieldname}," ")[2],":")[2]) - ToNumber(Split(Split({Database.fieldname}," ")[1],":")[2]));
    endminute:=(ToNumber(Split(Split({Database.fieldname}," ")[7],":")[2]) - ToNumber(Split(Split({Database.fieldname}," ")[4],":")[2]));
    
    if (startminute+endminute) >=60
    Then
    (
    Finalhour:=(starthour+endhour)+1;
    Finalminute:=(startminute+endminute)-60
    )
    else
    (
    Finalhour:=(starthour+endhour);
    Finalminute:=(startminute+endminute)
    )
    ;
    
    Finalhour&":"&Finalminute
    

    【讨论】:

    • 感谢您的回复,但是当转换为数字时,错误是“字符串是非数字”
    • 结果为 11.5 小时
    • 数值转换在哪里?可以发帖吗
    • siva ..... 我想计算 08:00 到 12:30 之间的差异是 5:30,而 1:30 到 8:00 是 6:30。所以每天的总小时数是 12 小时
    • 这就是我转换为数字的原因
    猜你喜欢
    • 2014-12-07
    • 2015-08-14
    • 1970-01-01
    • 1970-01-01
    • 2017-07-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-04
    相关资源
    最近更新 更多