Beispiel #1
0
        /// <summary>
        /// Initializes data based on the <see cref="ClassRecord"/>.
        /// </summary>
        private void Initialize(ClassRecord record)
        {
            if (record.Kind == TypeLeafKind.LF_CLASS || record.Kind == TypeLeafKind.LF_INTERFACE)
            {
                Tag = Engine.CodeTypeTag.Class;
            }
            else if (record.Kind == TypeLeafKind.LF_STRUCTURE)
            {
                Tag = Engine.CodeTypeTag.Structure;
            }
            else
            {
                throw new NotImplementedException($"Unexpected record kind: {record.Kind}");
            }
            BasicType = DIA.BasicType.NoType;
            Name      = record.Name;

            ulong size = record.Size;

            if (size > int.MaxValue)
            {
                throw new ArgumentException("Symbol size is unexpected");
            }
            Size               = (int)size;
            hasVTable          = record.VirtualTableShape != TypeIndex.None;
            IsForwardReference = record.IsForwardReference;
            UniqueName         = record.UniqueName;
        }
//        private void InitClasses()
//        {
//            Schedule.CreateNewTables();
//            foreach (var classesTable in Schedule.Tables)
//            {
//                int classCount = classesTable.Groups.Count() * Schedule.TimeLine.Count;
//                for (int i = 0; i < classCount; i++)
//                {
//                    Subject s = Schedule.Subjects[Rnd.Next(Schedule.Subjects.Count)];
//                    Lecturer l = Schedule.Lecturers[Rnd.Next(Schedule.Lecturers.Count)];
//                    Classroom c = Schedule.Classrooms[Rnd.Next(Schedule.Classrooms.Count)];
//
//                    var timeIndex = Rnd.Next(Schedule.TimeLine.Count);
//                    var groupIndex = Rnd.Next(classesTable.Groups.Count());
//
//                    if (classesTable.Table[timeIndex][groupIndex] == null)
//                    {
//                        classesTable.Table[timeIndex][groupIndex] = new ClassRecord
//                        {
//                            Subject = s,
//                            Lecturer = l,
//                            Classroom = c
//                        };
//                    }
//
//                }
//            }
//
//        }

        private void InitClasses()
        {
            //int classCount = Schedule.Groups.Count() * Schedule.TimeLine.Count;
            foreach (var classTime in Schedule.TimeLine)
            {
                foreach (var @group in Schedule.Groups)
                {
                    Subject   s = Schedule.Subjects[Rnd.Next(Schedule.Subjects.Count)];
                    Lecturer  l = Schedule.Lecturers[Rnd.Next(Schedule.Lecturers.Count)];
                    Classroom c = Schedule.Classrooms[Rnd.Next(Schedule.Classrooms.Count)];
                    if (Rnd.Next(100) < 40)
                    {
                        continue;
                    }
                    var @class = new ClassRecord
                    {
                        Classroom = c,
                        Group     = @group,
                        Subject   = s,
                        Lecturer  = l,
                        ClassTime = classTime
                    };
                    Schedule.ClassRecords.Add(@class);
                }
            }
        }
Beispiel #3
0
        public void a(ClassRecord A_0, UnknownB0 A_1)
        {
            VLTClass dq = new VLTClass();

            dq.a(A_0, A_1);
            this.genht2.Add(A_0.hash, dq);
        }
Beispiel #4
0
 //依班級年級、序號排序副程式
 static int CompareClass(ClassRecord a, ClassRecord b)
 {
     if (a.GradeYear == b.GradeYear)
         return int.Parse(a.DisplayOrder).CompareTo(int.Parse(b.DisplayOrder));
     else
         return a.GradeYear.ToString().CompareTo(b.GradeYear.ToString());
 }
