0

如何在 vb6 中编写代码以捕获系统中员工的确切登录时间。

我的系统是每天的时间记录。每个员工都有登录时间表,例如

上午 8:00 - 时间上午,
12:00 PM - TimeOUTAM,
下午 1:00 - 时间INPM,
下午 5:00 超时

我想获取员工的所有时间,并根据他们的登录时间和登录时间表计算他们的迟到和不足时间。

我非常关心在每个会话中都有多个登录的员工。我如何管理它以知道它是否属于 TimeinAM、TimeOutAM、TimeinPM 或 timeoutPM。

我的表的结构是我在每个会话中都有这些额外的 BreakTime 字段。这是它的外观:

企业ID | 美时 | 突破上午 | 打破上午 | 超时AM | 时间点PM | 突破下午 | BreakInPM TimeOutPM | 迟到 | 时间不足 | 日期 |

sql 是我的数据库。

任何人都可以帮助我,我会很高兴。我现在工作了一个月。,

场景示例

EmpID=0001
Date=08-13-2013
8:00am - TimeinAM,
12:00PM - TimeOUtAM,
1:00PM - TimeINPM,
5:00pm timeoutpm

在这一天,他为上午的会议登录了 2 次

7:57:23 AM
7:58:10 AM //It happens when he thinks he didn't login. so he time in again

他早上在

12:03:01 pm

他在下午登录

01:03:05 PM

他在下午注销

05:12:27 PM

在下一个场景中,员工在上午会话中有多个登录,例如。当他离开公司进行交易时,就会发生这种情况。应该记为早上的undertime。例如:

早上他登录

7:50:12 AM

然后他在

10:30:02 AM

然后他回到

11:02:01 AM

他在上午注销

12:02:01 PM

在下午的会议上,员工的正常登录已完成

他登录

01:05:01 PM

并注销

5:04:10 PM

这是一些可能发生的情况。如果我的例子没有被清除,请发表评论。

注意:只有我确定属于 TimeInAM、TimeOutAM、TimeInPM 或 TimeOutPM。我唯一的数据是每个员工每天的登录列表。

4

1 回答 1

1

不确定我是否理解您尝试做的所有事情,但看起来一个业务规则在这里可能很方便:如果您只在每个块中使用第一个时钟,例如 15 分钟时间跨度,您将消除那些“我有打卡或不打卡”的情况下。

然后,您需要将打卡/打卡与原因相关联 - 从您的示例案例中我会看到:

  • 开始+一天结束
  • 开始+休息结束
  • 开始+异地结束

我见过的每个系统都有这样的功能,“管理员”可以手动覆盖时钟,因此您可以修复丢失的日终时钟。

如果您无法将原因内置到您正在消费的数据中,我认为您将需要能够分辨break出的业务规则offsite- 如果用户在上午 11:30 到下午 1:30 之间下班,那就是午餐break;如果是在第一个时钟之后但在午休之前,那么它是offsite; 如果用户在下午 4:30 之后下班,那么EndOfDay在此之前的任何下班但在用户从午餐后打卡回来之后,都会offsite再次下班。

使用您正在拍摄的表格结构,您需要在每个员工/日期每次打卡/下班时更新他们的记录。

您需要代码来获取适当的记录并更新它;您将需要确定在哪个字段中编写时钟时间的代码——该代码可能是一个函数,用于获取时钟时间并验证业务规则以确定字段——可能类似于Public Function GetFieldNameForClockTime(ClockTime As Date) As String.

于 2013-08-13T02:21:39.293 回答