在上面的代码中,我们使用iframe嵌入了用户报告,以便在用户单击“签入”或“签出”后自动刷新用户报告(iframe)。我们还通过设置zc_SecHeader = false来隐藏用户报告中存在的辅助标题,以防止用户手动从报告中添加或修改记录。登录的用户筛选器可以直接应用于报表,也可以通过使用URL中的参数“ Email =“ + zoho.loginuserid”来直接应用。
管理员报告是使用DIV标签添加的,并且使用if条件仅显示给帐户的超级管理员。if(zoho.loginuserid == zoho.adminuserid)
如果需要,我们可以使用以下条件添加其他非管理员电子邮件,以使管理员报告可用于这些特定用户:
管理员还可以选择签出用户,以防他们在轮班结束时忘记了。
管理员报告
使用状态字段(即下拉字段)创建看板报告,您可以在状态字段的更新时添加代码。例如,当管理员将记录从“签入时间”列拖到“签出时间”时列中,用户将被自动检出。
创建工作流程时,当记录在案时,您需要选择“运行时编辑 ”。
下面是您需要在“状态字段的更新时”中编写的脚本,以便将记录拖放到看板报告的“签出时间”列时,将捕获签出时间。
- if(input.Status == "Checked Out" && input.Check_out_time == null)
- {
- input.Check_out_time = zoho.currenttime;
- mil_sec = (input.Check_out_time - input.Check_in_time);
- actual_minutes = mil_sec / (1000 * 60);
- //1000 -> mill sec to sec, 60 -> sec to min
- mins = actual_minutes.toLong() % 60;
- // % 60 -> Exclude Hours
- hours = (actual_minutes / 60).toLong();
- // 60 -> min to hour, % 24 (optional) -> Exclude Days
- time_string = hours + " : " + mins;
- input.Total_time = time_string;
- }
我们还向管理员报告添加了一个过滤器,使管理员可以查看当天签入和签出的所有员工。并且,如果需要,您可以根据需要按星期或一个月对其进行编辑。
注意:我们即将推出hoursBetween函数,该函数可用于查找入住时间和退房时间之间的时差。此函数将返回给定的开始和结束日期时间值之间的小时差。
我们希望此技巧对您有用!如果您有任何疑问,请随时在下面的评论中提问,我们很乐意为您解决!