Beispiel #5
0
        private void SemesterScoreEditor_Load(object sender, EventArgs e)
        {
            lblYearAndSemester.Text = _ssr.SchoolYear + "學年度" + _ssr.Semester + "學期";

            ClassRecord cr        = _ssr.Student.Class;
            string      className = cr == null ? "" : cr.Name;

            lblClassAndName.Text = className + " " + _ssr.Student.Name;

            foreach (string subj in _ssr.Subjects.Keys)
            {
                SubjectScore    ss  = _ssr.Subjects[subj];
                DataGridViewRow row = new DataGridViewRow();

                string type = ss.Type;

                string period = ss.Period == ss.Credit ? ss.Period + "" : ss.Period + "/" + ss.Credit;

                string subj_name = subj;

                if (!colSubjectName.Items.Contains(subj_name))
                {
                    colSubjectName.Items.Add(subj_name);
                }

                if (!colDomain.Items.Contains(ss.Domain))
                {
                    colDomain.Items.Add(ss.Domain);
                }

                row.CreateCells(dgv, subj_name, type, ss.Domain, period, ss.Score, ss.Level);
                dgv.Rows.Add(row);
            }
        }
        private void cboClass_SelectedIndexChanged(object sender, EventArgs e)
        {
            cboSeatNo.Items.Clear();
            ClassRecord classRec = (ClassRecord)cboClass.SelectedItem;

            if (classRec != null)
            {
                List <int> seatList = new List <int>();
                int        max      = 0;
                foreach (StudentRecord s in classRec.Students)
                {
                    int i = 0;
                    if (int.TryParse(s.SeatNo, out i) && !seatList.Contains(i))
                    {
                        seatList.Add(i);
                        if (i > max)
                        {
                            max = i;
                        }
                    }
                }
                if (seatList.Count > 0)
                {
                    for (int i = 1; i <= max + 1; i++)
                    {
                        if (!seatList.Contains(i))
                        {
                            cboSeatNo.Items.Add(i);
                        }
                    }
                }
            }
        }
Beispiel #7
0
        public ClientOnlineEntry(string name, string title, string guild, int clss, PaperdollIconType icon)
            : base(name, title, guild, clss, icon)
        {
            ClassRecord record = (ClassRecord)World.Instance.ECF.Data.Find(rec => ((ClassRecord)rec).ID == clss);

            ClassString = record.ID == 0 ? "-" : record.Name;
        }
Beispiel #8
0
 public Conflict(String message, ConflictType conflictType, ClassRecord conflictingClass)
 {
     Message = message;
     ConflictType = conflictType;
     ConflictingClasses = new List<ClassRecord> { conflictingClass };
     CardsCount = 1;
 }
Beispiel #9
0
        private void OnCutClass()
        {
            if (_selectedCard == null || _selectedCard.Class == null)
            {
                return;
            }
            var classCard = ClassesCards[_selectedRow][_selectedColumn];

            if (classCard == null)
            {
                return;
            }
            var row = Grid.GetRow(classCard) - TitleRowsCount;
            var col = Grid.GetColumn(classCard) - TimeColumnsCount;

            var @class = new ClassRecord();

            ClassRecord.Copy(_groupClasses.GetClass(row, col), @class);
            ClipboardService.SetData(@class);

            var vmodel = classCard.DataContext as ClassCardViewModel;

            if (vmodel == null)
            {
                return;
            }

            vmodel.Class = null;
            _groupClasses.RemoveClass(row, col);
        }
Beispiel #10
0
        //班級名稱用
        private int SortClassName(ClassRecord x, ClassRecord y)
        {
            string xx = x.Name;
            string yy = y.Name;

            return(xx.CompareTo(yy));
        }
        public static int ClassComparer(ClassRecord x, ClassRecord y)
        {
            string xx = x.Name;
            string yy = y.Name;

            return(xx.CompareTo(yy));
        }
Beispiel #12
0
 /// <summary>
 /// 取得班級開課課程資料
 /// </summary>
 /// <param name="schoolyear">學年度</param>
 /// <param name="semester">學期</param>
 /// <param name="classrecord">班級</param>
 public List <CourseRecord> GetClassCourse(int schoolyear, int semester, ClassRecord classrecord)
 {
     if (_Provider == null)
     {
         throw new Exception("Provider尚未設定");
     }
     return(_Provider.GetClassCourse(schoolyear, semester, classrecord));
 }
Beispiel #13
0
 /// <summary>
 /// Current preset file, which contains information of presets and rules
 /// </summary>
 private void InitRuleTypes()
 {
     for (int i = 0; i < ruleTypeManager.ruleTypes.Count; i++)
     {
         ClassRecord rec = ruleTypeManager.ruleTypes[i];
         listBoxRuleType.Items.Add(rec);
     }
 }
Beispiel #14
0
 public FullClassRecord(ClassRecord classRecord)
 {
     Group = classRecord.Group;
     ClassTime = classRecord.ClassTime;
     Subject = classRecord.Subject;
     Lecturer = classRecord.Lecturer;
     Classroom = classRecord.Classroom;
 }
