我使用zkemkeeper.dll从生物识别设备下载考勤记录。
if (axCZKEM1.ReadGeneralLogData(iMachineNumber))//read all the attendance records to the memory
{
while (axCZKEM1.SSR_GetGeneralLogData(iMachineNumber, out idwEnrollNumber, out idwVerifyMode
, out idwInOutMode, out idwYear, out idwMonth, out idwDay, out idwHour, out idwMinute, out idwSecond, ref idwWorkCode))//get records from the memory
{
//code here
}
}
我的问题是如何通过zkemkeeper下载指定时间(日期范围)的出勤记录
函数ReadGeneralLogData加载来自设备的所有记录,由于设备包含超过15,000条记录,因此耗费了太多时间,几乎挂起了设备。
也不知道如何使用GetDataFile函数,我的意思是它保存文件的位置
请帮忙
答案 0 :(得分:3)
默认情况下,zkemkeeper.dll不支持“在指定日期范围之间下载考勤记录”。为此,您必须使用ZK的自定义SDK
答案 1 :(得分:3)
我有类似的问题,我不得不这样解决。如果您的应用程序使用的是基于数据库或文件的数据存储,您可以在保存所有数据后清除设备的日志。
if (axCZKEM1.ReadGeneralLogData(iMachineNumber))//read all the attendance records to the memory
{
while (axCZKEM1.SSR_GetGeneralLogData(iMachineNumber, out idwEnrollNumber, out idwVerifyMode
, out idwInOutMode, out idwYear, out idwMonth, out idwDay, out idwHour, out idwMinute, out idwSecond, ref idwWorkCode))//get records from the memory
{
//save your data here
}
//after that you clear the machine log
if (axCZKEM1.ClearGLog(iMachineNumber))
{
axCZKEM1.RefreshData(iMachineNumber);//the data in the device should be refreshed
message = "All att Logs have been cleared from teiminal!, Success";
}
else
{
axCZKEM1.GetLastError(ref idwErrorCode);
message = "Operation failed, ErrorCode = " + idwErrorCode.ToString();
}
}
这样,您的下一次下载将 更快 以及明确的操作。您可以在每次需要时从设备下载所有日志数据,当然,一旦存储在数据库中,您就可以过滤数据。
用户不知道日志数据是在设备中还是在数据库中。重要的是数据存储在某个地方,用户可以看到它。
答案 2 :(得分:0)
试试这个..
lstMachineInfo = manipulator.GetLogData(objZkeeper,int.Parse(tbxMachineNumber.Text.Trim()));
String dtFrom = dateFrom.Value.ToShortDateString();
String dtTo = dateTo.Value.ToShortDateString();
List<MachineInfo> newList = list.Where(x => x.DateOnlyRecord >= dateFrom.Value.AddDays(-1) && x.DateOnlyRecord <= dateTo.Value).ToList();
ShowStatusBar(newList.Count() + " records found !!", true);
dataGridView.DataSource = newList;
答案 3 :(得分:-1)
首先你必须阅读内存的所有记录.. 然后我使用一个日期时间选择器和一个按钮创建了一个表单。 现在你必须等于机器日期和选定日期。 最后你写了保存功能编码
答案 4 :(得分:-1)
在获取之后将其保存到数据库中,然后选择* FROM Where Like