Example #1
0
        private int SortResult(ResultScoreRecord rsr1, ResultScoreRecord rsr2)
        {
            string rsr1SortString = "";
            string rsr2SortString = "";

            if (StudentDic.ContainsKey(rsr1.RefStudentID) && StudentDic.ContainsKey(rsr2.RefStudentID))
            {
                demoStudent sr1 = StudentDic[rsr1.RefStudentID];
                demoStudent sr2 = StudentDic[rsr2.RefStudentID];

                rsr1SortString = string.IsNullOrEmpty(sr1.class_id) ? "000000" : sr1.class_name.PadLeft(6, '0');
                rsr2SortString = string.IsNullOrEmpty(sr2.class_id) ? "000000" : sr2.class_name.PadLeft(6, '0');

                rsr1SortString += !string.IsNullOrEmpty(sr1.seat_no) ? sr1.seat_no.ToString().PadLeft(3, '0') : "000";
                rsr2SortString += !string.IsNullOrEmpty(sr2.seat_no) ? sr2.seat_no.ToString().PadLeft(3, '0') : "000";
            }

            return(rsr1SortString.CompareTo(rsr2SortString));
        }
Example #2
0
        public override void InitializeExport(SmartSchool.API.PlugIn.Export.ExportWizard wizard)
        {
            List <string> FieldsList = GetList();

            wizard.ExportableFields.AddRange(FieldsList.ToArray());

            wizard.ExportPackage += delegate(object sender, SmartSchool.API.PlugIn.Export.ExportPackageEventArgs e)
            {
                #region 收集資料

                //取得所選社團
                List <string> SelectCLUBIDList = e.List;

                //取得參與學生的社團學期成績
                List <SCJoin> SCJoinList   = tool._A.Select <SCJoin>("ref_club_id in ('" + string.Join("','", SelectCLUBIDList) + "')");
                List <string> SCJoinIDList = new List <string>();
                foreach (SCJoin each in SCJoinList)
                {
                    if (!SCJoinIDList.Contains(each.UID))
                    {
                        SCJoinIDList.Add(each.UID);
                    }
                }

                List <ResultScoreRecord> ResultScoreList = tool._A.Select <ResultScoreRecord>("ref_scjoin_id in ('" + string.Join("','", SCJoinIDList) + "')");

                List <string> StudentIDList = new List <string>();

                foreach (ResultScoreRecord rsr in ResultScoreList)
                {
                    if (!StudentIDList.Contains(rsr.RefStudentID))
                    {
                        StudentIDList.Add(rsr.RefStudentID);
                    }
                }

                #endregion

                #region 取得學生基本資料

                StudentDic.Clear();
                if (StudentIDList.Count > 0)
                {
                    DataTable dt = tool._Q.Select(string.Format("select student.id,student.seat_no,student.student_number,student.name,class.class_name,class.id as class_id,class.grade_year from student join class on student.ref_class_id=class.id where student.id in('{0}')", string.Join("','", StudentIDList)));
                    foreach (DataRow each in dt.Rows)
                    {
                        demoStudent ds = new demoStudent(each);
                        if (!StudentDic.ContainsKey(ds.ref_student_id))
                        {
                            StudentDic.Add(ds.ref_student_id, ds);
                        }
                    }
                }

                #endregion

                ResultScoreList.Sort(SortResult);

                foreach (ResultScoreRecord Result in ResultScoreList)
                {
                    if (StudentDic.ContainsKey(Result.RefStudentID))
                    {
                        demoStudent sr = StudentDic[Result.RefStudentID];

                        #region 其它

                        string 取得學分 = "否";
                        if (Result.ResultScore.HasValue)
                        {
                            if (Result.ResultScore.Value >= 60)
                            {
                                取得學分 = "是";
                            }
                        }

                        string 科目級別 = "";
                        string 成績年級 = "";

                        if (!string.IsNullOrEmpty(sr.class_id))
                        {
                            int a;
                            if (int.TryParse(sr.grade_year, out a))
                            {
                                科目級別 = GetSchoolYearByGradeYear(a, Result.Semester);
                                成績年級 = sr.grade_year;
                            }
                        }

                        #endregion

                        RowData row = new RowData();
                        row.ID = Result.UID;

                        foreach (string field in e.ExportFields)
                        {
                            #region row

                            if (wizard.ExportableFields.Contains(field))
                            {
                                switch (field)
                                {
                                case "學生系統編號": row.Add(field, sr.ref_student_id); break;

                                case "學號": row.Add(field, sr.student_number); break;

                                case "班級": row.Add(field, sr.class_name); break;

                                case "座號": row.Add(field, sr.seat_no); break;

                                case "姓名": row.Add(field, sr.name); break;

                                case "科目": row.Add(field, "聯課活動"); break;

                                case "科目級別": row.Add(field, 科目級別); break;

                                case "學年度": row.Add(field, "" + Result.SchoolYear); break;

                                case "學期": row.Add(field, "" + Result.Semester); break;

                                case "學分數": row.Add(field, "0"); break;

                                case "必選修": row.Add(field, "必修"); break;

                                case "分項類別": row.Add(field, "學業"); break;

                                case "成績年級": row.Add(field, 成績年級); break;

                                case "校部訂": row.Add(field, "部訂"); break;

                                case "科目成績": row.Add(field, Result.ResultScore.HasValue ? Result.ResultScore.Value.ToString() : ""); break;

                                case "原始成績": row.Add(field, Result.ResultScore.HasValue ? Result.ResultScore.Value.ToString() : ""); break;

                                case "取得學分": row.Add(field, 取得學分); break;
                                }
                            }

                            #endregion
                        }
                        e.Items.Add(row);
                    }
                }
            };
        }