Beispiel #15
0
 public FullClassRecord(ClassTime classTime, Group group, ClassRecord @class)
 {
     Group     = group;
     ClassTime = classTime;
     Subject   = @class.Subject;
     Lecturer  = @class.Lecturer;
     Classroom = @class.Classroom;
 }
Beispiel #16
0
 public FullClassRecord(ClassRecord classRecord)
 {
     Group     = classRecord.Group;
     ClassTime = classRecord.ClassTime;
     Subject   = classRecord.Subject;
     Lecturer  = classRecord.Lecturer;
     Classroom = classRecord.Classroom;
 }
Beispiel #17
0
 public FullClassRecord(ClassTime classTime,  Group group, ClassRecord @class)
 {
     Group = group;
         ClassTime = classTime;
         Subject = @class.Subject;
         Lecturer = @class.Lecturer;
         Classroom = @class.Classroom;
 }
Beispiel #18
0
 public static ClassTagRecordEditor AddTag(this ClassRecord cla, TagRecord record)
 {
     if (record.Category.ToUpper() != TagCategory.Class.ToString().ToUpper())
     {
         throw new ArgumentException("");
     }
     return(new ClassTagRecordEditor(cla, record));
 }
Beispiel #19
0
 private void InitActionTypes()
 {
     for (int i = 0; i < ruleTypeManager.actionTypes.Count; i++)
     {
         ClassRecord rec = ruleTypeManager.actionTypes[i];
         listBoxActionType.Items.Add(rec);
         logger.Debug(rec);
     }
 }
Beispiel #20
0
        //public static string GetKey(params string[] keys)
        //{
        //    return null;
        //}

        public static string GetStudentInfo(StudentRecord student)
        {
            ClassRecord cr        = student.Class;
            string      className = cr == null ? "" : cr.Name;

            string str = "學生:" + student.Name + " 班級:" + className + " 座號:" + student.SeatNo + " 學號:" + student.StudentNumber + "\r\n";

            return(str);
        }
        /// <summary>
        /// Finds the differences in properties.
        /// </summary>
        /// <returns>Number of differences found</returns>
        public int Run(ClassRecord c1, ClassRecord c2, IDiffActions actions)
        {
            int differences = 0;
            var e1          = c1.Properties.GetEnumerator();
            var e2          = c2.Properties.GetEnumerator();
            var b1          = e1.MoveNext();
            var b2          = e2.MoveNext();

            while (b1 && b2)
            {
                var p1 = e1.Current;
                var p2 = e2.Current;
                var rc = p1.Name.CompareTo(p2.Name);
                if (rc < 0)
                {
                    actions.PropertyOnlyInFirst(p1);
                    differences++;
                    b1 = e1.MoveNext();
                }
                else if (rc > 0)
                {
                    actions.PropertyOnlyInSecond(p2);
                    differences++;
                    b2 = e2.MoveNext();
                }
                else if (TypeFormat != TypeFormat.NONE && p1.Type != p2.Type)
                {
                    actions.PropertyOnlyInFirst(p1);
                    actions.PropertyOnlyInSecond(p2);
                    differences++;
                    b1 = e1.MoveNext();
                    b2 = e2.MoveNext();
                }
                else
                {
                    actions.PropertyMatch(p1);
                    b1 = e1.MoveNext();
                    b2 = e2.MoveNext();
                }
            }
            while (b1)
            {
                actions.PropertyOnlyInFirst(e1.Current);
                differences++;
                b1 = e1.MoveNext();
            }
            while (b2)
            {
                actions.PropertyOnlyInSecond(e2.Current);
                differences++;
                b2 = e2.MoveNext();
            }
            return(differences);
        }
Beispiel #22
0
        private void OnCopyClassCommand()
        {
            if (_selectedCard == null || _selectedCard.Class == null)
            {
                return;
            }
            var @class = new ClassRecord();

            ClassRecord.Copy(_selectedCard.Class, @class);
            ClipboardService.SetData(@class);
        }
Beispiel #23
0
 public static ScoreCalcRuleRecord GetScoreCalcRuleRecord(this ClassRecord classRec)
 {
     if (classRec != null && !string.IsNullOrEmpty(classRec.RefScoreCalcRuleID))
     {
         return(ScoreCalcRule.Instance.Items[classRec.RefScoreCalcRuleID]);
     }
     else
     {
         return(null);
     }
 }
