Example #1
0
        private void changeToLeaveEarly_Click(object sender, EventArgs e)
        {
            //先把Briefcase找出来
            //classBriefcase = BriefcaseControl.GetBriefcase (kkno);

            //然后把当前的学号找出来
            var studentId = Convert.ToString(studentsGridView.SelectedRows.First().Cells["学号"].Value);

            //然后更改当前的上课状态 显示的上课状态哦
            dp_ChangeDisplayStatus(sender);

            //然后获取点名表
            var dmTable = OfflineDataControl.GetDmDatatable(kkno, skno);

            //改点名表里的记录 这里改的就是数据了.
            OfflineDataControl.ChangeDmRecord(ref dmTable, studentId, 2, DateTime.Now, 1);

            //存点名表.
            BriefcaseControl.SaveDmTable(classBriefcase, dmTable);
        }
        /// <summary>
        /// 当指纹仪找到这个人的时候,程序需要调用List中的对象的该函数来进行签到操作.
        /// 将签到时间传进来 该函数会自己判断是否迟到 并写入Briefcase中.
        /// </summary>
        /// <param name="arriveTime">签到时间</param>
        public void SignIn(DateTime arriveTime)
        {
            var isLate = (arriveTime > ExpectedArriveTime);

            //判断是否迟到 并将到课状态更改成指定的状态
            RollCallStatus = (short)(isLate ? 1 : 0);

            ArriveTime = arriveTime;

            /****************************************************************************************************************************/
            //把标记该门课的表取出来
            //var classBriefcase = BriefcaseControl.GetBriefcase(kkno);

            //然后获取点名表
            //var dmTable = OfflineDataControl.GetDmDatatable ( kkno, skno );
            //2015年5月8日 效率问题, 这里的从硬盘中取表操作已经被替换了. 如果需要拿Briefcase和点名表,请直接去Student.Dmtable和Student.ClassBriefcase中取.
            /**************************************************************************************************************************/

            //改点名表里的记录 这里改的就是数据了.注意 这里改的是Student中的静态变量.
            OfflineDataControl.ChangeDmRecord(ref DmTable, StudentId, RollCallStatus, arriveTime, RollCallTimes);

            //存点名表.注意 这里改的是Student中的静态变量.
            BriefcaseControl.SaveDmTable(ClassBriefcase, DmTable);
        }