精华内容
下载资源
问答
  • 现在有个考勤表为![图片说明](https://img-ask.csdn.net/upload/201911/11/1573460543_46345.png) 我要统计出他每天的上下班打卡时间还有打卡时的照片,按每天最大最小的时间排序已经解决了,现在如何带上img_url...
  • 实现员工的添加,查询和删除,并用dgvList显示出来1.1///先声明一个单列集合public List list = new List();1.2///初始化三个对象private void FrmMain_Load(object sender, EventArgs e){SE s1 = new SE();s1.id = ...

    实现员工的添加,查询和删除,并用dgvList显示出来

    48304ba5e6f9fe08f3fa1abda7d326ab.png

    1.1///先声明一个单列集合

    public List list = new List();

    1.2///初始化三个对象

    private void FrmMain_Load(object sender, EventArgs e)

    {

    SE s1 = new SE();

    s1.id = 20161000;

    s1.name = "张三";

    s1.age = 20;

    s1.gender = "男";

    SE s2 = new SE();

    s2.id = 20161002;

    s2.name = "李四";

    s2.age = 18;

    s2.gender = "男";

    SE s3 = new SE();

    s3.id = 20161004;

    s3.name = "凤姐";

    s3.age = 20;

    s3.gender = "女";

    1.3//把数据添加到集合中并用dgvList加载出来

    list.Add(s1);

    list.Add(s2);

    list.Add(s3);

    dgvList.DataSource =(list);

    }

    48304ba5e6f9fe08f3fa1abda7d326ab.png

    ac81a4c5e3396afd881895070f1fb07e.png

    48304ba5e6f9fe08f3fa1abda7d326ab.png

    1.4 private void btn01_Click(object sender, EventArgs e)

    {

    ///创建临时的单列集合来存储数据

    List llist = new List();

    //遍历集合中的对象

    foreach (SE item in list)

    {

    //判断要查询对象的工号的下标是否存在

    if(item.Id.IndexOf(txt01.Text.Trim())!=-1)

    {

    llist.Add(item); //把数据加入到临时集合中

    }

    }

    //把查询到的数据绑定到dgvList中

    dgvList.DataSource = new BindingList(llist);

    }

    1.5 private void toolStripButton3_Click(object sender, EventArgs e)

    {

    ///删除前先考虑根据什么来删除数据

    ///我根据员工工号来删除 首先得到工号

    string id = dgvList.SelectedRows[0].Cells[0].Value.ToString();

    //使用for循环来查找

    for (int i = 0; i < list.Count; i++)

    {

    //判断数据是否相等再删除

    if(list[i].Id==id)

    {

    list.RemoveAt(i);

    }

    }

    //删除后还得再重新绑定数据

    dgvList.DataSource = new BindingList(list);

    }

    48304ba5e6f9fe08f3fa1abda7d326ab.png

    0b0259747ca80c476b0c8fdfe3dc3db5.png

    48304ba5e6f9fe08f3fa1abda7d326ab.png

    1.6///声明一个静态的双列集合

    public static Dictionary recordList = new Dictionary();

    //单击签到

    private void 签到ToolStripMenuItem_Click(object sender, EventArgs e)

    {

    //判断是否选中一行

    if(dgvList.SelectedRows.Count!=1)

    {

    MessageBox.Show("请选中一行");

    return;

    }

    //把选中的数据传给记录列表

    string no = dgvList.SelectedRows[0].Cells[0].Value.ToString();

    foreach (string id in recordList.Keys)

    {

    if(no==id)

    {

    MessageBox.Show("您已签到过");

    return;

    }

    }

    Record record = new Record();

    record.ID = no;

    record.Name= dgvList.SelectedRows[0].Cells[1].Value.ToString();

    record.StratTime = DateTime.Now;

    recordList.Add(record.ID,record);

    MessageBox.Show("签到成功");

    }

    48304ba5e6f9fe08f3fa1abda7d326ab.png

    9802b05673fbd9e5b7daf1a87a0e6a23.png

    48304ba5e6f9fe08f3fa1abda7d326ab.png

    1.7///单击签退

    private void 签退ToolStripMenuItem_Click(object sender, EventArgs e)

    {

    //判断是否选中一行

    if (dgvList.SelectedRows.Count != 1)

    {

    MessageBox.Show("请选中一行");

    return;

    }

    //把选中的数据传给记录列表

    string no = dgvList.SelectedRows[0].Cells[0].Value.ToString();

    bool falg = false;

    //判断是否有签到记录

    foreach (string key in recordList.Keys)

    {

    if(key==no)

    {

    ///执行签到

    recordList[key].EndTime = DateTime.Now;

    MessageBox.Show("签退成功");

    falg = true;

    break;

    }

    }

    if(falg==false)

    {

    MessageBox.Show("您还没有签到");

    }

    }

    48304ba5e6f9fe08f3fa1abda7d326ab.png

    62a6f41dadf8e9f223bda4abf2d81d94.png

    48304ba5e6f9fe08f3fa1abda7d326ab.png

    1.8///声明一个Record类

    public class Record

    {

    public string Name { get; set; }

    public DateTime StratTime { get; set; }

    public DateTime EndTime { get; set; }

    public String ID { get; set; }

    }

    1.9///调用签到记录窗口

    private void toolStripButton4_Click(object sender, EventArgs e)

    {

    FrmRecord record = new FrmRecord();

    record.Show();

    }

    2.0///调用增加员工的窗口

    private void toolStripButton1_Click(object sender, EventArgs e)

    {

    FrmAdd add = new FrmAdd();

    Hide();

    add.Show();

    }

    2.1///添加员工

    private void btn01_Click(object sender, EventArgs e)

    {

    ///通过保存把数据加到集合中

    //首先创建一个对象并赋值

    SE se = new SE();

    se.Id = txt01.Text;

    se.Name = txt03.Text;

    se.Age = txt02.Text;

    se.Gender = cbo01.Text;

    foreach (SE item in FrmMain.list)

    {

    if (item.Id == txt01.Text)

    {

    MessageBox.Show("此工号已存在");

    return;

    }

    }

    //把数据加到list集合中,因为集合是在主窗体中声明的需要调用

    FrmMain main = new FrmMain();

    FrmMain.list.Add(se);

    main.Show();

    }

    48304ba5e6f9fe08f3fa1abda7d326ab.png

    2.2

    fefea85f0690c5a195119944b595eb9a.png

    48304ba5e6f9fe08f3fa1abda7d326ab.png

    private void FrmAdd_Load(object sender, EventArgs e)

    {

    //把男和女添加到下拉列表框中

    cbo01.Items.Add("男");

    //把男默认选中

    cbo01.SelectedIndex=0;

    cbo01.Items.Add("女");

    }

    48304ba5e6f9fe08f3fa1abda7d326ab.png

    展开全文
  • 需求分析“员工刷脸考勤”系统,采用Python语言开发,可以通过摄像头添加员工面部信息,这里就涉及到两个具体的个问题,一个是应该以什么样的数据来标识每一个员工的面部信息,二是持久化地保存这些信息到数据库中去...

    需求分析

    “员工刷脸考勤”系统,采用Python语言开发,可以通过摄像头添加员工面部信息,这里就涉及到两个具体的个问题,一个是应该以什么样的数据来标识每一个员工的面部信息,二是持久化地保存这些信息到数据库中去。更细地,还涉及表的设计;另一个基本要求是通过摄像头识别员工面部信息来完成考勤,这个问题基本可以通过遍历数据库里的员工面部数据与当前摄像头里的员工面部数据的比对来实现,但有一个问题就是假如摄像头里有多张人脸改怎么处理。扩展要求是导出每日的考勤表,可以拆分为两个部分,一个是存储考勤信息,一个是展示考勤信息。

    我们希望达到的目标是:

    (1)仿照通用型软件界面设计的原则,所有的操作都在菜单栏里实现,一部分区域用于展示摄像头实时读取并由程序加工后的视频流信息,另一部分区域做控制台输出,打印相关信息,比如提示员工面部信息添加成功、添加失败及其原因,提示员工打卡成功、打卡失败及其原因;添加面部信息时人是必须和程序进行交互的,比如输入一些相关的信息,这个时候程序是阻塞的;但是在打卡的时候,程序是不阻塞的,如果不点击关闭打卡,它会一直在打卡的模式,等待并识别每一个前来打卡的员工,这比较符合现实的使用场景。

    (2)建表来存储员工信息和考勤信息,每次新建录入员工面部信息时,要求输入工号、姓名,并查无重后方可录入,录入时只取距离屏幕最近的员工的面部信息,这是考虑到实际打卡都是依次进行而不是一群人一群人地打卡,录入时有两种模式可供选择,自动模式:一旦识别到人脸就自动捕获截图,连续截图达到10张就结束录入;手动模式:点击菜单结束录入,不一定要得到10张。结束录入后就开始从刚才捕获的员工面部提取人脸特征数据并连同之前输入的员工姓名等数据作为一行记录保存到数据库中,如果没有捕获到员工面部或者刚才捕获的面部信息不是同一个人,这行记录就被丢弃。

    考勤时,须满足三个条件:面部信息已录入、在打卡时间段内、未重复打卡,只有打卡成功,打卡人姓名及工号、打卡日期及时间才会被当成一行记录保存到数据库并在控制台输出打卡成功信息,否则会在控制台输出失败及其原因信息。

    总而言之:我们的设计目标是规范化、人性化。

    需要源码可以关注、转发,私信小编“01”领取,还有免费Python学习视频资料赠送。

    总体设计

    为了完成上述目标一,程序的界面初始化分为三部分,第一部分初始化菜单栏,第二部分初始化左边控制台,第三部分初始化右边展示面板,使这三部分相互独立;数据逻辑部分的初始化分为两部分,第一部分是数据库部分的初始化,如果数据库/表不存在就新建,存在则加载相关数据,第二部分是初始化一些需要循环使用的变量,比如新建录入时的员工姓名、工号、截图数目计数器等,每当完成录入时这些数据都应该被重置成初始化以待下一次录入,把这些初始化语句写成一个函数可以提高代码复用度。

    上述目标二主要是一些限制性条件,可以通过添加判断语句来实现,比如对输入id的合法性检验:

    while self.id == ID_WORKER_UNAVIABLE: self.id = wx.GetNumberFromUser(message='请输入您的工号(-1不可用)',prompt='工号', caption='温馨提示', value=ID_WORKER_UNAVIABLE, parent=self.bmp,max=100000000,min=ID_WORKER_UNAVIABLE) for knew_id in self.knew_id: if knew_id == self.id: self.id = ID_WORKER_UNAVIABLE wx.MessageBox(message='工号已存在,请重新输入', caption='警告')

    其中ID_WORKER_UNAVIABLE是id的初始化值-1,不可用,self.knew.id是从数据库里加载出来的id列表,如果id非法(已重复或者不在0~100000000,就会一直有新的弹窗来提示输入id。

    再比如对拒绝多张人脸时、只处理距离屏幕最近的员工的面部信息:if len(dets) != 0:biggest_face = dets[0]#取占比最大的脸maxArea = 0for det in dets: w = det.right() - det.left() h = det.top()-det.bottom() if w*h > maxArea: biggest_face = det maxArea = w*h

    dets是侦测到的所有面部数组,biggest_face是距离屏幕最近的面部。

    程序框图:

    注:图片如看不清也可在线预览

    https://www.processon.com/view/link/5bbcc953e4b08faf8c7324a1

    本程序的设计思想大致可分为以下几个方面面向对象的原则,整个程序的主体就是一个WAS(WorkAttendanceSystem)类,所有的实现都围绕这个类展开。

    界面和数据逻辑分离的原则,WAS类的初始化过程包括界面的初始化和数据初始化,两者相互独立。

    代码封装原则,多次调用的语句集写成接口供调用,没有冗余的代码。

    接口隔离原则:使用多个专门的接口,而不是使用单一的总接口。

    函数清单

    注:所有类内的函数的第一个参数为self,表明该函数属于该类,后面不再赘述def __init__(self)

    WAS类的构造函数,主要是完成一些初始化操作,如初始化菜单、信息打印面板、主展示面板以及初始化加载数据库、初始化循环使用的变量。

    def initMenu(self):

    完成菜单的初始化显示,点击事件绑定。

    def initInfoText(self):

    完成左边信息提示面板的初始化显示。

    def initGallery(self):

    完成右边主展示面板的初始化显示。

    def initDatabase(self):

    数据库的初始化,建立数据库连接(如果数据库inspurer.db不存在则先新建),如果数据库中不存在员工信息worker_info和考勤logcat这两个表,则依次创建。

    def loadDataBase(self,type):

    该模块函数完成从数据库读取数据的操作,包括读取员工信息和考勤信息,第二个参数type用于标识是加载员工信息还是考勤信息,一方面,可以统一接口,打开数据库和得到游标、关闭连接是一样的,将两个读取接口合二为一,提高代码复用度;另一方面,可以减少加载的工作量,减少IO,提高程序运行速度;最后,因为读取信息前对上一次读取的信息列表做了清空处理,用type标识可以避免读取一个表时对另一个表造成的误操作。

    def insertARow(self,Row,type):

    该模块函数完成写数据库操作,第二个参数为准备写的一条记录,第三个参数type表示要对哪一个表进行写操作。

    def adapt_array(self,arr):

    将提取的人脸特征信息(列表)压缩,入口参数就是待压缩的数据,出口参数是压缩后的数据,用于写入数据库。

    def convert_array(self,text):

    将读取出来的数据解压缩成人脸特征信息,入口参数是待解压得数据,出口参数是解压后的数据。

    def return_euclidean_distance(feature_1, feature_2):

    计算两个人脸的欧式距离,入口参数是两个人脸的特征数据,出口参数是判定的结果,欧式距离大于0.4判为不同,不大于判为相同。

    def OnNewRegisterClicked(self,event):

    见名知义,菜单新建录入的监听事件,参数event为事件信息,其他几个菜单的(OnFinishRegisterClicked,OnStartPunchCardClicked, OnEndPunchCardClicked, OnOpenLogcatClicked,OnCloseLogcatClicked)类似,在此不再赘述。

    def getDateAndTime(self):

    得到当前日期和时间,并组装成特定格式作为出口参数返回。

    函数调用关系:箭头指向被调用者

    在线预览地址:

    https://www.processon.com/view/link/5bbe0b0de4b0534c9bfbecb4

    程序运行结果

    程序主界面

    新建录入

    我们看到,信息栏有人脸数据重复警告,本次录入取消。

    于是我们把数据库数据删了重来。

    下面是打印的日志信息(为保证格式,复制到记事本中截的图)

    看到已经录入成功了。

    开始打卡

    提示信息打印如下

    迟到与否的临界时间是9:00

    展示日志

    只有已经录入且第一次成功签到才会写进到数据库,无论迟到与否。

    最后需要源码可以关注、转发,私信小编“01”领取,还有免费Python学习视频资料赠送。

    展开全文
  • 相信许多朋友都还有在用Excel制作员工考勤表,在表格登记考勤的时候,我们经常会按天、月等方式去登记。因为每个月天数比较多,员工数量也比较多,所以我们在查看考勤的时候拖动数据就会显得比较乱。案例演示:如上...

    1b17b0795c44ef50cfea813acb6af510.gif

    相信许多朋友都还有在用Excel制作员工考勤表,在表格登记考勤的时候,我们经常会按天、月等方式去登记。因为每个月天数比较多,员工数量也比较多,所以我们在查看考勤的时候拖动数据就会显得比较乱。

    案例演示:

    0316494be411d415164a4df76e79f5eb.gif

    如上图是我们公司人员的10月份出勤班表,为了看员工的数据,我们往右拖动滚动条的时候,最左列的姓名就看不到了,这样就无法确定对应班次的姓名;如果我们往下拖动滚动条,这样我们就无法看到班次对应的日期。而且数据很多的情况下,这样肉眼查看也会容易出错。下面我们就来看看如何利用聚光灯效果来实现我们的操作。

    效果演示:

    a557a66a59ae66963ef157406eb085d3.gif

    通过上面的聚光灯效果,搭配上冻结窗口设置,我们就能清晰的通过十字效果演示来快速定位到姓名和日期。下面我们就来学学如何利用聚光灯效果,让考勤数据看的更加清晰。

    第一步:鼠标放到需要冻结显示首列和首行的交叉单元格位置:C2单元格。然后点击菜单栏:视图—冻结窗口,选择冻结拆分单元格。这样我们拖动表格的时候,首行的日期和首列的姓名组别都不会隐藏。如下图所示:

    c0b2d09c4dc1ad60949dba36c2839fbe.png

    第二步:鼠标选择单元格区域A2:AG25,然后点击菜单栏:开始—条件格式—新建规则,然后选择使用公式确定需要设置的单元格。然后在公式处输入下方公式,格式设置为填充底纹颜色为绿色。如下图所示:

    eba85c12a4d1794af6a3420676a27293.png

    格式公式:

    =(cell("row")=row())+(cell("col")=column())

    第三步:通过上面的条件格式设置,我们鼠标点击单元格,这样就会生成十字效果的绿色底纹效果。这种设置无法让表格实现自动刷新,为了让我们任意点击单元格可以及时显示聚光灯效果,所以我们还需要利用下方代码设置表格自动刷新。如下图所示:

    f5bd3679628a2cc4438be3fadd5edca9.png

    我们按快捷键Alt+F11或点击工作表名称,右键选择查看代码,进入代码编辑窗口。点击Thisworkbook,然后输入下方代码:

    Private Sub Worksheet_SelectionChange(ByVal Target As Range)

    Calculate

    End Sub

    4369eb2684ce9cc4e0a023ae994535f6.gif

    设置完上面的步骤之后,我们再将表格另存为可以执行宏的工作簿。然后重新打开,这时候我们将人员点击单元格位置,表格会实现聚光灯效果的任意刷新。这样就做好了我们需要的聚光灯效果。现在你学会了吗?

    精彩内容推荐
    推荐文章

    提取单元格不重复值,这组函数公式三秒搞定,你会这样操作吗?

    推荐文章

    100张图片批量添加编号,同事用快捷键Alt+9四步搞定

    推荐文章

    Sumif函数高级用法,函数搭配通配符,让条件计算更高效!

    推荐文章

    vlookup函数还可以求和,你会这种操作吗?

    d117091be17a0d150f0c5c8410b62c8b.png

    展开全文
  • 今天介绍的系统是基于ssh人事考勤管理系统,在开始本课题研究之前,我先简单上网搜寻了当前中小型企业发展中人事管理的现状,了解需要开发这样一个管理系统的必要性。之后在图书馆寻找相关文献资料,对于开发系统所...
       今天介绍的系统是基于ssh人事考勤管理系统,在开始本课题研究之前,我先简单上网搜寻了当前中小型企业发展中人事管理的现状,了解需要开发这样一个管理系统的必要性。之后在图书馆寻找相关文献资料,对于开发系统所需要的开发技术、工具使用等进行了一系列的查询与学习。加之大学期间学习Java语言的基础,在大三时期学习并简单运用html5+css3的知识开发过小型程序,并对javascript,jquery等web前端开发技术具有一定的掌握与运用能力。此外,还在实训公司进行了一段时间的培训,学习了java的一些框架,最终结合系统特性决定使用Struts2+Spring+Hibernate框架来实现此系统。数据库为免费开源的mysql数据库。
       系统的主要功能如下:
       管理员
    

    1.登录系统,登录账号为工号(六位),登录时包含密码验证等基本功能。
    2.基本信息管理模块:
    a。职工信息管理
    显示所有职工信息(工号(初始密码也是工号,手输),姓名,部门,职位(手输),性别,籍贯,邮箱,身份证号,住宅地址等),分页列表显示
    查询职工信息(可根据工号、部门等关键字)
    单个删除员工信息
    录入职工具体信息
    修改某一员工信息
    b。部门信息管理
    显示所有部门信息(部门编号,部门名称,部门经理,部门人数,部门描述)
    增删查
    3.培训管理模块:
    新建培训项目(培训项目名称,培
    训内容(文本编辑器))。Crud
    4.薪资管理模块
    员工薪资信息录入(员工工号,员工姓名,部门,职位,发放时间,发放状态,基本工资,发放人员,休假、迟到早退扣减状况(蓝色部分系统计算),加班费,总实发工资)
    生成员工薪资信息表。
    5.休假管理模块
    查看所有职工休假申请状况
    审核职工递交上来的休假申请,并进行批准或者驳回
    6.考勤管理模块
    查询某员工考勤情况(员工编号,姓名,部门,职位,考勤月份,迟到早退,旷工,加班,请假次数等具体情况。)
    查询某一员工具体月份考情状况 仅仅是月份统计,不要精确到某一天
    7.公告栏
    发布公告信息(编号,标题,具体内容)在员工首页
    删除公告信息 crud
    8.系统设置与维护
    信息维护(修改自己密码)
    9.招聘管理
    招聘信息发布(编号,招聘部门,招聘职位,详情,发布人,列表展示 部门+职位作为标题)
    招聘信息删除
    查看所有招聘信息 crud
    普通职工
    1.系统登录
    2.基本信息管理
    部门信息查看
    职工信息查看,可修改自己信息。
    3,。招聘管理
    可查看招聘信息
    4.考情管理
    进行电子签到,签到显示时间,一天只能签两次,并根据时间判断迟到早退状况。
    可查看自己的考勤状况表
    5.薪资管理
    可查看自己的薪资情况表
    6.休假管理
    提交休假申请表(职工工号,姓名,部门,职位,休假时间,休假天数)
    查看休假申请状态(批准还是驳回)
    7.培训管理
    查看所有培训项目
    8.公告栏
    点开标题查看公告详情
    9.系统设置与维护
    修改自己密码
    系统源码 下载地址点击
    系统图片如下:
    在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

    展开全文
  • 有四张表,分别是部门,员工,签到,时间(是否工作日),结构如下: 部门department: ![图片说明](https://img-ask.csdn.net/upload/201901/25/1548384875_223346.png) 员工employee: ![图片说明]...
  • ![图片说明](https://img-ask.csdn.net/upload/201707/26/1501074552_54126.png) 过滤掉重复的记录,同一个人只取第一次打卡。求大神给条语句
  • 500行Python代码打造刷脸考勤系统

    千次阅读 2019-06-02 12:17:09
    扩展要求是导出每日的考勤表,可以拆分为两个部分,一个是存储考勤信息,一个是展示考勤信息。 我们希望达到的目标是: (1)仿照通用型软件界面设计的原则,所有的操作都在菜单栏里实现,一部分区域用于展示摄像头...
  • 基于OpenCV的人脸识别考勤系统

    千次阅读 多人点赞 2020-03-01 16:03:36
    考勤系统设计 人脸数据库的建立 图像采集 图像预处理及模型训练 人脸检测 人脸特征识别 数据库与OpenCV通信 显示签到结果
  • 企业篇之员工工资管理系统(Java+SQL sever实现)

    千次阅读 多人点赞 2020-06-26 11:29:57
    4.3 关系… 2 五、数据库物理设计… 2 5.1 索引… 2 5.2 视图… 2 5.3 安全机制… 2 六、应用程序设计… 3 6.1 功能模块… 3 6.2 界面设计… 3 6.3 事务设计… 3 七、测试和运行… 3 八、总结… 3 附. 参考
  • c#考勤统计

    2018-06-20 16:29:00
    现在项目需求,需要从多张表中获取数据,组装到一个实体对象中,并通过计算统计出每个员工考勤记录。(全凭自己思考做的,不足的地方希望各位大神指正!毕竟自己能力有限,思考不全) 考勤统计列表: 明细...
  • 考勤系统

    千次阅读 2019-06-18 22:28:54
    员工刷脸考勤”系统,采用python语言开发,可以通过摄像头添加员工面部信息,这里就涉及到两个具体的个问题,一个是应该以什么样的数据来标识每一个员工的面部信息,二是持久化地保存这些信息到数据库中去。...
  • 基于深度学习的人脸识别考勤系统设计

    千次阅读 多人点赞 2020-06-03 22:34:43
    基于深度学习的人脸识别考勤系统
  • 主要包括登录模块、课程信息管理模块、考勤信息管理模块、成绩管理模块、和退出模块等多个模块 本系统基于SSM(Spring+SpringMVC+MyBatis)框架,适用于毕业设计,采用javaweb,基于B/S模式,Myeclipse或者eclipse idea为...
  • 员工刷脸考勤”系统,采用python语言开发,可以通过摄像头添加员工面部信息,这里就涉及到两个具体的个问题,一个是应该以什么样的数据来标识每一个员工的面部信息,二是持久化地保存这些信息到数据库中去。...
  • 1、考勤地分散在各个城市,甚至全球,希望总部统一管控 2、领导出差,在家,随时想查看员工的出勤状况 3、无法提供上网的复杂环境 4、公司班车需要员工刷指纹(或刷脸或指静脉或掌纹或ID卡等) 5、员工自动查询:做...
  • Django 的员工信息系统

    2020-05-07 01:18:42
    Django 的员工信息系统 将之前用 ssm 框架搭建的系统再次用 Django 的框架来实现 码云地址在文末 功能实现: 登录权限验证 登录状态检测 员工信息分页查询显示 多条件联合查询 增删改数据 一、登录验证 1. 创建...
  • 人员排班: 点击“人员排班设置”—>选择要排班的员工(部门或直接输入 工号姓名-查找员工)—>在人员*选中要排班的人员—>点击“人员排班”(针对规则排班,若是不规则班次则选择“不规则排班”)—>选中需要的...
  • 实体模型层中包括五个实体类:部门信息实体类DepartmentInfo、员工信息实体类EmployeeInfo和考勤记录实体类RecordInfo三个基本实体类和由基本实体类组合而成的员工部门类EmployeeDepartment和员工部门考勤类...
  • 移动端考勤系统mysql数据库创建语句 移动端考勤系统oracle数据库创建语句 移动端考勤系统sqlserver数据库创建语句 移动端考勤系统spring+springMVC+hibernate框架对象(javaBean,pojo)设计 移动端考勤系统spring+...
  • 《java图形化界面设计课程设计-员工出勤管理系统》由会员分享,可在线阅读,更多相关《java图形化界面设计课程设计-员工出勤管理系统(25页珍藏版)》请在人人文库网上搜索。1、目录一、 设计目的2二、 功能介绍2三、 ...
  • OA项目之员工管理

    2019-07-19 20:52:37
    员工管理-完善添加员工-动态显示部门列表和员工上级 (1) 页面中下拉框动态显示的原理是什么? 浏览器向服务器发送获取添加员工的页面时,服务器从数据库中查找部门列表,和符合条件的管理者信息,在页面上的下拉框...
  • 海宁市圣隆皮草有限公司员工管理信息系统的设计mysql数据库创建语句 海宁市圣隆皮草有限公司员工管理信息系统的设计oracle数据库创建语句 海宁市圣隆皮草有限公司员工管理信息系统的设计sqlserver数据库创建语句 ...
  • 员工刷脸考勤”系统,采用Python语言开发,可以通过摄像头添加员工面部信息,这里就涉及到两个具体的个问题,一个是应该以什么样的数据来标识每一个员工的面部信息,二是持久化地保存这些信息到数据库中去。...
  • 基于微信小程序的课堂考勤系统的设计与实现

    万次阅读 多人点赞 2020-03-28 16:21:34
    代码仓库地址:... Design and Implementation of Classroom Attendance System Based on WeChat Mini Program 摘 要 在目前国内的高校课堂考勤中,传统的到场点名方式耗费了教师大量的时间和精力,随...
  • 将一个月的员工打卡记录,写进Excel,并在状态一列,添加员工是正常打卡,还是迟到与早退。 2、判断状态规则: 当日08:30前上班,17:30后下班为正常; 3、源文件: 为dat格式,用Notepad++ 打开如下图所示...
  • 用js处理打卡记录excel

    千次阅读 2016-09-23 17:05:41
    首张图片是待处理的excel,文章最后是处理结果,如果您是要这种效果,中间内容不妨看一下。 不需要数据库,不需要服务,只要一个excel一个谷歌浏览器,搞定这些。 因为js没有上传excel的功能,我们简单处理下...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 730
精华内容 292
关键字:

员工考勤表图片