Beispiel #24
0
 public static ProgramPlanRecord GetProgramPlanRecord(this ClassRecord classRec)
 {
     if (classRec != null && !string.IsNullOrEmpty(classRec.RefProgramPlanID))
     {
         return(ProgramPlan.Instance.Items[classRec.RefProgramPlanID]);
     }
     else
     {
         return(null);
     }
 }
        public static int ClassComparer(ClassRecord x, ClassRecord y)
        {
            string xx = x.GradeYear.HasValue ? x.GradeYear.Value.ToString().PadLeft(3, '0') : "0";
            string yy = y.GradeYear.HasValue ? y.GradeYear.Value.ToString().PadLeft(3, '0') : "0";

            xx += x.DisplayOrder.PadLeft(3, '0');
            yy += y.DisplayOrder.PadLeft(3, '0');

            xx += x.Name.PadLeft(10, '0');
            yy += y.Name.PadLeft(10, '0');

            return(xx.CompareTo(yy));
        }
Beispiel #26
0
 private void SetListIndexRuleType(Type t)
 {
     for (int i = 0; i < listBoxRuleType.Items.Count; i++)
     {
         ClassRecord rec = (ClassRecord)listBoxRuleType.Items[i];
         if (rec.classRecord == t)
         {
             listBoxRuleType.SelectedIndex = i;
             return;
         }
     }
     listBoxRuleType.SelectedIndex = -1;
 }
        private int GetClassSort(ClassRecord cr1, ClassRecord cr2)
        {
            string SortValueA = cr1.GradeYear.HasValue ? cr1.GradeYear.Value.ToString().PadLeft(1, '9') : "";

            SortValueA += cr1.DisplayOrder.PadLeft(3, '9');
            SortValueA += cr1.Name.PadLeft(10, '0');

            string SortValueB = cr2.GradeYear.HasValue ? cr2.GradeYear.Value.ToString().PadLeft(1, '9') : "";

            SortValueB += cr2.DisplayOrder.PadLeft(3, '9');
            SortValueB += cr2.Name.PadLeft(10, '0');

            return(SortValueA.CompareTo(SortValueB));
        }
Beispiel #28
0
        private void OnPasteClassCommand()
        {
            if (_selectedCard == null)
            {
                return;
            }
            if (_selectedCard.Class == null)
            {
                _selectedCard.Class = _groupClasses.SetClass(_selectedRow, _selectedColumn, new ClassRecord());
            }
            var cliped = ClipboardService.GetData <ClassRecord>();

            ClassRecord.Copy(cliped, _selectedCard.Class);
        }
        internal ClassRecordEditor(ClassRecord record)
        {
            Remove = false;
            Class = record;

            ID = Class.ID;
            Name = Class.Name;
            NamingRule = Class.NamingRule;
            RefTeacherID = Class.RefTeacherID;
            RefDepartmentID = Class.RefDepartmentID;
            RefProgramPlanID = Class.RefProgramPlanID;
            RefScoreCalcRuleID = Class.RefScoreCalcRuleID;
            DisplayOrder = Class.DisplayOrder;
            GradeYear = Class.GradeYear;
        }
Beispiel #30
0
        internal ClassRecordEditor(ClassRecord record)
        {
            Remove = false;
            Class  = record;

            ID                 = Class.ID;
            Name               = Class.Name;
            NamingRule         = Class.NamingRule;
            RefTeacherID       = Class.RefTeacherID;
            RefDepartmentID    = Class.RefDepartmentID;
            RefProgramPlanID   = Class.RefProgramPlanID;
            RefScoreCalcRuleID = Class.RefScoreCalcRuleID;
            DisplayOrder       = Class.DisplayOrder;
            GradeYear          = Class.GradeYear;
        }
