Пример #1
0
        private int SortSchoolYear(SemesterHistoryItem a, SemesterHistoryItem b)
        {
            string stringA = a.SchoolYear.ToString().PadLeft(5, '0') + a.Semester.ToString().PadLeft(5, '0');
            string stringB = b.SchoolYear.ToString().PadLeft(5, '0') + b.Semester.ToString().PadLeft(5, '0');

            return(stringA.CompareTo(stringB));
        }
Пример #2
0
        /// <summary>
        /// 設定學期歷程對照
        /// </summary>
        /// <param name="item"></param>
        public void SetHistory(SemesterHistoryItem item)
        {
            int grade          = item.GradeYear;
            int new_schoolYear = item.SchoolYear;

            //年級對照學年度:相同年級的學年度,取學年度較高者
            if (GradeToSchoolYear.ContainsKey(grade))
            {
                int old_schoolYear = GradeToSchoolYear[grade];

                if (new_schoolYear > old_schoolYear)
                {
                    GradeToSchoolYear[grade] = new_schoolYear;
                }
            }

            //學年度對照年級:相同學年度的年級,取年級較高者
            if (!SchoolYearToGrade.ContainsKey(new_schoolYear))
            {
                SchoolYearToGrade.Add(new_schoolYear, grade);
            }
            else if (grade > SchoolYearToGrade[new_schoolYear])
            {
                SchoolYearToGrade[new_schoolYear] = grade;
            }

            //上課天數
            string key      = item.SchoolYear + "_" + item.Semester;
            int    dayCount = item.SchoolDayCount.HasValue ? item.SchoolDayCount.Value : 0;

            if (!AttendanceObjDic.ContainsKey(key))
            {
                AttendanceObjDic.Add(key, new AttendanceObj(dayCount));
            }
        }
Пример #3
0
        private void CheckYearAndSemester(SubjectScoreObj obj)
        {
            string key = obj.StudentId + "_" + _schoolYear + "_" + _semester;

            if (!_Student_schoolyear_sems.Contains(key) && obj.GradeYear != 0)
            {
                _Student_schoolyear_sems.Add(key);
                SemesterHistoryItem item = new SemesterHistoryItem();
                item.SchoolYear = _schoolYear;
                item.Semester   = _semester;
                item.GradeYear  = obj.GradeYear;
                item.SeatNo     = obj.SeatNo;
                item.ClassName  = obj.ClassName;
                item.Teacher    = obj.TeacherName;
                _Update_sems_history[obj.StudentId].SemesterHistoryItems.Add(item);
            }
        }
Пример #4
0
        /// <summary>
        /// 取得年級比例
        /// </summary>
        private string GetSchoolYearByGradeYear(SemesterHistoryItem item)
        {
            if (item.GradeYear == 1)
            {
                if (item.Semester == 1)
                {
                    return("1");
                }
                else if (item.Semester == 2)
                {
                    return("2");
                }
            }
            else if (item.GradeYear == 2)
            {
                if (item.Semester == 1)
                {
                    return("3");
                }
                else if (item.Semester == 2)
                {
                    return("4");
                }
            }
            else if (item.GradeYear == 3)
            {
                if (item.Semester == 1)
                {
                    return("5");
                }
                else if (item.Semester == 2)
                {
                    return("6");
                }
            }

            return("");
        }
Пример #5
0
 public StudentSemesterHistory(DocumentBuilder builder, SemesterHistoryItem item)
 {
     builder.MoveToMergeField("班導師");
     builder.Write(item.Teacher);
 }
