1

我对 VB 很陌生,我正在做一个项目来记录员工打卡和打卡的细节。我想知道如何做到这一点,所以当点击“打卡”按钮时,时间将开始记录,而当按下“打卡”按钮时,时间将停止记录。此外,一旦点击了打卡,打卡和打卡之间的小时数将被记录并存储到 mySQL 数据库中。

此信息将输出到 DataGrid 中,显示员工打卡的时间和日期。

然后,小时数将乘以预先编写的小时工资......它已经存储在我的 mySQL 数据库中的一个表中。

任何帮助,将不胜感激。

4

2 回答 2

0

您应该存储事件而不是结果。

存储打卡时间以及打卡时间的一行。然后,您将需要在您的数据库或应用程序中使用一个过程,该过程将遍历行并将时钟输入与时钟输出匹配。

这种方法将使应用程序崩溃/终止并重新启动而不会丢失数据。

或者,您可以将签到和签出放在同一记录(不同的列)中,只需将签出插入匹配员工和空签出的第一行。

于 2012-12-27T20:55:43.793 回答
0

我会让时钟按钮在程序中触发一个事件,该事件为我假设您当时拥有的员工 ID 创建了一条记录。

然后,一旦单击“下班”按钮,您将触发一个事件,该事件将发送到您的数据库,并使用您正在寻找的员工 ID、有效的时钟时间和空值来提取它找到的第一条记录. 如果程序没有找到符合所有条件的东西,你将不得不处理你想要的(我会在员工登录时进行查找或其他任何事情,如果没有记录,则只允许他们访问打卡按钮存在并且只有在找到他们的 ID 记录时才允许他们使用打卡按钮)。

一旦您在内存中拥有该记录,您应该设置下班时间并使用之前写入数据库的时钟计算差异。

我将使用数据库中的存储过程来处理添加/更新/管理记录并进行所有计算以及在程序本身内的时钟输入/输出时您想要做的任何其他事情。但我认为就实际处理发生的位置而言,这只是偏好。

最明显的原因是程序可以在上下班之间关闭而不会丢失任何东西。如果您尝试在内存中跟踪所有内容,一旦程序因任何原因关闭(手动关闭/“结束任务”通过任务管理器/未处理的错误),您将丢失所有时钟。

于 2012-12-27T22:00:00.090 回答