Beispiel #31
0
        private void OnPasteClassCommand()
        {
            if (_selectedCard == null)
            {
                return;
            }
            if (_selectedCard.Class == null)
            {
                _classesTable.Table[_selectedRow][_selectedColumn] = new ClassRecord();
                _selectedCard.Class = _classesTable.Table[_selectedRow][_selectedColumn];
            }
            var cliped = ClipboardService.GetData <ClassRecord>();

            ClassRecord.Copy(cliped, _selectedCard.Class);
            //ClassesCards[_selectedRow][_selectedColumn].DataContext = _selectedCard;
        }
        private void wizardPage2_FinishButtonClick(object sender, CancelEventArgs e)
        {
            DSXmlHelper helper = new DSXmlHelper("UpdateStudentList");

            helper.AddElement("Student");
            helper.AddElement("Student", "Field");

            StringBuilder desc = new StringBuilder("");
            StudentRecord stu  = _StudentRec;

            desc.AppendLine("學生姓名:" + stu.StudentName + " ");
            if (stu.StudentNumber != textBoxX1.Text)
            {
                desc.AppendLine("學號由「" + stu.StudentNumber + "」變更為「" + textBoxX1.Text + "」");
                helper.AddElement("Student/Field", "StudentNumber", textBoxX1.Text);
            }
            ClassRecord classRec = (ClassRecord)cboClass.SelectedItem;

            if (classRec.Department + (("" + classRec.Fields["SubDepartment"]) == "" ? "" : ":" + classRec.Fields["SubDepartment"]) != cboDept.Text)
            {
                desc.AppendLine("科別由「" + stu.Department + "」變更為「" + cboDept.Text + "」");
                helper.AddElement("Student/Field", "OverrideDeptID", _DeptIDList[cboDept.Text]);
            }
            else
            {
                desc.AppendLine("科別由「" + stu.Department + "」變更為「" + cboDept.Text + "」");
                helper.AddElement("Student/Field", "OverrideDeptID", "");
            }
            if (classRec != stu.RefClass)
            {
                desc.AppendLine("班級由「" + (stu.RefClass == null ? "" : stu.RefClass.ClassName) + "」變更為「" + classRec.ClassName + "」");
                helper.AddElement("Student/Field", "RefClassID", classRec.ClassID);
            }
            desc.AppendLine("座號由「" + (stu.SeatNo) + "」變更為「" + cboSeatNo.Text + "」");
            helper.AddElement("Student/Field", "SeatNo", cboSeatNo.Text);

            helper.AddElement("Student", "Condition");
            helper.AddElement("Student/Condition", "ID", stu.StudentID);

            this.Close();
            //CurrentUser.Instance.AppLog.Write(EntityType.Student, "學生轉科", stu.StudentID, desc.ToString(), "", "");
            SmartSchool.Feature.EditStudent.Update(new DSRequest(helper));
            this.updateRecordInfo1.Save();
            this.updateRecordInfo2.Save();
            //SmartSchool.Broadcaster.Events.Items["學生/資料變更"].Invoke(stu.StudentID);
        }
Beispiel #33
0
        protected void LoadFileList(string dir)
        {
            //загружаем файлы из дериктории
            string[] filePaths = Directory.GetFiles(dir, "*.txt");
            int      i;

            flag_record = false;
            vrecords.Clear();
            for (i = 0; i < filePaths.Length; i++)
            {
                ClassRecord local_rec = new ClassRecord();
                if (local_rec.ValidateReadHead(filePaths[i]) || local_rec.ValidateReadHeadWindows7(filePaths[i]))
                {
                    vrecords.Add(local_rec);
                }
            }
        }
Beispiel #34
0
        private void listBoxActionType_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (listBoxActionType.SelectedIndex < 0)
            {
                ActiveActionType = null;
                return;
            }
            // get selected rule information
            var tmpActionClass = (ClassRecord)listBoxActionType.Items[listBoxActionType.SelectedIndex];

            // change EditRule.Action to new type
            if (!blockUIChange)
            {
                HandleRuleAction tmpAction = (HandleRuleAction)Activator.CreateInstance(tmpActionClass.classRecord);
                EditRule.Action = tmpAction;
            }
            ActiveActionType = tmpActionClass;
        }