Пример #6
0
        private void BW_DoWork(object sender, DoWorkEventArgs e)
        {
            //撈取全部學生
            Dictionary <string, StudentObj> student_obj_dic = new Dictionary <string, StudentObj>();
            string sqlcmd = "select student.id, student.seat_no,class.class_name,class.grade_year,teacher.teacher_name,teacher.nickname from student ";

            sqlcmd += "left join class on class.id=student.ref_class_id ";
            sqlcmd += "left join teacher on class.ref_teacher_id=teacher.id ";
            sqlcmd += "where student.status=1";

            DataTable dt = _Q.Select(sqlcmd);

            foreach (DataRow row in dt.Rows)
            {
                string id = row["id"] + "";
                if (!student_obj_dic.ContainsKey(id))
                {
                    student_obj_dic.Add(id, new StudentObj(row));
                }
            }

            //一般狀態學生SemesterHistoryRecord
            Dictionary <string, SemesterHistoryRecord> student_history_dic = new Dictionary <string, SemesterHistoryRecord>();

            foreach (SemesterHistoryRecord record in K12.Data.SemesterHistory.SelectByStudentIDs(student_obj_dic.Keys))
            {
                if (!student_history_dic.ContainsKey(record.RefStudentID))
                {
                    student_history_dic.Add(record.RefStudentID, record);
                }
            }

            //砍掉指定學年度學期的item
            foreach (SemesterHistoryRecord r in student_history_dic.Values)
            {
                foreach (SemesterHistoryItem item in r.SemesterHistoryItems.ToArray())
                {
                    if (item.SchoolYear == _schoolYear && item.Semester == _semester)
                    {
                        r.SemesterHistoryItems.Remove(item);
                    }
                }
            }

            //建立指定學年度學期的item
            foreach (SemesterHistoryRecord r in student_history_dic.Values)
            {
                string id = r.RefStudentID;
                SemesterHistoryItem item = new SemesterHistoryItem();
                item.SchoolYear     = _schoolYear;
                item.Semester       = _semester;
                item.GradeYear      = student_obj_dic.ContainsKey(id) ? student_obj_dic[id].GradeYear : 0;
                item.SeatNo         = student_obj_dic.ContainsKey(id) ? student_obj_dic[id].SeatNo : null;
                item.ClassName      = student_obj_dic.ContainsKey(id) ? student_obj_dic[id].ClassName : "";
                item.Teacher        = student_obj_dic.ContainsKey(id) ? student_obj_dic[id].TeacherName : "";
                item.SchoolDayCount = _GradeSchoolDays.ContainsKey(item.GradeYear + "") ? _GradeSchoolDays[item.GradeYear + ""] : null;

                r.SemesterHistoryItems.Add(item);
            }

            K12.Data.SemesterHistory.Update(student_history_dic.Values);
        }
Пример #7
0
        public string GetToken(string studentId, int schoolYear, int semester)
        {
            SemesterHistoryItem item = Histories[studentId][schoolYear][semester];

            return(GetGradeString(item.GradeYear) + GetSemesterString(item.Semester));
        }
Пример #8
0
        void _bkWorker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
        {
            _DelRecList.Clear();
            _NewRecList.Clear();

            // 刪除
            if (_isDelRec)
            {
                foreach (SemesterHistoryRecord shRec in _SemesterHistoryRecordList)
                {
                    SemesterHistoryItem shiRec = null;
                    foreach (SemesterHistoryItem shi in shRec.SemesterHistoryItems)
                    {
                        if (shi.SchoolYear == _SelSchoolYear && shi.Semester == _SelSemester)
                        {
                            shiRec = shi;
                        }
                    }
                    if (shiRec != null)
                    {
                        shRec.SemesterHistoryItems.Remove(shiRec);
                        _DelRecList.Add(shRec);
                    }
                }
                if (_DelRecList.Count > 0)
                {
                    if (FISCA.Presentation.Controls.MsgBox.Show("請問是否刪除" + _SelSchoolYear + "學年度 第" + _SelSemester + "學期,共" + _DelRecList.Count + "筆資料?", "刪除學期對照", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) == System.Windows.Forms.DialogResult.Yes)
                    {
                        SemesterHistory.Update(_DelRecList);
                        FISCA.Presentation.Controls.MsgBox.Show(_DelRecList.Count + "筆資料刪除完成.");
                    }
                }
                else
                {
                    FISCA.Presentation.Controls.MsgBox.Show("沒有刪除的資料.");
                }

                btnDel.Enabled = true;
            }
            else
            {
                // 新增或修改
                int insertCount = 0, updateCount = 0;
                foreach (SemesterHistoryRecord shRec in _SemesterHistoryRecordList)
                {
                    bool hasData = false;
                    foreach (SemesterHistoryItem shi in shRec.SemesterHistoryItems)
                    {
                        if (shi.SchoolYear == _SelSchoolYear && shi.Semester == _SelSemester)
                        {
                            shi.GradeYear = _SelGradeYear;
                            hasData       = true;
                            updateCount++;
                        }
                    }

                    if (hasData == false)
                    {
                        SemesterHistoryItem shiNew = new SemesterHistoryItem();
                        shiNew.SchoolYear = _SelSchoolYear;
                        shiNew.Semester   = _SelSemester;
                        shiNew.GradeYear  = _SelGradeYear;
                        shRec.SemesterHistoryItems.Add(shiNew);
                        insertCount++;
                    }
                }

                if (updateCount > 0)
                {
                    if (FISCA.Presentation.Controls.MsgBox.Show("已有" + updateCount + "筆資料,請問是否覆蓋?", "覆蓋學期對照", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) == System.Windows.Forms.DialogResult.Yes)
                    {
                        SemesterHistory.Update(_SemesterHistoryRecordList);
                        FISCA.Presentation.Controls.MsgBox.Show("已新增" + insertCount + "筆資料,已覆蓋" + updateCount + "筆資料.");
                    }
                }
                else
                {
                    if (insertCount > 0)
                    {
                        SemesterHistory.Update(_SemesterHistoryRecordList);
                        FISCA.Presentation.Controls.MsgBox.Show("已新增" + insertCount + "筆資料.");
                    }
                }

                btnRun.Enabled = true;
            }
        }