Beispiel #35
0
        public static StudentRecord GetStudent(string className, string seatNo)
        {
            ClassRecord classRecord = Class.Instance.GetClassByName(className);

            if (classRecord == null)
            {
                return(null);
            }

            foreach (StudentRecord student in classRecord.Students)
            {
                if (student.SeatNo == seatNo)
                {
                    return(student);
                }
            }
            return(null);
        }
            /// <summary>
            /// 主要是給匯出時用的
            /// </summary>
            /// <param name="classRecord"></param>
            /// <param name="studentRecord"></param>
            /// <param name="fitnessRecord"></param>
            public void SetDataForExport(ClassRecord classRecord, StudentRecord studentRecord, DAO.StudentFitnessRecord fitnessRecord, bool isExportDegree)
            {
                
                // 測驗日期
                SetColumnValue("測驗日期", Utility.ConvertDateTimeToChineseDateTime(fitnessRecord.TestDate));

                // 學校類別
                SetColumnValue("學校類別", fitnessRecord.SchoolCategory);

                if (classRecord != null)
                {
                    // 年級
                    if (classRecord.GradeYear.HasValue)
                        SetColumnValue("年級", classRecord.GradeYear.Value.ToString());

                    // 班級名稱
                    SetColumnValue("班級名稱", classRecord.Name);

                    // 班級序號 for sort
                    SetOthersValue("班級序號", classRecord.DisplayOrder);
                }

                // 學號/座號
                SetColumnValue("學號/座號", studentRecord.StudentNumber);

                // 性別
                SetColumnValue("性別", Utility.ConvertDBGenderToOutGender(studentRecord.Gender));

                // 身分證字號
                SetColumnValue("身分證字號", studentRecord.IDNumber);

                // 生日
                SetColumnValue("生日", Utility.ConvertDateTimeToChineseDateTime(studentRecord.Birthday));

                // 身高
                SetColumnValue("身高", fitnessRecord.Height);

                // 體重
                SetColumnValue("體重", fitnessRecord.Weight);

                // 坐姿體前彎
                SetColumnValue("坐姿體前彎", fitnessRecord.SitAndReach);

                // 立定跳遠
                SetColumnValue("立定跳遠", fitnessRecord.StandingLongJump);

                // 仰臥起坐
                SetColumnValue("仰臥起坐", fitnessRecord.SitUp);

                // 心肺適能
                SetColumnValue("心肺適能", fitnessRecord.Cardiorespiratory);


                // 姓名 for sort
                SetOthersValue("姓名", studentRecord.Name);

                if(isExportDegree == true)
                {
                    // 身高常模
                    SetColumnValue("身高常模", fitnessRecord.HeightDegree);

                    // 體重常模
                    SetColumnValue("體重常模", fitnessRecord.WeightDegree);

                    // 坐姿體前彎常模
                    SetColumnValue("坐姿體前彎常模", fitnessRecord.SitAndReachDegree);

                    // 立定跳遠常模
                    SetColumnValue("立定跳遠常模", fitnessRecord.StandingLongJumpDegree);

                    // 仰臥起坐常模
                    SetColumnValue("仰臥起坐常模", fitnessRecord.SitUpDegree);

                    // 心肺適能常模
                    SetColumnValue("心肺適能常模", fitnessRecord.CardiorespiratoryDegree);
                }
            }
 void AddLog(ClassRecord obj)
 {
     this.logAgent.SetLogValue("�оǤ��Z", obj.Name);
     this.logAgent.SetLogValue("�J�Ǧ~��", obj.GradeYear.ToString());
     this.logAgent.SetLogValue("�ƦC�Ǹ�", obj.DisplayOrder);
     this.logAgent.SetLogValue("�Z�ɮv", obj.RefTeacherID);
 }
Beispiel #38
0
        private void RefreshDataGrid()
        {
            this.StudentBusView.Items.Clear();
            this.studentdataGridView.Rows.Clear();
            this.studentdataGridView.Refresh();
            List<string> classIDs = new List<string>();
            Dictionary<int, ClassRecord> orderClasses = new Dictionary<int, ClassRecord>();
            int nowSet = 0;
            if (this.cboClass.Text != "全部班級")
            {
                ClassRecord cls = new ClassRecord();
                cls = (ClassRecord)this.cboClass.SelectedItem;
                classIDs.Add(cls.ID);
            }
            else
            {
                List<ClassRecord> classes = K12.Data.Class.SelectAll();
                int orderval = 0;
                foreach (ClassRecord var in classes)
                {
                    if (var.GradeYear == null)
                        continue;
                    else if (var.GradeYear > 3)
                        continue;
                    else if (var.Name.IndexOf("夜輔") >= 0 || var.Name.IndexOf("轉學") >= 0 || var.Name.IndexOf("選修") >= 0)
                        continue;
                    else
                    {
                        if (int.Parse(var.GradeYear.ToString()) == 3)
                            orderval = 47 + int.Parse(var.DisplayOrder);
                        else
                            orderval = (int.Parse(var.GradeYear.ToString()) - 1) * 23 + int.Parse(var.DisplayOrder);
                        if (!orderClasses.ContainsKey(orderval))
                            orderClasses.Add(orderval, new ClassRecord());
                        orderClasses[orderval] = var;
                    }
                }
                for (int i = 1; i <= orderClasses.Count; i++)
                    classIDs.Add(orderClasses[i].ID);
            }

            List<StudentRecord> studentclass = K12.Data.Student.SelectByClassIDs(classIDs);
            List<StudentRecord> Activestudentclass = new List<StudentRecord>();
            List<string> studentids = new List<string>();
            foreach (StudentRecord var in studentclass)
            {
                MotherForm.SetStatusBarMessage("正在讀取學生資料", nowSet++ * 20 / studentclass.Count);
                if (var.Status.ToString() != "一般")
                    continue;
                if (!studentids.Contains(var.ID))
                {
                    studentids.Add(var.ID);
                    Activestudentclass.Add(var);
                }
            }
            this.label4.Text = "共" + Activestudentclass.Count.ToString() + "人";
            List<PhoneRecord> pr = Phone.SelectByStudentIDs(studentids);
            Dictionary<string, PhoneRecord> Studentpr = new Dictionary<string, PhoneRecord>();

            nowSet = 0;
            foreach (PhoneRecord var in pr)
            {
                MotherForm.SetStatusBarMessage("正在讀取電話資料", 20 + nowSet++ * 10 / pr.Count);
                if (!Studentpr.ContainsKey(var.RefStudentID))
                    Studentpr.Add(var.RefStudentID, var);
            }
            BusSetup bussetup = BusSetupDAO.SelectByBusYearAndRange(int.Parse(this.cboYear.Text), this.cboRange.Text);
            List<BusStop> buses = BusStopDAO.SelectByBusTimeNameOrderByStopID(bussetup.BusTimeName);

            int ii = 0;
            nowSet = 0;
            int now_percent = 30;
            int will_percent = 65;
            //原由班級查詢搭校車狀況,改為由學生編號查詢
            //List<StudentByBus> _Source = StudentByBusDAO.SelectByBusYearAndTimeNameAndClassID(int.Parse(this.cboYear.Text), this.cboRange.Text, cls.ID);
            List<StudentByBus> _Source = StudentByBusDAO.SelectByBusYearAndTimeNameAndStudntList(int.Parse(this.cboYear.Text), this.cboRange.Text, studentids);
            Dictionary<string, StudentByBus> StudentBuses = new Dictionary<string, StudentByBus>();
            if (_Source != null)
            {
                foreach (var item in _Source)
                {
                    MotherForm.SetStatusBarMessage("正在讀取學生乘車資料", 30 + nowSet++ * 30 / _Source.Count);
                    if (!StudentBuses.ContainsKey(item.StudentID))
                        StudentBuses.Add(item.StudentID, item);
                }
                now_percent = 60;
                will_percent = 35;
            }
            Column3.Items.Clear();
            Dictionary<string, BusStop> busStopNames = new Dictionary<string, BusStop>();
            nowSet = 0;
            foreach (BusStop var in buses)
            {
                MotherForm.SetStatusBarMessage("正在讀取校車資料", now_percent + nowSet++ * will_percent / buses.Count);
                if (!Column3.Items.Contains(var.BusStopID + " " + var.BusStopName))
                    Column3.Items.Add(var.BusStopID + " " + var.BusStopName);
                if (!busStopNames.ContainsKey(var.BusStopID))
                    busStopNames.Add(var.BusStopID, var);
            }

            nowSet = 0;
            foreach (StudentRecord var in Activestudentclass)
            {
                MotherForm.SetStatusBarMessage("正在加入學生乘車資料", 95 + nowSet++ * 5 / Activestudentclass.Count);
                studentdataGridView.Rows.Add(var.Class.Name, var.StudentNumber, "", var.Name, Studentpr[var.ID].Cell == "" ? Studentpr[var.ID].Contact : Studentpr[var.ID].Cell, false, "", bussetup.DateCount, "", var.ID, "", var.Class.ID);
                if (StudentBuses.ContainsKey(var.ID))
                {
                    //studentdataGridView.Rows[studentdataGridView.Rows.Add(cls.Name, var.StudentNumber, StudentBuses[var.ID].BusStopID, var.Name, pr[ii].Cell == "" ? pr[ii].Contact : pr[ii].Cell, StudentBuses[var.ID].PayStatus, StudentBuses[var.ID].PayDate, StudentBuses[var.ID].DateCount, StudentBuses[var.ID].comment)].Tag = StudentBuses[var.ID];
                    //增加判斷是否含有校車代碼的站名
                    studentdataGridView[2, ii].Value = StudentBuses[var.ID].BusStopID + " " + (busStopNames.ContainsKey(StudentBuses[var.ID].BusStopID) ? busStopNames[StudentBuses[var.ID].BusStopID].BusStopName : "");
                    studentdataGridView[5, ii].Value = StudentBuses[var.ID].PayStatus;
                    studentdataGridView[6, ii].Value = (StudentBuses[var.ID].PayDate.ToShortDateString() == "0001/1/1" ? "" : StudentBuses[var.ID].PayDate.ToShortDateString());
                    studentdataGridView[7, ii].Value = StudentBuses[var.ID].DateCount;
                    studentdataGridView[8, ii].Value = StudentBuses[var.ID].comment;
                    studentdataGridView[10, ii].Value = StudentBuses[var.ID].BusMoney.ToString();
                    studentdataGridView.Rows[ii].Tag = StudentBuses[var.ID];
                }
                else
                {
                    //studentdataGridView.Rows[studentdataGridView.Rows.Add(cls.Name, var.StudentNumber, "", var.Name, pr[ii].Cell == "" ? pr[ii].Contact : pr[ii].Cell, "", "", "", "")].Tag = var;
                }
                //studentdataGridView[0, ii].Value = cls.Name;
                //studentdataGridView[1, ii].Value = var.StudentNumber;
                //studentdataGridView[3, ii].Value = var.Name;
                //studentdataGridView[4, ii].Value = pr[ii].Cell == "" ? pr[ii].Contact : pr[ii].Cell;
                //ListViewItem lvi = new ListViewItem((var.ID == null) ? "" : var.ID);
                //lvi.SubItems.Add(cls.Name);
                //lvi.SubItems.Add(var.StudentNumber);
                //lvi.SubItems.Add("");
                //lvi.SubItems.Add(var.Name);
                //lvi.SubItems.Add(pr.Cell == "" ? pr.Contact : pr.Cell);
                //lvi.SubItems.Add("");
                //lvi.SubItems.Add("");
                //lvi.SubItems.Add("");
                //lvi.SubItems.Add("");
                //lvi.Tag = var;
                ////把設定資訊填入ListView中
                //this.StudentBusView.Items.Add(lvi);
                ii++;
            }
            //List<StudentByBus> _Source = StudentByBusDAO.SelectByBusYearAndTimeNameAndClass(int.Parse(this.cboYear.Text), this.cboRange.Text, this.cboClass.Text);
            //studentdataGridView.Rows.Clear();
            //foreach (var item in _Source)
            //{
            //    studentdataGridView.Rows[studentdataGridView.Rows.Add(item.UID, item.PayStatus, item.PayDate, item.comment, item.Deleted)].Tag = item;
            //}
            MotherForm.SetStatusBarMessage("資料讀取完成", 100);
            studentdataGridView.EndEdit();
            studentdataGridView.CancelEdit();
        }
        void _BGWorker_DoWork(object sender, DoWorkEventArgs e)
        {
            _ClassRecord = Class.SelectByID(PrimaryKey);
            _AllClassRecList = Class.SelectAll();

            ReloadTeacher();
        }
Beispiel #40
0
        //
        // 2012-12-19 aaron modified 
        // 因為 國英數  數學普科自然組稱數學甲   數學普科社會組稱數學乙
        // 初始化  chiEngMathStrArray
        //
        private void InitailChiEngMathStrArray(ClassRecord varClassRecord)
        {


            if (varClassRecord.GradeYear == "3")
            {
                if (varClassRecord.ClassName.IndexOf("普") >= 0
                        && (varClassRecord.ClassName.IndexOf("自") >= 0
                        || varClassRecord.ClassName.IndexOf("乙") >= 0))
                {
                    chiEngMathStrArray = new string[] { "國文", "英文", "數學甲" };
                }
                else if (varClassRecord.ClassName.IndexOf("普") >= 0
                        && (varClassRecord.ClassName.IndexOf("社") >= 0
                        || varClassRecord.ClassName.IndexOf("丙") >= 0))
                {
                    chiEngMathStrArray = new string[] { "國文", "英文", "數學乙" };
                }
                else
                {
                    chiEngMathStrArray = new string[] { "國文", "英文", "數學" };
                }
            }
            else
            {
                chiEngMathStrArray = new string[] { "國文", "英文", "數學" };
            }
        }