//覆寫 public override void InitializeExport(SmartSchool.API.PlugIn.Export.ExportWizard wizard) { List <School> GraduateList = tool._A.Select <School>(Program.MainPanel.SelectedSource); wizard.ExportableFields.AddRange("學校系統編號", "學校名稱", "DSNS", "群組", "註解"); wizard.ExportPackage += (sender, e) => { for (int i = 0; i < GraduateList.Count; i++) { RowData row = new RowData(); row.ID = GraduateList[i].UID; foreach (string field in e.ExportFields) { if (wizard.ExportableFields.Contains(field)) { switch (field) { case "學校系統編號": row.Add(field, "" + GraduateList[i].UID); break; case "學校名稱": row.Add(field, "" + GraduateList[i].Title); break; case "DSNS": row.Add(field, "" + GraduateList[i].DSNS); break; case "群組": row.Add(field, "" + GraduateList[i].Group); break; case "註解": row.Add(field, "" + GraduateList[i].Comment); break; } } } e.Items.Add(row); } }; }
public override void InitializeExport(SmartSchool.API.PlugIn.Export.ExportWizard wizard) { wizard.ExportableFields.AddRange(ExportItemList); wizard.ExportPackage += delegate(object sender, SmartSchool.API.PlugIn.Export.ExportPackageEventArgs e) { int RowCount = 0; List <DAO.UDT_CounselUserDefDataDef> CounselUserDefDataList = _UDTTransfer.GetCounselUserDefineDataByStudentIDList(e.List); foreach (DAO.UDT_CounselUserDefDataDef udd in CounselUserDefDataList) { RowData row = new RowData(); row.ID = udd.StudentID.ToString(); foreach (string field in e.ExportFields) { if (wizard.ExportableFields.Contains(field)) { switch (field) { case "欄位名稱": row.Add(field, udd.FieldName); break; case "值": row.Add(field, udd.Value); break; case "狀態": row.Add(field, udd.StudentStatus); break; } } } RowCount++; e.Items.Add(row); } }; }
public override void InitializeExport(SmartSchool.API.PlugIn.Export.ExportWizard wizard) { wizard.ExportableFields.AddRange(ExportItemList); wizard.ExportPackage += delegate(object sender, SmartSchool.API.PlugIn.Export.ExportPackageEventArgs e) { int RowCount = 0; foreach (DAL.UserDefData udd in UDTTransfer.GetDataFromUDT(e.List)) { RowData row = new RowData(); row.ID = udd.RefID; foreach (string field in e.ExportFields) { if (wizard.ExportableFields.Contains(field)) { switch (field) { case "欄位名稱": row.Add(field, udd.FieldName); break; case "值": row.Add(field, udd.Value); break; } } } RowCount++; e.Items.Add(row); } }; }
public override void InitializeExport(SmartSchool.API.PlugIn.Export.ExportWizard wizard) { wizard.ExportableFields.AddRange(DAL.DALTransfer.GetTeacherTagPrefixList(Teacher.Instance.SelectedKeys)); wizard.ExportPackage += delegate(object sender, SmartSchool.API.PlugIn.Export.ExportPackageEventArgs e) { List <DAL.TeacherTagEntity> TeacherTagList = DAL.DALTransfer.GetTeacherTagList(e.List); foreach (DAL.TeacherTagEntity ste in TeacherTagList) { RowData row = new RowData(); row.ID = ste.TeacherID; foreach (string field in e.ExportFields) { if (wizard.ExportableFields.Contains(field)) { if (ste.PrefixNameDic.ContainsKey(field)) { string str = ""; foreach (string strItem in ste.PrefixNameDic[field]) { str += strItem + "、"; } str = str.Substring(0, str.Length - 1); row.Add(field, str); } } } e.Items.Add(row); } PermRecLogProcess prlp = new PermRecLogProcess(); prlp.SaveLog("教師.匯出類別", "匯出", "共匯出" + TeacherTagList.Count + "筆教師類別資料."); }; }
public override void InitializeExport(SmartSchool.API.PlugIn.Export.ExportWizard wizard) { var 匯出代碼 = new SmartSchool.API.PlugIn.VirtualRadioButton("匯出校系代碼", true); var 匯出校系名稱 = new SmartSchool.API.PlugIn.VirtualRadioButton("匯出校系名稱", false); wizard.Options.Add(匯出代碼); wizard.Options.Add(匯出校系名稱); int wishLimint = 5; List <分發設定> list = _AccessHelper.Select <分發設定>(); if (list.Count > 0) { wishLimint = list[0].志願上限; } for (int i = 1; i <= wishLimint; i++) { wizard.ExportableFields.Add("第" + i + "志願"); } wizard.PackageLimit = 200; wizard.ExportPackage += delegate(object sender, SmartSchool.API.PlugIn.Export.ExportPackageEventArgs e) { Dictionary <string, SmartSchool.API.PlugIn.RowData> dicRowDatas = new Dictionary <string, SmartSchool.API.PlugIn.RowData>(); foreach (var refStudentID in e.List) { SmartSchool.API.PlugIn.RowData rowData = new SmartSchool.API.PlugIn.RowData(); rowData.ID = refStudentID; dicRowDatas.Add(refStudentID, rowData); e.Items.Add(rowData); } FISCA.UDT.Condition.InCondition condition = new FISCA.UDT.Condition.InCondition(); condition.Field = "RefStudentID"; condition.Values.AddRange(e.List); var datas = _AccessHelper.Select <推甄學生資料>(condition); datas.取得志願組(); foreach (var item in datas) { int index = 1; foreach (var wish in item.志願組) { dicRowDatas[item.StudentRecord.ID].Add("第" + index + "志願", (wish.校系資料 == null ? "校系資料已遺失" : (匯出代碼.Checked ? wish.校系資料.代碼 : (wish.校系資料.校名 + " " + wish.校系資料.系名)))); index++; } } foreach (var item in dicRowDatas.Values) { for (int i = 1; i <= wishLimint; i++) { if (!item.ContainsKey("第" + i + "志願")) { item.Add("第" + i + "志願", ""); } } } }; }
//覆寫 public override void InitializeExport(SmartSchool.API.PlugIn.Export.ExportWizard wizard) { List <string> FieldList = new List <string>(); FieldList.Add("學年度"); //目前欄位 FieldList.Add("學期"); //目前欄位 FieldList.Add("社團名稱"); //目前欄位 FieldList.Add("學期成績"); //目前欄位 FieldList.Add("幹部名稱"); //目前欄位 FieldList.Add("社團評等"); //目前欄位 wizard.ExportableFields.AddRange(FieldList); wizard.ExportPackage += (sender, e) => { //取得學生清單 AccessHelper helper = new AccessHelper(); string strCondition = string.Join("','", e.List); List <ResultScoreRecord> records = helper.Select <ResultScoreRecord>("ref_student_id in ('" + strCondition + "')"); for (int i = 0; i < records.Count; i++) { RowData row = new RowData(); row.ID = records[i].RefStudentID; foreach (string field in e.ExportFields) { if (wizard.ExportableFields.Contains(field)) { switch (field) { case "學年度": row.Add(field, "" + records[i].SchoolYear); break; case "學期": row.Add(field, "" + records[i].Semester); break; case "社團名稱": row.Add(field, records[i].ClubName); break; case "學期成績": row.Add(field, records[i].ResultScore.HasValue ? records[i].ResultScore.Value.ToString() : ""); break; case "幹部名稱": row.Add(field, records[i].CadreName); break; case "社團評等": row.Add(field, records[i].ClubLevel); break; } } } e.Items.Add(row); } }; }
public override void InitializeExport(SmartSchool.API.PlugIn.Export.ExportWizard wizard) { wizard.ExportableFields.AddRange(ExportItemList); wizard.ExportPackage += delegate(object sender, SmartSchool.API.PlugIn.Export.ExportPackageEventArgs e) { int RowCount = 0; Dictionary <string, DAO.UDT_HighConcern> HighConcernList = DAO.UDTTransfer.GetHighConcernDictByStudentIDList(e.List); foreach (DAO.UDT_HighConcern udd in HighConcernList.Values) { RowData row = new RowData(); row.ID = udd.RefStudentID; // 檢查是否匯出 bool chkExportData = false; foreach (string field in e.ExportFields) { if (wizard.ExportableFields.Contains(field)) { switch (field) { case "高關懷特殊身分註記": if (udd.HighConcern) { chkExportData = true; row.Add(field, "是"); } break; case "減免人數": row.Add(field, udd.NumberReduce.ToString()); break; case "文號": row.Add(field, udd.DocNo); break; case "相關證明文件網址": row.Add(field, udd.EDoc); break; } } } if (chkExportData) { RowCount++; e.Items.Add(row); } } }; }
public override void InitializeExport(SmartSchool.API.PlugIn.Export.ExportWizard wizard) { wizard.ExportableFields.AddRange(ExportItemList); wizard.ExportPackage += delegate(object sender, SmartSchool.API.PlugIn.Export.ExportPackageEventArgs e) { // 取得畢業相關資訊 List <JHLeaveInfoRecord> JHLeaveInfoRecordList = JHLeaveIfno.SelectByStudentIDs(e.List); foreach (JHLeaveInfoRecord lir in JHLeaveInfoRecordList) { RowData row = new RowData(); row.ID = lir.RefStudentID; foreach (string field in e.ExportFields) { if (wizard.ExportableFields.Contains(field)) { switch (field) { case "畢業學年度": if (lir.SchoolYear.HasValue) { row.Add(field, lir.SchoolYear.Value.ToString()); } break; case "畢業資格": row.Add(field, lir.Reason); break; case "畢業證書字號": row.Add(field, lir.DiplomaNumber); break; case "畢業相關訊息": row.Add(field, lir.Memo); break; } } } e.Items.Add(row); } PermRecLogProcess prlp = new PermRecLogProcess(); prlp.SaveLog("學生.匯出畢業資訊", "匯出", "共匯出" + K12.Presentation.NLDPanels.Student.SelectedSource.Count + "筆學生類別資料."); }; }
//覆寫 public override void InitializeExport(SmartSchool.API.PlugIn.Export.ExportWizard wizard) { wizard.ExportableFields.AddRange("英文別名", "居留證號", "入學日期", "畢業日期"); wizard.ExportPackage += (sender, e) => { List <StudentRecord_Ext> records = tool._A.Select <StudentRecord_Ext>(string.Format("ref_student_id in ('{0}')", string.Join("','", e.List))); Dictionary <string, StudentRecord_Ext> recordsDic = new Dictionary <string, StudentRecord_Ext>(); foreach (StudentRecord_Ext each in records) { if (!recordsDic.ContainsKey(each.RefStudentID)) { recordsDic.Add(each.RefStudentID, each); } } List <StudentRecord> StudList = K12.Data.Student.SelectByIDs(e.List); StudList.Sort(SortStudent); foreach (StudentRecord stud in StudList) { RowData row = new RowData(); row.ID = stud.ID; foreach (string field in e.ExportFields) { if (wizard.ExportableFields.Contains(field)) { switch (field) { case "英文別名": row.Add(field, "" + recordsDic[stud.ID].Nickname); break; case "居留證號": row.Add(field, "" + recordsDic[stud.ID].PassportNumber); break; case "入學日期": row.Add(field, recordsDic[stud.ID].EntranceDate.HasValue ? recordsDic[stud.ID].EntranceDate.Value.ToShortDateString() : ""); break; case "畢業日期": row.Add(field, recordsDic[stud.ID].LeavingDate.HasValue ? recordsDic[stud.ID].LeavingDate.Value.ToShortDateString() : ""); break; } } } e.Items.Add(row); } }; }
//覆寫 public override void InitializeExport(SmartSchool.API.PlugIn.Export.ExportWizard wizard) { wizard.ExportableFields.AddRange("學年度", "學期", "年級", "當時班級", "當時座號", "當時班導師姓名", "上課天數"); wizard.ExportPackage += (sender, e) => { //取得學生清單 List <JHSemesterHistoryRecord> records = JHSemesterHistory.SelectByStudentIDs(e.List); foreach (JHSemesterHistoryRecord record in records) { foreach (K12.Data.SemesterHistoryItem Item in record.SemesterHistoryItems) { RowData row = new RowData(); row.ID = record.RefStudentID; foreach (string field in e.ExportFields) { if (wizard.ExportableFields.Contains(field)) { switch (field) { case "學年度": row.Add(field, "" + Item.SchoolYear); break; case "學期": row.Add(field, "" + Item.Semester); break; case "年級": row.Add(field, "" + Item.GradeYear); break; case "當時班級": row.Add(field, "" + Item.ClassName); break; case "當時座號": row.Add(field, "" + Item.SeatNo); break; case "當時班導師姓名": row.Add(field, "" + Item.Teacher); break; case "上課天數": row.Add(field, "" + Item.SchoolDayCount); break; } } } e.Items.Add(row); } } }; }
public override void InitializeExport(SmartSchool.API.PlugIn.Export.ExportWizard wizard) { SmartSchool.API.PlugIn.VirtualCheckBox filterRepeat = new SmartSchool.API.PlugIn.VirtualCheckBox("自動略過重讀成績", true); wizard.Options.Add(filterRepeat); // 2022-01 Cynthia 移除"體育", "國防通識", "健康與護理", wizard.ExportableFields.AddRange("學年度", "成績年級", "學業", "實習科目", "專業科目", "德行"); AccessHelper _AccessHelper = new AccessHelper(); wizard.ExportPackage += delegate(object sender, SmartSchool.API.PlugIn.Export.ExportPackageEventArgs e) { List <StudentRecord> students = _AccessHelper.StudentHelper.GetStudents(e.List); _AccessHelper.StudentHelper.FillSchoolYearEntryScore(filterRepeat.Checked, students); foreach (StudentRecord stu in students) { Dictionary <int, List <SchoolYearEntryScoreInfo> > schoolYearEntryScoreList = new Dictionary <int, List <SchoolYearEntryScoreInfo> >(); foreach (SchoolYearEntryScoreInfo var in stu.SchoolYearEntryScoreList) { if (!schoolYearEntryScoreList.ContainsKey(var.SchoolYear)) { schoolYearEntryScoreList.Add(var.SchoolYear, new List <SchoolYearEntryScoreInfo>()); } schoolYearEntryScoreList[var.SchoolYear].Add(var); } foreach (int sy in schoolYearEntryScoreList.Keys) { RowData row = new RowData(); row.ID = stu.StudentID; row.Add("學年度", "" + sy); foreach (SchoolYearEntryScoreInfo var in schoolYearEntryScoreList[sy]) { if (!row.ContainsKey("成績年級")) { row.Add("成績年級", "" + var.GradeYear); } if (e.ExportFields.Contains(var.Entry)) { row.Add(var.Entry, "" + var.Score); } } e.Items.Add(row); } } }; }
public override void InitializeExport(SmartSchool.API.PlugIn.Export.ExportWizard wizard) { SmartSchool.API.PlugIn.VirtualCheckBox filterRepeat = new SmartSchool.API.PlugIn.VirtualCheckBox("自動略過重讀成績", true); wizard.Options.Add(filterRepeat); wizard.ExportableFields.AddRange("學年度", "成績年級", "科目", "學年成績", "結算成績", "補考成績", "重修成績"); AccessHelper _AccessHelper = new AccessHelper(); wizard.ExportPackage += delegate(object sender, SmartSchool.API.PlugIn.Export.ExportPackageEventArgs e) { List <StudentRecord> students = _AccessHelper.StudentHelper.GetStudents(e.List); _AccessHelper.StudentHelper.FillSchoolYearSubjectScore(filterRepeat.Checked, students); foreach (StudentRecord stu in students) { foreach (SchoolYearSubjectScoreInfo var in stu.SchoolYearSubjectScoreList) { RowData row = new RowData(); row.ID = stu.StudentID; foreach (string field in e.ExportFields) { if (wizard.ExportableFields.Contains(field)) { switch (field) { case "學年度": row.Add(field, "" + var.SchoolYear); break; case "成績年級": row.Add(field, "" + var.GradeYear); break; case "科目": row.Add(field, var.Subject); break; case "學年成績": row.Add(field, "" + var.Score); break; case "結算成績": row.Add(field, var.Detail.GetAttribute(field) == "" ? ("" + var.Score) : var.Detail.GetAttribute(field)); break; case "補考成績": row.Add(field, var.Detail.GetAttribute(field)); break; case "重修成績": row.Add(field, var.Detail.GetAttribute(field)); break; } } } e.Items.Add(row); } } }; }
public override void InitializeExport(SmartSchool.API.PlugIn.Export.ExportWizard wizard) { wizard.ExportableFields.AddRange(ExportItemList); wizard.ExportPackage += delegate(object sender, SmartSchool.API.PlugIn.Export.ExportPackageEventArgs e) { Dictionary <string, List <DAL.StudUpdateRecordEntity> > StudUpdateRecordEntityListDic = DAL.DALTransfer2.GetStudListUpdateRecordEntityListByUpdateType(e.List, JHPermrec.UpdateRecord.DAL.DALTransfer2.UpdateType.中輟); int ExportCount = 0; foreach (KeyValuePair <string, List <DAL.StudUpdateRecordEntity> > sureKey in StudUpdateRecordEntityListDic) { foreach (DAL.StudUpdateRecordEntity sure in sureKey.Value) { RowData row = new RowData(); row.ID = sure.StudentID; foreach (string field in e.ExportFields) { if (wizard.ExportableFields.Contains(field)) { switch (field) { case "學年度": if (sure.SchoolYear > 0) { row.Add(field, "" + sure.SchoolYear); } break; case "學期": if (sure.Semester > 0) { row.Add(field, "" + sure.Semester); } break; case "異動年級": row.Add(field, "" + sure.GetGradeYear()); break; case "異動日期": if (sure.GetUpdateDate().HasValue) { row.Add(field, sure.GetUpdateDate().Value.ToShortDateString()); } break; case "原因及事項": row.Add(field, sure.GetUpdateDescription()); break; case "備註": row.Add(field, sure.GetComment()); break; case "異動班級": row.Add(field, sure.GetClassName()); break; case "異動姓名": row.Add(field, sure.GetName()); break; case "異動身分證號": row.Add(field, sure.GetIDNumber()); break; case "異動學號": row.Add(field, sure.GetStudentNumber()); break; case "異動性別": row.Add(field, sure.GetGender()); break; case "異動生日": if (sure.GetBirthday().HasValue) { row.Add(field, sure.GetBirthday().Value.ToShortDateString()); } break; case "異動地址": row.Add(field, sure.GetAddress()); break; case "核准日期": if (sure.GetADDate().HasValue) { row.Add(field, sure.GetADDate().Value.ToShortDateString()); } break; case "核准文號": row.Add(field, sure.GetADNumber()); break; case "學籍核准日期": if (sure.GetLastADDate().HasValue) { row.Add(field, sure.GetLastADDate().Value.ToShortDateString()); } break; case "學籍核准文號": row.Add(field, sure.GetLastADNumber()); break; case "異動座號": row.Add(field, sure.GetSeatNo()); break; case "異動類別": row.Add(field, "中輟"); break; } } } ExportCount++; e.Items.Add(row); } } JHSchool.PermRecLogProcess prlp = new JHSchool.PermRecLogProcess(); prlp.SaveLog("學生.匯出異動", "匯出中輟異動", "共匯出中輟異動" + ExportCount + "筆資料."); }; }
public override void InitializeExport(SmartSchool.API.PlugIn.Export.ExportWizard wizard) { //SmartSchool.API.PlugIn.VirtualCheckBox filterRepeat = new SmartSchool.API.PlugIn.VirtualCheckBox("自動略過重讀成績", true); //wizard.Options.Add(filterRepeat); wizard.ExportableFields.AddRange("領域", "分數評量"); wizard.ExportPackage += delegate(object sender, SmartSchool.API.PlugIn.Export.ExportPackageEventArgs e) { #region ExportPackage List <JHStudentRecord> students = JHStudent.SelectByIDs(e.List); GradScore.Instance.SyncDataBackground(e.List); foreach (JHStudentRecord stu in students) { GradScoreRecord record = GradScore.Instance.Items[stu.ID]; if (record == null) { continue; } foreach (GradDomainScore domain in record.Domains.Values) { RowData row = new RowData(); row.ID = stu.ID; foreach (string field in e.ExportFields) { if (wizard.ExportableFields.Contains(field)) { switch (field) { case "領域": row.Add(field, "" + domain.Domain); break; case "分數評量": row.Add(field, "" + domain.Score); break; } } } e.Items.Add(row); } foreach (string item in new string[] { "學習領域", "課程學習" }) { RowData row = new RowData(); row.ID = stu.ID; foreach (string field in e.ExportFields) { if (wizard.ExportableFields.Contains(field)) { switch (field) { case "領域": row.Add(field, item); break; case "分數評量": if (item == "學習領域") { row.Add("分數評量", "" + record.LearnDomainScore); } else if (item == "課程學習") { row.Add("分數評量", "" + record.CourseLearnScore); } break; } } } e.Items.Add(row); } } #endregion FISCA.LogAgent.ApplicationLog.Log("成績系統.匯入匯出", "匯出畢業成績", "總共匯出" + e.Items.Count + "筆畢業成績。"); }; }
public override void InitializeExport(SmartSchool.API.PlugIn.Export.ExportWizard wizard) { SmartSchool.API.PlugIn.VirtualCheckBox filterRepeat = new SmartSchool.API.PlugIn.VirtualCheckBox("自動略過重讀成績", true); wizard.Options.Add(filterRepeat); // 2018/8 穎驊註解,經過討論後, 先暫時將 ischool類別2 排名的概念拿掉,因為目前的結構 無法區隔類別1、類別2,待日後設計完整 //wizard.ExportableFields.AddRange("學年度", "學期", "成績年級", "學業", "體育", "國防通識", "健康與護理", "實習科目", "專業科目", "學業(原始)", "體育(原始)", "國防通識(原始)", "健康與護理(原始)", "實習科目(原始)", "專業科目(原始)", "德行", "學業成績班排名", "學業成績班排名母數", "學業成績科排名", "學業成績科排名母數", "學業成績校排名", "學業成績校排名母數", "學業成績排名類別1", "學業成績類1排名", "學業成績類1排名母數", "學業成績排名類別2", "學業成績類2排名", "學業成績類2排名母數"); wizard.ExportableFields.AddRange("學年度", "學期", "成績年級", "學業", "體育", "國防通識", "健康與護理", "實習科目", "專業科目", "學業(原始)", "體育(原始)", "國防通識(原始)", "健康與護理(原始)", "實習科目(原始)", "專業科目(原始)", "德行", "學業成績班排名", "學業成績班排名母數", "學業成績科排名", "學業成績科排名母數", "學業成績校排名", "學業成績校排名母數", "學業成績排名類別1", "學業成績類1排名", "學業成績類1排名母數"); AccessHelper _AccessHelper = new AccessHelper(); wizard.ExportPackage += delegate(object sender, SmartSchool.API.PlugIn.Export.ExportPackageEventArgs e) { List <StudentRecord> students = _AccessHelper.StudentHelper.GetStudents(e.List); Dictionary <string, List <StudSemsEntryRating> > StudSemsEntryRatingDict = new Dictionary <string, List <StudSemsEntryRating> >(); StudSemsEntryRatingDict = Utility.GetStudSemsEntryRatingByStudentID(e.List); _AccessHelper.StudentHelper.FillSemesterEntryScore(filterRepeat.Checked, students); foreach (StudentRecord stu in students) { Dictionary <int, Dictionary <int, List <SemesterEntryScoreInfo> > > semesterEntryScoreList = new Dictionary <int, Dictionary <int, List <SemesterEntryScoreInfo> > >(); foreach (SemesterEntryScoreInfo var in stu.SemesterEntryScoreList) { if (!semesterEntryScoreList.ContainsKey(var.SchoolYear)) { semesterEntryScoreList.Add(var.SchoolYear, new Dictionary <int, List <SemesterEntryScoreInfo> >()); } if (!semesterEntryScoreList[var.SchoolYear].ContainsKey(var.Semester)) { semesterEntryScoreList[var.SchoolYear].Add(var.Semester, new List <SemesterEntryScoreInfo>()); } semesterEntryScoreList[var.SchoolYear][var.Semester].Add(var); } foreach (int sy in semesterEntryScoreList.Keys) { foreach (int se in semesterEntryScoreList[sy].Keys) { RowData row = new RowData(); row.ID = stu.StudentID; row.Add("學年度", "" + sy); row.Add("學期", "" + se); foreach (SemesterEntryScoreInfo var in semesterEntryScoreList[sy][se]) { if (!row.ContainsKey("成績年級")) { row.Add("成績年級", "" + var.GradeYear); } if (e.ExportFields.Contains(var.Entry)) { row.Add(var.Entry, "" + var.Score); } } //處理學業成績排名資料 if (StudSemsEntryRatingDict.ContainsKey(stu.StudentID)) { foreach (var record in StudSemsEntryRatingDict[stu.StudentID]) { if (record.SchoolYear == "" + sy && record.Semester == "" + se) { row.Add("學業成績班排名", "" + record.ClassRank); row.Add("學業成績班排名母數", "" + record.ClassCount); row.Add("學業成績科排名", "" + record.DeptRank); row.Add("學業成績科排名母數", "" + record.DeptCount); row.Add("學業成績校排名", "" + record.YearRank); row.Add("學業成績校排名母數", "" + record.YearCount); row.Add("學業成績排名類別1", "" + record.Group1); row.Add("學業成績類1排名", "" + record.Group1Rank); row.Add("學業成績類1排名母數", "" + record.Group1Count); // 2018/8 穎驊註解,經過討論後, 先暫時將 ischool類別2 排名的概念拿掉,因為目前的結構 無法區隔類別1、類別2,待日後設計完整 //row.Add("學業成績排名類別2", "" + record.Group2); //row.Add("學業成績類2排名", "" + record.Group2Rank); //row.Add("學業成績類2排名母數", "" + record.Group2Count); } } } e.Items.Add(row); } } } }; }
public override void InitializeExport(SmartSchool.API.PlugIn.Export.ExportWizard wizard) { wizard.ExportableFields.AddRange("姓名", "學號", "班級", "座號", "必選修", "校部訂", "及格標準", "補考標準", "直接指定總成績", "備註", "科目代碼", "學生狀態"); wizard.ExportPackage += delegate(object sender, SmartSchool.API.PlugIn.Export.ExportPackageEventArgs e) { // 課程 ID List <string> courseIDList = e.List; if (courseIDList.Count > 0) { // 取得學生修課資訊 Dictionary <string, Dictionary <string, DataRow> > SCAttendDict = new Dictionary <string, Dictionary <string, DataRow> >(); // 取得學生修課資料 string qrySCAttend = "SELECT " + "student.name AS student_name" + ",student.student_number" + ",class.class_name" + ",student.seat_no" + ",CASE is_required WHEN '1' THEN '必修' WHEN '0' THEN '選修' ELSE '' END AS is_required" + ",CASE required_by WHEN 1 THEN '部訂' WHEN 2 THEN '校訂' ELSE '' END AS required_by" + ",ref_course_id AS course_id" + ",ref_student_id AS student_id" + ",passing_standard" + ",makeup_standard" + ",remark" + ",designate_final_score" + ",subject_code" + ",CASE student.status WHEN 1 THEN '一般' WHEN 2 THEN '延修' WHEN 4 THEN '休學' WHEN 8 THEN '輟學' WHEN 16 THEN '畢業或離校' WHEN 256 THEN '刪除' END AS status" + " FROM sc_attend INNER JOIN student" + " ON sc_attend.ref_student_id = student.id INNER JOIN class" + " ON student.ref_class_id = class.id WHERE ref_course_id IN(" + string.Join(",", courseIDList.ToArray()) + ")" + " ORDER BY class_name,seat_no,student_number;"; QueryHelper qh = new QueryHelper(); DataTable dtSCAttend = qh.Select(qrySCAttend); #region 產生 Row Data foreach (DataRow dr in dtSCAttend.Rows) { RowData row = new RowData(); row.ID = GetFieldString(dr, "course_id"); foreach (string field in e.ExportFields) { if (wizard.ExportableFields.Contains(field)) { switch (field) { case "姓名": row.Add(field, GetFieldString(dr, "student_name")); break; case "學號": row.Add(field, GetFieldString(dr, "student_number")); break; case "班級": row.Add(field, GetFieldString(dr, "class_name")); break; case "座號": row.Add(field, GetFieldString(dr, "seat_no")); break; case "必選修": row.Add(field, GetFieldString(dr, "is_required")); break; case "校部訂": row.Add(field, GetFieldString(dr, "required_by")); break; case "及格標準": row.Add(field, GetFieldString(dr, "passing_standard")); break; case "補考標準": row.Add(field, GetFieldString(dr, "makeup_standard")); break; case "直接指定總成績": row.Add(field, GetFieldString(dr, "designate_final_score")); break; case "備註": row.Add(field, GetFieldString(dr, "remark")); break; case "科目代碼": row.Add(field, GetFieldString(dr, "subject_code")); break; case "學生狀態": row.Add(field, GetFieldString(dr, "status")); break; } } } e.Items.Add(row); } #endregion ApplicationLog.Log("成績系統.匯入匯出", "匯出課程修課學生", "總共匯出" + e.Items.Count + "筆課程修課學生。"); } }; }
public override void InitializeExport(SmartSchool.API.PlugIn.Export.ExportWizard wizard) { SmartSchool.API.PlugIn.VirtualCheckBox filterRepeat = new SmartSchool.API.PlugIn.VirtualCheckBox("自動略過重讀成績", true); wizard.Options.Add(filterRepeat); //2017/6/16 穎驊新增,因應[02-02][06] 計算學期科目成績新增清空原成績模式 項目, 新增 "刪除"欄位,使使用者能匯入 刪除成績資料 wizard.ExportableFields.AddRange("領域", "學年度", "學期", "權數", "節數", "成績", "原始成績", "補考成績", "努力程度", "文字描述", "註記", "刪除"); wizard.ExportPackage += delegate(object sender, SmartSchool.API.PlugIn.Export.ExportPackageEventArgs e) { #region ExportPackage List <JHStudentRecord> students = JHStudent.SelectByIDs(e.List); Dictionary <string, List <JHSemesterScoreRecord> > semsDict = new Dictionary <string, List <JHSemesterScoreRecord> >(); foreach (JHSemesterScoreRecord record in JHSemesterScore.SelectByStudentIDs(e.List)) { if (!semsDict.ContainsKey(record.RefStudentID)) { semsDict.Add(record.RefStudentID, new List <JHSemesterScoreRecord>()); } semsDict[record.RefStudentID].Add(record); } foreach (JHStudentRecord stu in students) { if (!semsDict.ContainsKey(stu.ID)) { continue; } foreach (JHSemesterScoreRecord record in semsDict[stu.ID]) { foreach (K12.Data.DomainScore domain in record.Domains.Values) { RowData row = new RowData(); row.ID = stu.ID; foreach (string field in e.ExportFields) { if (wizard.ExportableFields.Contains(field)) { switch (field) { case "領域": row.Add(field, "" + domain.Domain); break; case "學年度": row.Add(field, "" + record.SchoolYear); break; case "學期": row.Add(field, "" + record.Semester); break; case "權數": row.Add(field, "" + domain.Credit); break; case "節數": row.Add(field, "" + domain.Period); break; case "成績": row.Add(field, "" + domain.Score); break; case "原始成績": row.Add(field, "" + domain.ScoreOrigin); break; case "補考成績": row.Add(field, "" + domain.ScoreMakeup); break; case "努力程度": row.Add(field, "" + domain.Effort); break; case "文字描述": row.Add(field, domain.Text); break; case "註記": row.Add(field, domain.Comment); break; case "刪除": row.Add(field, ""); break; } } } e.Items.Add(row); } } } #endregion FISCA.LogAgent.ApplicationLog.Log("成績系統.匯入匯出", "匯出學期領域成績", "總共匯出" + e.Items.Count + "筆學期領域成績。"); }; }
public override void InitializeExport(SmartSchool.API.PlugIn.Export.ExportWizard wizard) { wizard.ExportableFields.AddRange("學年度", "學期", "課程名稱", "分數評量", "努力程度", "文字描述"); wizard.ExportPackage += delegate(object sender, SmartSchool.API.PlugIn.Export.ExportPackageEventArgs e) { //學生資訊 List <Data.JHStudentRecord> students = Data.JHStudent.SelectByIDs(e.List); //學生修課資訊 Dictionary <string, List <Data.JHSCAttendRecord> > scattends = new Dictionary <string, List <JHSchool.Data.JHSCAttendRecord> >(); //學生修習的課程 Dictionary <string, Data.JHCourseRecord> courses = new Dictionary <string, JHSchool.Data.JHCourseRecord>(); #region 取得修課記錄 foreach (Data.JHSCAttendRecord record in Data.JHSCAttend.SelectByStudentIDAndCourseID(e.List, new string[] { })) { if (!scattends.ContainsKey(record.RefStudentID)) { scattends.Add(record.RefStudentID, new List <JHSchool.Data.JHSCAttendRecord>()); } scattends[record.RefStudentID].Add(record); if (!courses.ContainsKey(record.RefCourseID)) { courses.Add(record.RefCourseID, null); } } #endregion #region 取得課程資訊 foreach (Data.JHCourseRecord record in Data.JHCourse.SelectByIDs(new List <string>(courses.Keys))) { if (courses.ContainsKey(record.ID)) { courses[record.ID] = record; } } #endregion #region 產生 Row Data foreach (Data.JHStudentRecord stu in students) { foreach (Data.JHSCAttendRecord record in scattends[stu.ID]) { RowData row = new RowData(); row.ID = stu.ID; foreach (string field in e.ExportFields) { if (wizard.ExportableFields.Contains(field)) { switch (field) { case "學年度": row.Add(field, "" + courses[record.RefCourseID].SchoolYear); break; case "學期": row.Add(field, "" + courses[record.RefCourseID].Semester); break; case "課程名稱": row.Add(field, courses[record.RefCourseID].Name); break; case "分數評量": row.Add(field, "" + record.Score); break; case "努力程度": row.Add(field, "" + record.Effort); break; case "文字描述": row.Add(field, record.Text); break; } } } e.Items.Add(row); } } #endregion FISCA.LogAgent.ApplicationLog.Log("成績系統.匯入匯出", "匯出課程成績", "總共匯出" + e.Items.Count + "筆課程成績。"); }; }
public override void InitializeExport(SmartSchool.API.PlugIn.Export.ExportWizard wizard) { wizard.ExportableFields.AddRange("學生系統編號", "學號", "身分證號", "索引分類", "畢業學年度", "畢業班級", "座號", "姓名", "性別", "國籍", "出生地", "生日", "英文姓名", "戶籍電話", "聯絡電話", "手機", "其它電話1", "其它電話2", "其它電話3", "戶籍地址郵遞區號", "戶籍地址", "聯絡地址郵遞區號", "聯絡地址", "其它地址郵遞區號", "其它地址", "備註"); wizard.ExportPackage += delegate(object sender, SmartSchool.API.PlugIn.Export.ExportPackageEventArgs e) { #region 收集資料(DicMerit) Dictionary <string, GraduateUDT> DicGraduate = new Dictionary <string, GraduateUDT>(); AccessHelper _AccessHelper = new AccessHelper(); List <GraduateUDT> GraduateList = _AccessHelper.Select <GraduateUDT>(UDT_S.PopOneCondition("UID", e.List));//取得UDT清單 //ListDiscipline.Sort(SortDate); foreach (GraduateUDT Record in GraduateList) { if (!DicGraduate.ContainsKey(Record.UID)) { DicGraduate.Add(Record.UID, Record); } } #endregion StringBuilder sb = new StringBuilder(); sb.AppendLine("匯出學生索引基本資料:"); foreach (string each in DicGraduate.Keys) { GraduateUDT udt = DicGraduate[each]; sb.Append("班級「" + udt.ClassName + "」"); sb.Append("座號「" + (udt.SeatNo.HasValue ? udt.SeatNo.Value.ToString() : "") + "」"); sb.Append("學號「" + udt.StudentNumber + "」"); sb.AppendLine("姓名「" + udt.Name + "」"); RowData row = new RowData(); row.ID = each; foreach (string field in e.ExportFields) { if (wizard.ExportableFields.Contains(field)) { switch (field) { case "學生系統編號": row.Add(field, "" + udt.StudentID); break; case "學號": row.Add(field, "" + udt.StudentNumber); break; case "身分證號": row.Add(field, "" + udt.IDNumber); break; case "索引分類": row.Add(field, "" + udt.ArchiveNote); break; case "畢業學年度": row.Add(field, udt.GraduateSchoolYear.HasValue ? udt.GraduateSchoolYear.Value.ToString() : ""); break; case "畢業班級": row.Add(field, "" + udt.ClassName); break; case "座號": row.Add(field, udt.SeatNo.HasValue ? udt.SeatNo.Value.ToString() : ""); break; case "姓名": row.Add(field, "" + udt.Name); break; case "性別": row.Add(field, "" + udt.Gender); break; case "國籍": row.Add(field, "" + udt.Nationality); break; case "出生地": row.Add(field, "" + udt.BirthPlace); break; case "生日": row.Add(field, udt.Birthday.HasValue ? udt.Birthday.Value.ToShortDateString() : ""); break; case "英文姓名": row.Add(field, "" + udt.EnglishName); break; case "戶籍電話": row.Add(field, "" + udt.Permanent); break; case "聯絡電話": row.Add(field, "" + udt.Contact); break; case "手機": row.Add(field, "" + udt.Cell); break; case "其它電話1": row.Add(field, "" + udt.Phone1); break; case "其它電話2": row.Add(field, "" + udt.Phone2); break; case "其它電話3": row.Add(field, "" + udt.Phone3); break; case "戶籍地址郵遞區號": row.Add(field, "" + udt.PermanentZipCode); break; case "戶籍地址": row.Add(field, "" + udt.PermanentAddress); break; case "聯絡地址郵遞區號": row.Add(field, "" + udt.MailingZipCode); break; case "聯絡地址": row.Add(field, "" + udt.MailingAddress); break; case "其它地址郵遞區號": row.Add(field, "" + udt.OtherZipCode); break; case "其它地址": row.Add(field, "" + udt.OtherAddresses); break; //case "其它地址2": row.Add(field, "" + udt.OtherAddresses2); break; //case "其它地址3": row.Add(field, "" + udt.OtherAddresses3); break; case "備註": row.Add(field, "" + udt.Remarks); break; } } } e.Items.Add(row); } ApplicationLog.Log("畢業生檔案檢索.匯出索引基本資料", "匯出", sb.ToString()); }; }
public override void InitializeExport(SmartSchool.API.PlugIn.Export.ExportWizard wizard) { // 2018.09.05 [ischoolKingdom] Vicky依據 [02-01][03] 匯入評量成績 項目,移除文字描述。 // 2018.09.05 [ischoolKingdom] Vicky依據 [12-01][01] 多學期成績排名 項目,增加 "領域", "科目", "節數(權重)", "學分" 。 // 2018.09.07 [ischoolKingdom] Vicky依據新需求調整項目位置。 wizard.ExportableFields.AddRange("學年度", "學期", "課程名稱", "領域", "科目", "節數(權重)", "學分", "評量名稱", "分數評量", "努力程度"); wizard.ExportPackage += delegate(object sender, SmartSchool.API.PlugIn.Export.ExportPackageEventArgs e) { //學生資訊 List <JHStudentRecord> students = JHStudent.SelectByIDs(e.List); //學生修課資訊 Dictionary <string, List <JHSCAttendRecord> > scattends = new Dictionary <string, List <JHSchool.Data.JHSCAttendRecord> >(); //學生修習的課程 Dictionary <string, JHCourseRecord> courses = new Dictionary <string, JHSchool.Data.JHCourseRecord>(); //評量成績 key: SCAttendID Dictionary <string, List <KH.JHSCETakeRecord> > sces = new Dictionary <string, List <KH.JHSCETakeRecord> >(); //試別資訊 Dictionary <string, JHExamRecord> exams = new Dictionary <string, JHSchool.Data.JHExamRecord>(); #region 取得修課記錄 foreach (JHSCAttendRecord record in JHSCAttend.SelectByStudentIDAndCourseID(e.List, new string[] { })) { if (!scattends.ContainsKey(record.RefStudentID)) { scattends.Add(record.RefStudentID, new List <JHSchool.Data.JHSCAttendRecord>()); } scattends[record.RefStudentID].Add(record); if (!courses.ContainsKey(record.RefCourseID)) { courses.Add(record.RefCourseID, null); } } #endregion #region 取得課程資訊 foreach (JHCourseRecord record in JHCourse.SelectByIDs(new List <string>(courses.Keys))) { if (courses.ContainsKey(record.ID)) { courses[record.ID] = record; } } #endregion #region 取得試別資訊 foreach (JHExamRecord exam in JHExam.SelectAll()) { if (!exams.ContainsKey(exam.ID)) { exams.Add(exam.ID, exam); } } #endregion #region 取得評量成績 foreach (KH.JHSCETakeRecord record in JHSCETake.SelectByStudentAndCourse(new List <string>(scattends.Keys), new List <string>(courses.Keys)).AsKHJHSCETakeRecords()) { if (!sces.ContainsKey(record.RefSCAttendID)) { sces.Add(record.RefSCAttendID, new List <KH.JHSCETakeRecord>()); } sces[record.RefSCAttendID].Add(record); } #endregion #region 產生 Row Data foreach (JHStudentRecord stu in students) { if (!scattends.ContainsKey(stu.ID)) { //學生沒有任何修課記錄。 continue; } foreach (JHSCAttendRecord record in scattends[stu.ID]) { if (!sces.ContainsKey(record.ID)) { continue; } sces[record.ID].Sort(delegate(KH.JHSCETakeRecord x, KH.JHSCETakeRecord y) { return(x.RefExamID.CompareTo(y.RefExamID)); }); foreach (KH.JHSCETakeRecord sce in sces[record.ID]) { string examName = sce.RefExamID; if (exams.ContainsKey(sce.RefExamID)) { examName = exams[sce.RefExamID].Name; } RowData row = new RowData(); row.ID = stu.ID; foreach (string field in e.ExportFields) { if (wizard.ExportableFields.Contains(field)) { switch (field) { case "學年度": row.Add(field, "" + courses[record.RefCourseID].SchoolYear); break; case "學期": row.Add(field, "" + courses[record.RefCourseID].Semester); break; case "課程名稱": row.Add(field, courses[record.RefCourseID].Name); break; // 2018.09.05 [ischoolKingdom] Vicky依據 [02-01][03] 匯入評量成績 項目,移除文字描述。 // 2018.09.05 [ischoolKingdom] Vicky依據 [12-01][01] 多學期成績排名 項目,增加 "領域", "科目", "節數(權重)", "學分" 項目資料。 //case "文字描述": row.Add(field, sce.Text); break; case "領域": row.Add(field, courses[record.RefCourseID].Domain); break; case "科目": row.Add(field, courses[record.RefCourseID].Subject); break; case "節數(權重)": row.Add(field, "" + courses[record.RefCourseID].Period); break; case "學分": row.Add(field, "" + courses[record.RefCourseID].Credit); break; case "評量名稱": row.Add(field, examName); break; case "分數評量": row.Add(field, "" + sce.Score); break; case "努力程度": row.Add(field, "" + sce.Effort); break; } } } e.Items.Add(row); } //2016/7/26 穎驊新增,因應高雄國中希望能加入匯出匯入"平時成績"的功能,因此在原本的匯出評量成績報表Excel中增加平時成績的項目, // 基本邏輯跟 SCEtake 的定期評量一樣,另外意外發現平時成績、努力程度、Text在 JHSCAttendRecord裏頭就有了,不必在另外下SQL 找UDT 在用XElement 去解析Xml 檔填成績 string examName2 = "平時評量"; RowData row2 = new RowData(); row2.ID = stu.ID; foreach (string field in e.ExportFields) { if (wizard.ExportableFields.Contains(field)) { switch (field) { case "學年度": row2.Add(field, "" + courses[record.RefCourseID].SchoolYear); break; case "學期": row2.Add(field, "" + courses[record.RefCourseID].Semester); break; case "課程名稱": row2.Add(field, courses[record.RefCourseID].Name); break; // 2018.09.05 [ischoolKingdom] Vicky依據 [02-01][03] 匯入評量成績 項目,移除文字描述。 // 2018.09.05 [ischoolKingdom] Vicky依據 [12-01][01] 多學期成績排名 項目,增加 "領域", "科目", "節數(權重)", "學分" 項目資料。 // case "文字描述": row2.Add(field, record.Text); break; case "領域": row2.Add(field, courses[record.RefCourseID].Domain); break; case "科目": row2.Add(field, courses[record.RefCourseID].Subject); break; case "節數(權重)": row2.Add(field, "" + courses[record.RefCourseID].Period); break; case "學分": row2.Add(field, "" + courses[record.RefCourseID].Credit); break; case "評量名稱": row2.Add(field, examName2); break; case "分數評量": row2.Add(field, "" + record.OrdinarilyScore); break; case "努力程度": row2.Add(field, "" + record.OrdinarilyEffort); break; } } } e.Items.Add(row2); } } #endregion FISCA.LogAgent.ApplicationLog.Log("成績系統.匯入匯出", "匯出評量成績", "總共匯出" + e.Items.Count + "筆評量成績。"); }; }
public override void InitializeExport(SmartSchool.API.PlugIn.Export.ExportWizard wizard) { SmartSchool.API.PlugIn.VirtualCheckBox filterRepeat = new SmartSchool.API.PlugIn.VirtualCheckBox("自動略過重讀成績", true); wizard.Options.Add(filterRepeat); wizard.ExportableFields.AddRange( "科目" , "科目級別" , "學年度" , "學期" , "英文名稱" , "學分數" , "分項類別" , "成績年級" , "必選修" , "校部訂" , "科目成績" , "原始成績" , "補考成績" , "重修成績" , "手動調整成績" , "學年調整成績" , "取得學分" , "不計學分" , "不需評分" , "註記" , "畢業採計-學分數" , "畢業採計-分項類別" , "畢業採計-必選修" , "畢業採計-校部訂" , "畢業採計-不計學分" , "畢業採計-說明" , "是否補修成績" , "補修學年度" , "補修學期" , "重修學年度" , "重修學期" , "修課及格標準" , "修課補考標準" , "修課備註" , "修課直接指定總成績" , "免修" , "抵免" ); filterRepeat.CheckedChanged += delegate { if (filterRepeat.Checked) { foreach (var item in new string[] { "畢業採計-學分數" , "畢業採計-分項類別" , "畢業採計-必選修" , "畢業採計-校部訂" , "畢業採計-不計學分" , "畢業採計-說明" } ) { if (!wizard.ExportableFields.Contains(item)) { wizard.ExportableFields.Add(item); } } } else { foreach (var item in new string[] { "畢業採計-學分數" , "畢業採計-分項類別" , "畢業採計-必選修" , "畢業採計-校部訂" , "畢業採計-不計學分" , "畢業採計-說明" } ) { if (wizard.ExportableFields.Contains(item)) { wizard.ExportableFields.Remove(item); } } } }; AccessHelper _AccessHelper = new AccessHelper(); wizard.ExportPackage += delegate(object sender, SmartSchool.API.PlugIn.Export.ExportPackageEventArgs e) { List <StudentRecord> students = _AccessHelper.StudentHelper.GetStudents(e.List); if (filterRepeat.Checked) { var gCheck = false; foreach (var item in new string[] { "畢業採計-學分數" , "畢業採計-分項類別" , "畢業採計-必選修" , "畢業採計-校部訂" , "畢業採計-不計學分" , "畢業採計-說明" } ) { if (e.ExportFields.Contains(item)) { gCheck = true; break; } } if (gCheck) { new WearyDogComputer().FillStudentGradCheck(_AccessHelper, students); } //_AccessHelper.StudentHelper.FillSemesterSubjectScore(filterRepeat.Checked, students); else { _AccessHelper.StudentHelper.FillSemesterSubjectScore(filterRepeat.Checked, students); } } else { _AccessHelper.StudentHelper.FillSemesterSubjectScore(false, students); } //if (e.ExportFields.Contains("計算規則-及格標準")) // _AccessHelper.StudentHelper.FillField("及格標準", students); //if (e.ExportFields.Contains("計算規則-補考標準")) // _AccessHelper.StudentHelper.FillField("補考標準", students); //// 取得學生課程代碼相關對照 //CourseCodeTransfer cct = new CourseCodeTransfer(); //// 取得學生課程代碼 //Dictionary<string, StudentCourseCodeInfo> studCodeInfoDict = cct.GetStundetCourseCodeDict(e.List); string subjectCode = ""; foreach (StudentRecord stu in students) { foreach (SemesterSubjectScoreInfo var in stu.SemesterSubjectScoreList) { subjectCode = ""; //if (studCodeInfoDict.ContainsKey(stu.StudentID)) //{ // StudentCourseCodeInfo item = studCodeInfoDict[stu.StudentID]; // string req = var.Require ? "必修" : "選修"; // subjectCode = item.GetCourseCode(var.Subject, var.Detail.GetAttribute("修課校部訂"), req); //} RowData row = new RowData(); row.ID = stu.StudentID; foreach (string field in e.ExportFields) { if (wizard.ExportableFields.Contains(field)) { switch (field) { case "科目": row.Add(field, var.Subject); break; case "科目級別": row.Add(field, var.Level); break; case "學年度": row.Add(field, "" + var.SchoolYear); break; case "學期": row.Add(field, "" + var.Semester); break; case "英文名稱": row.Add(field, var.Detail.GetAttribute("英文名稱")); break; case "學分數": row.Add(field, "" + var.CreditDec()); break; case "分項類別": row.Add(field, var.Detail.GetAttribute("開課分項類別")); break; case "成績年級": row.Add(field, "" + var.GradeYear); break; case "必選修": row.Add(field, var.Require ? "必修" : "選修"); break; case "校部訂": row.Add(field, var.Detail.GetAttribute("修課校部訂")); break; case "科目成績": row.Add(field, "" + var.Score); break; case "原始成績": row.Add(field, var.Detail.GetAttribute("原始成績")); break; case "補考成績": row.Add(field, var.Detail.GetAttribute("補考成績")); break; case "重修成績": row.Add(field, var.Detail.GetAttribute("重修成績")); break; case "手動調整成績": row.Add(field, var.Detail.GetAttribute("擇優採計成績")); break; case "學年調整成績": row.Add(field, var.Detail.GetAttribute("學年調整成績")); break; case "取得學分": row.Add(field, var.Pass ? "是" : "否"); break; case "不計學分": row.Add(field, var.Detail.GetAttribute("不計學分") == "是" ? "是" : ""); break; case "不需評分": row.Add(field, var.Detail.GetAttribute("不需評分") == "是" ? "是" : ""); break; case "註記": row.Add(field, var.Detail.HasAttribute("註記") ? var.Detail.GetAttribute("註記") : ""); break; //case "計算規則-及格標準": // if (stu.Fields.ContainsKey("及格標準") && stu.Fields["及格標準"] is Dictionary<int, decimal>) // { // Dictionary<int, decimal> applyLimit = (Dictionary<int, decimal>)stu.Fields["及格標準"]; // if (applyLimit.ContainsKey(var.GradeYear)) // { // row.Add(field, "" + applyLimit[var.GradeYear]); // } // else // { // row.Add(field, "無法判斷"); // } // } // else // { // row.Add(field, "沒有成績計算規則"); // } // break; //case "計算規則-補考標準": // if (stu.Fields.ContainsKey("補考標準") && stu.Fields["補考標準"] is Dictionary<int, decimal>) // { // Dictionary<int, decimal> reexamLimit = (Dictionary<int, decimal>)stu.Fields["補考標準"]; // if (reexamLimit.ContainsKey(var.GradeYear)) // { // row.Add(field, "" + reexamLimit[var.GradeYear]); // } // else // { // row.Add(field, "無法判斷"); // } // } // else // { // row.Add(field, "沒有成績計算規則"); // } // break; case "畢業採計-學分數": case "畢業採計-分項類別": case "畢業採計-必選修": case "畢業採計-校部訂": case "畢業採計-不計學分": if (var.Detail.GetAttribute(field) == "") { row.Add(field, "--"); } else { row.Add(field, var.Detail.GetAttribute(field)); } break; case "畢業採計-說明": row.Add(field, var.Detail.GetAttribute(field)); break; case "是否補修成績": row.Add(field, var.Detail.GetAttribute("是否補修成績") == "是" ? "是" : ""); break; case "重修學年度": row.Add(field, var.Detail.GetAttribute("重修學年度")); break; case "重修學期": row.Add(field, var.Detail.GetAttribute("重修學期")); break; case "補修學年度": row.Add(field, var.Detail.GetAttribute("補修學年度")); break; case "補修學期": row.Add(field, var.Detail.GetAttribute("補修學期")); break; case "修課及格標準": row.Add(field, var.Detail.GetAttribute("修課及格標準")); break; case "修課補考標準": row.Add(field, var.Detail.GetAttribute("修課補考標準")); break; // case "修課科目代碼": row.Add(field, var.Detail.GetAttribute("修課科目代碼")); break; case "修課備註": row.Add(field, var.Detail.GetAttribute("修課備註")); break; case "修課直接指定總成績": row.Add(field, var.Detail.GetAttribute("修課直接指定總成績")); break; //case "應修學期": row.Add(field, var.Detail.GetAttribute("應修學期")); break; case "免修": row.Add(field, var.Detail.GetAttribute("免修") == "是" ? "是" : ""); break; case "抵免": row.Add(field, var.Detail.GetAttribute("抵免") == "是" ? "是" : ""); break; } } } e.Items.Add(row); } } }; }
//覆寫 public override void InitializeExport(SmartSchool.API.PlugIn.Export.ExportWizard wizard) { List <string> FieldList = new List <string>(); FieldList.Add("科目"); //聯課活動 FieldList.Add("科目級別"); FieldList.Add("學年度"); //目前欄位 FieldList.Add("學期"); //目前欄位 FieldList.Add("學分數"); FieldList.Add("必選修"); FieldList.Add("分項類別"); FieldList.Add("成績年級"); FieldList.Add("校部訂"); FieldList.Add("科目成績"); //目前欄位 FieldList.Add("原始成績"); //目前欄位 FieldList.Add("取得學分"); FieldList.Add("社團名稱"); //目前欄位 FieldList.Add("社團成績"); //目前欄位 FieldList.Add("幹部記錄"); //目前欄位 wizard.ExportableFields.AddRange(FieldList); wizard.ExportPackage += (sender, e) => { //取得學生清單 AccessHelper helper = new AccessHelper(); string strCondition = string.Empty; foreach (string ID in e.List) { strCondition += strCondition == string.Empty ? "'" + ID + "'" : ",'" + ID + "'"; } List <ResultScoreRecord> records = helper.Select <ResultScoreRecord>("ref_student_id in (" + strCondition + ")"); //取得學生學期歷程 List <SemesterHistoryRecord> SemesterList = SemesterHistory.SelectByStudentIDs(e.List); //學生ID : SemesterHistoryRecord Dictionary <string, SemesterHistoryRecord> SemesterDic = new Dictionary <string, SemesterHistoryRecord>(); foreach (SemesterHistoryRecord each in SemesterList) { if (!SemesterDic.ContainsKey(each.RefStudentID)) { SemesterDic.Add(each.RefStudentID, each); } } //records.Sort(); for (int i = 0; i < records.Count; i++) { RowData row = new RowData(); row.ID = records[i].RefStudentID; foreach (string field in e.ExportFields) { if (wizard.ExportableFields.Contains(field)) { string 取得學分 = "否"; string 科目級別 = ""; string 成績年級 = ""; if (records[i].ResultScore.HasValue) { if (records[i].ResultScore.Value >= 60) { 取得學分 = "是"; } } if (SemesterDic.ContainsKey(records[i].RefStudentID)) { SemesterHistoryRecord shr = SemesterDic[records[i].RefStudentID]; foreach (SemesterHistoryItem each in shr.SemesterHistoryItems) { if (records[i].SchoolYear == each.SchoolYear && records[i].Semester == each.Semester) { 科目級別 = GetSchoolYearByGradeYear(each); 成績年級 = each.GradeYear.ToString(); } } } switch (field) { case "科目": row.Add(field, "聯課活動"); break; //需要依據學期歷程進行判斷 case "科目級別": row.Add(field, 科目級別); break; case "學年度": row.Add(field, "" + records[i].SchoolYear); break; case "學期": row.Add(field, "" + records[i].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, records[i].ResultScore.HasValue ? records[i].ResultScore.Value.ToString() : ""); break; case "原始成績": row.Add(field, records[i].ResultScore.HasValue ? records[i].ResultScore.Value.ToString() : ""); break; case "取得學分": row.Add(field, 取得學分); break; case "社團名稱": row.Add(field, records[i].ClubName); break; case "社團成績": row.Add(field, records[i].ResultScore.HasValue ? records[i].ResultScore.Value.ToString() : ""); break; case "幹部記錄": row.Add(field, records[i].CadreName); break; } } } e.Items.Add(row); } }; }
public override void InitializeExport(SmartSchool.API.PlugIn.Export.ExportWizard wizard) { wizard.ExportableFields.AddRange("姓名", "學號", "班級", "座號", "必選修", "校部訂", "學生狀態"); wizard.ExportPackage += delegate(object sender, SmartSchool.API.PlugIn.Export.ExportPackageEventArgs e) { //課程資訊 List <SHCourseRecord> courses = SHCourse.SelectByIDs(e.List); //學生修課資訊 Dictionary <string, List <SHSCAttendRecord> > scattends = new Dictionary <string, List <SHSCAttendRecord> >(); //課程修課學生 Dictionary <string, SHStudentRecord> students = new Dictionary <string, SHStudentRecord>(); #region 取得修課記錄 foreach (SHSCAttendRecord record in SHSCAttend.SelectByStudentIDAndCourseID(new string[] { }, e.List)) { if (!scattends.ContainsKey(record.RefCourseID)) { scattends.Add(record.RefCourseID, new List <SHSCAttendRecord>()); } scattends[record.RefCourseID].Add(record); if (!students.ContainsKey(record.RefStudentID)) { students.Add(record.RefStudentID, null); } } #endregion #region 取得學生資訊 SHStudent.RemoveAll(); foreach (SHStudentRecord record in SHStudent.SelectByIDs(new List <string>(students.Keys))) { if (students.ContainsKey(record.ID)) { students[record.ID] = record; } } #endregion #region 產生 Row Data foreach (SHCourseRecord course in courses) { //Debug if (!scattends.ContainsKey(course.ID)) { continue; } foreach (SHSCAttendRecord record in scattends[course.ID]) { RowData row = new RowData(); row.ID = course.ID; foreach (string field in e.ExportFields) { if (wizard.ExportableFields.Contains(field)) { switch (field) { case "姓名": row.Add(field, students[record.RefStudentID].Name); break; case "學號": row.Add(field, students[record.RefStudentID].StudentNumber); break; case "班級": row.Add(field, (students[record.RefStudentID].Class != null ? students[record.RefStudentID].Class.Name : "")); break; case "座號": row.Add(field, "" + students[record.RefStudentID].SeatNo); break; case "必選修": if (record.Required) { row.Add(field, "" + "必修"); } else { row.Add(field, "" + "選修"); } break; case "校部訂": row.Add(field, "" + record.RequiredBy); break; case "學生狀態": row.Add(field, "" + students[record.RefStudentID].Status.ToString()); break; } } } e.Items.Add(row); } } #endregion ApplicationLog.Log("成績系統.匯入匯出", "匯出課程修課學生", "總共匯出" + e.Items.Count + "筆課程修課學生。"); }; }
public override void InitializeExport(SmartSchool.API.PlugIn.Export.ExportWizard wizard) { wizard.ExportableFields.AddRange("身分證號", "排名", "總分", "成績內容", "分發校系代碼", "分發學校", "分發科系", "確定分發結果", "組別", "梯次", "備註"); wizard.PackageLimit = 200; wizard.ExportPackage += delegate(object sender, SmartSchool.API.PlugIn.Export.ExportPackageEventArgs e) { FISCA.UDT.Condition.InCondition condition = new FISCA.UDT.Condition.InCondition(); condition.Field = "RefStudentID"; condition.Values.AddRange(e.List); var datas = _AccessHelper.Select <推甄學生資料>(condition); foreach (var refStudentID in e.List) { SmartSchool.API.PlugIn.RowData rowData = new SmartSchool.API.PlugIn.RowData(); rowData.ID = refStudentID; #region 寫入預設值 foreach (var field in e.ExportFields) { switch (field) { case "排名": rowData.Add(field, ""); break; case "總分": rowData.Add(field, ""); break; case "身分證號": rowData.Add(field, ""); break; case "成績內容": rowData.Add(field, ""); break; case "分發校系代碼": rowData.Add(field, ""); break; case "分發學校": rowData.Add(field, ""); break; case "分發科系": rowData.Add(field, ""); break; case "確定分發結果": rowData.Add(field, ""); break; case "組別": rowData.Add(field, ""); break; case "梯次": rowData.Add(field, ""); break; case "備註": rowData.Add(field, ""); break; } } #endregion foreach (var item in datas) { if (item.StudentRecord.ID == refStudentID) { #region 填入真值 foreach (var field in e.ExportFields) { switch (field) { case "排名": rowData[field] = "" + item.排名; break; case "總分": rowData[field] = "" + item.總分; break; case "身分證號": rowData[field] = item.StudentRecord.IDNumber; break; case "成績內容": rowData[field] = item.成績內容; break; case "分發校系代碼": rowData[field] = (item.分發結果 == null ? "" : item.分發結果.代碼); break; case "分發學校": rowData[field] = (item.分發結果 == null ? "" : item.分發結果.校名); break; case "分發科系": rowData[field] = (item.分發結果 == null ? "" : item.分發結果.系名); break; case "確定分發結果": rowData[field] = (item.確定分發結果 ? "是" : "否"); break; case "組別": rowData[field] = "" + item.組別; break; case "梯次": rowData[field] = "" + item.梯次; break; case "備註": rowData[field] = item.備註; break; } } #endregion break; } } e.Items.Add(rowData); } }; }
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 <ClubCadresObj> _startList = new List <ClubCadresObj>(); List <CLUBRecord> clubList = helper.Select <CLUBRecord>(SelectCLUBIDList); CLUBDic.Clear(); foreach (CLUBRecord each in clubList) { if (!CLUBDic.ContainsKey(each.UID)) { CLUBDic.Add(each.UID, each); } #region 處理學生擔任之幹部 if (!string.IsNullOrEmpty(each.President)) { ClubCadresObj obj = new ClubCadresObj(); obj._Club = each; obj.ref_student_id = each.President; obj.CadreName = "社長"; _startList.Add(obj); } if (!string.IsNullOrEmpty(each.VicePresident)) { ClubCadresObj obj = new ClubCadresObj(); obj._Club = each; obj.ref_student_id = each.VicePresident; obj.CadreName = "副社長"; _startList.Add(obj); } #endregion } //取得社團學生的幹部記錄 List <CadresRecord> newList = helper.Select <CadresRecord>(string.Format("ref_club_id in ('{0}')", string.Join("','", SelectCLUBIDList))); foreach (CadresRecord each in newList) { if (CLUBDic.ContainsKey(each.RefClubID)) { ClubCadresObj obj = new ClubCadresObj(); obj._Club = CLUBDic[each.RefClubID]; obj.CadreName = each.CadreName; obj.ref_student_id = each.RefStudentID; _startList.Add(obj); } } List <string> StudentIDList = new List <string>(); foreach (ClubCadresObj rsr in _startList) { if (!StudentIDList.Contains(rsr.ref_student_id)) { StudentIDList.Add(rsr.ref_student_id); } } #endregion #region 取得學生基本資料 StudentDic.Clear(); List <StudentRecord> StudentRecordList = Student.SelectByIDs(StudentIDList); foreach (StudentRecord each in StudentRecordList) { if (!StudentDic.ContainsKey(each.ID)) { StudentDic.Add(each.ID, each); } } foreach (ClubCadresObj Result in _startList) { if (StudentDic.ContainsKey(Result.ref_student_id)) { Result._Student = StudentDic[Result.ref_student_id]; } } #endregion _startList.Sort(SortResult); foreach (ClubCadresObj Result in _startList) { StudentRecord sr = Result._Student; if (sr == null) { continue; } //社團代碼 string CLUBCode = Result._Club.ClubNumber; RowData row = new RowData(); row.ID = Result.ref_student_id; foreach (string field in e.ExportFields) { #region row if (wizard.ExportableFields.Contains(field)) { switch (field) { case "學年度": row.Add(field, "" + Result._Club.SchoolYear); break; case "學期": row.Add(field, "" + Result._Club.Semester); break; case "社團名稱": row.Add(field, "" + Result._Club.ClubName); break; case "代碼": row.Add(field, CLUBCode); break; case "班級": row.Add(field, string.IsNullOrEmpty(sr.RefClassID) ? "" : sr.Class.Name); break; case "座號": row.Add(field, sr.SeatNo.HasValue ? sr.SeatNo.Value.ToString() : ""); break; case "學號": row.Add(field, sr.StudentNumber); break; case "姓名": row.Add(field, sr.Name); break; case "幹部名稱": row.Add(field, Result.CadreName); break; } } #endregion } e.Items.Add(row); } }; }
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); } } }; }
public override void InitializeExport(SmartSchool.API.PlugIn.Export.ExportWizard wizard) { wizard.ExportableFields.AddRange("學年度", "學期", "課程名稱", "評量名稱", "定期分數", "平時分數", "文字描述"); wizard.ExportPackage += delegate(object sender, SmartSchool.API.PlugIn.Export.ExportPackageEventArgs e) { //學生資訊 List <JHStudentRecord> students = JHStudent.SelectByIDs(e.List); //學生修課資訊 Dictionary <string, List <JHSCAttendRecord> > scattends = new Dictionary <string, List <JHSchool.Data.JHSCAttendRecord> >(); //學生修習的課程 Dictionary <string, JHCourseRecord> courses = new Dictionary <string, JHSchool.Data.JHCourseRecord>(); //評量成績 key: SCAttendID Dictionary <string, List <HC.JHSCETakeRecord> > sces = new Dictionary <string, List <HC.JHSCETakeRecord> >(); //試別資訊 Dictionary <string, JHExamRecord> exams = new Dictionary <string, JHSchool.Data.JHExamRecord>(); #region 取得修課記錄 foreach (JHSCAttendRecord record in JHSCAttend.SelectByStudentIDAndCourseID(e.List, new string[] { })) { if (!scattends.ContainsKey(record.RefStudentID)) { scattends.Add(record.RefStudentID, new List <JHSchool.Data.JHSCAttendRecord>()); } scattends[record.RefStudentID].Add(record); if (!courses.ContainsKey(record.RefCourseID)) { courses.Add(record.RefCourseID, null); } } #endregion #region 取得課程資訊 foreach (JHCourseRecord record in JHCourse.SelectByIDs(new List <string>(courses.Keys))) { if (courses.ContainsKey(record.ID)) { courses[record.ID] = record; } } #endregion #region 取得試別資訊 foreach (JHExamRecord exam in JHExam.SelectAll()) { if (!exams.ContainsKey(exam.ID)) { exams.Add(exam.ID, exam); } } #endregion #region 取得評量成績 foreach (HC.JHSCETakeRecord record in JHSCETake.SelectByStudentAndCourse(new List <string>(scattends.Keys), new List <string>(courses.Keys)).AsHCJHSCETakeRecords()) { if (!sces.ContainsKey(record.RefSCAttendID)) { sces.Add(record.RefSCAttendID, new List <HC.JHSCETakeRecord>()); } sces[record.RefSCAttendID].Add(record); } #endregion #region 產生 Row Data foreach (JHStudentRecord stu in students) { if (!scattends.ContainsKey(stu.ID)) { continue; } foreach (JHSCAttendRecord record in scattends[stu.ID]) { if (!sces.ContainsKey(record.ID)) { continue; } sces[record.ID].Sort(delegate(HC.JHSCETakeRecord x, HC.JHSCETakeRecord y) { return(x.RefExamID.CompareTo(y.RefExamID)); }); foreach (HC.JHSCETakeRecord sce in sces[record.ID]) { string examName = sce.RefExamID; if (exams.ContainsKey(sce.RefExamID)) { examName = exams[sce.RefExamID].Name; } RowData row = new RowData(); row.ID = stu.ID; foreach (string field in e.ExportFields) { if (wizard.ExportableFields.Contains(field)) { switch (field) { case "學年度": row.Add(field, "" + courses[record.RefCourseID].SchoolYear); break; case "學期": row.Add(field, "" + courses[record.RefCourseID].Semester); break; case "課程名稱": row.Add(field, courses[record.RefCourseID].Name); break; case "評量名稱": row.Add(field, examName); break; case "定期分數": row.Add(field, "" + sce.Score); break; case "平時分數": row.Add(field, "" + sce.AssignmentScore); break; case "文字描述": row.Add(field, sce.Text); break; } } } e.Items.Add(row); } } } #endregion FISCA.LogAgent.ApplicationLog.Log("成績系統.匯入匯出", "匯出評量成績", "總共匯出" + e.Items.Count + "筆評量成績。"); }; }
//覆寫 public override void InitializeExport(SmartSchool.API.PlugIn.Export.ExportWizard wizard) { #region 志願數 int 學生選填志願數 = GetVolunteerData.GetVolumnteerCount(); StudentDic = new Dictionary <string, StudentRecord>(); #endregion //Dictionary<string, int> IndexDic = new Dictionary<string, int>(); //int j = 1; List <string> FieldList = new List <string>(); FieldList.Add("學年度"); //目前欄位 FieldList.Add("學期"); //目前欄位 for (int x = 1; x <= 學生選填志願數; x++) { FieldList.Add(string.Format("志願{0}", x)); //目前欄位 //IndexDic.Add(string.Format("志願{0}", x), j); //j++; } List <CLUBRecord> ClubList = tool._A.Select <CLUBRecord>(); Dictionary <string, CLUBRecord> CLUBDic = new Dictionary <string, CLUBRecord>(); foreach (CLUBRecord each in ClubList) { if (!CLUBDic.ContainsKey(each.UID)) { CLUBDic.Add(each.UID, each); } } //取得所選學生之社團志願序(學年度/學期/學生 為單位) wizard.ExportableFields.AddRange(FieldList); wizard.ExportPackage += (sender, e) => { List <VolunteerRecord> VolUnDic = GetVolunteerData.GetStudentVolunteerDic(e.List); //取得學生清單 List <StudentRecord> StudentList = Student.SelectByIDs(e.List); StudentList = SortClassIndex.K12Data_StudentRecord(StudentList); foreach (StudentRecord each in StudentList) { if (!StudentDic.ContainsKey(each.ID)) { StudentDic.Add(each.ID, each); } } VolUnDic.Sort(SortByStudent); for (int i = 0; i < VolUnDic.Count; i++) { #region MyRegion VolunteerRecord vr = VolUnDic[i]; RowData row = new RowData(); row.ID = VolUnDic[i].RefStudentID; if (!string.IsNullOrEmpty(vr.Content)) { Dictionary <string, string> dic = new Dictionary <string, string>(); DSXmlHelper dsx = new DSXmlHelper(); dsx.Load(vr.Content); foreach (XmlElement each in dsx.BaseElement.SelectNodes("Club")) { string index = each.GetAttribute("Index"); string clubID = each.GetAttribute("Ref_Club_ID"); if (CLUBDic.ContainsKey(clubID)) { if (!dic.ContainsKey("志願" + index)) { dic.Add("志願" + index, CLUBDic[clubID].ClubName); } } } foreach (string field in e.ExportFields) { if (wizard.ExportableFields.Contains(field)) { switch (field) { case "學年度": row.Add(field, "" + VolUnDic[i].SchoolYear); break; case "學期": row.Add(field, "" + VolUnDic[i].Semester); break; } if (dic.ContainsKey(field)) { row.Add(field, dic[field]); } } } } e.Items.Add(row); #endregion } }; }
public override void InitializeExport(SmartSchool.API.PlugIn.Export.ExportWizard wizard) { wizard.ExportableFields.AddRange(_ExportList); wizard.ExportPackage += delegate(object sender, SmartSchool.API.PlugIn.Export.ExportPackageEventArgs e) { // 取得異動代碼 XElement _UpdateCode = DAL.DALTransfer.GetUpdateCodeList(); List <string> UpdateCodeList = (from elm in _UpdateCode.Elements("異動") where elm.Element("分類").Value == "新生異動" select elm.Element("代號").Value).ToList(); // 取得學生新生異動 List <SHUpdateRecordRecord> updateRecList = (from data in SHUpdateRecord.SelectByStudentIDs(e.List) where UpdateCodeList.Contains(data.UpdateCode) select data).ToList(); Dictionary <string, string> StudentStatusDict = DAL.FDQuery.GetAllStudentStatus1Dict(); foreach (SHUpdateRecordRecord rec in updateRecList) { RowData row = new RowData(); row.ID = rec.StudentID; foreach (string field in e.ExportFields) { if (wizard.ExportableFields.Contains(field)) { switch (field) { case "學年度": if (rec.SchoolYear.HasValue) { row.Add(field, rec.SchoolYear.Value.ToString()); } break; case "學期": if (rec.Semester.HasValue) { row.Add(field, rec.Semester.Value.ToString()); } break; case "年級": row.Add(field, rec.GradeYear); break; case "異動代碼": row.Add(field, rec.UpdateCode); break; case "原因及事項": row.Add(field, rec.UpdateDescription); break; case "異動日期": row.Add(field, rec.UpdateDate); break; case "備註": row.Add(field, rec.Comment); break; case "班別": row.Add(field, rec.ClassType); break; case "科別": row.Add(field, rec.Department); break; case "特殊身分代碼": row.Add(field, rec.SpecialStatus); break; case "入學資格證明文件": row.Add(field, rec.GraduateDocument); break; case "異動姓名": row.Add(field, rec.StudentName); break; case "異動學號": row.Add(field, rec.StudentNumber); break; case "異動身分證字號": row.Add(field, rec.IDNumber); break; case "異動生日": row.Add(field, rec.Birthdate); break; case "異動身分證註記": row.Add(field, rec.IDNumberComment); break; case "異動性別": row.Add(field, rec.Gender); break; case "畢業國中": row.Add(field, rec.GraduateSchool); break; case "畢業國中所在地代碼": row.Add(field, rec.GraduateSchoolLocationCode); break; case "畢業國中學校代碼": row.Add(field, rec.GraduateSchoolCode); break; case "國中畢業學年度": row.Add(field, rec.GraduateSchoolYear); break; case "畢業國中入學資格註記": row.Add(field, rec.GraduateComment); break; case "核准日期": row.Add(field, rec.ADDate); break; case "核准文號": row.Add(field, rec.ADNumber); break; case "狀態": if (StudentStatusDict.ContainsKey(rec.StudentID)) { row.Add(field, StudentStatusDict[rec.StudentID]); } break; } } } e.Items.Add(row); } }; }
//覆寫 public override void InitializeExport(SmartSchool.API.PlugIn.Export.ExportWizard wizard) { List <string> FieldList = new List <string>(); FieldList.Add("學年度"); //目前欄位 FieldList.Add("學期"); //目前欄位 FieldList.Add("社團名稱"); //目前欄位 FieldList.Add("代碼"); FieldList.Add("場地"); FieldList.Add("類型"); FieldList.Add("評等"); FieldList.Add("老師1"); FieldList.Add("老師2"); FieldList.Add("老師3"); FieldList.Add("簡介"); FieldList.Add("限制:性別"); FieldList.Add("限制:科別"); FieldList.Add("限制:一年級人數"); FieldList.Add("限制:二年級人數"); FieldList.Add("限制:三年級人數"); FieldList.Add("限制:人數上限"); //取得教師 TeacherDic = GetTeacher(); wizard.ExportableFields.AddRange(FieldList); wizard.ExportPackage += (sender, e) => { //取得學生清單 AccessHelper helper = new AccessHelper(); string strCondition = string.Join("','", e.List); List <CLUBRecord> records = helper.Select <CLUBRecord>("uid in ('" + strCondition + "')"); for (int i = 0; i < records.Count; i++) { RowData row = new RowData(); row.ID = records[i].UID; string teacher1 = ""; string teacher2 = ""; string teacher3 = ""; if (TeacherDic.ContainsKey(records[i].RefTeacherID)) { teacher1 = TeacherDic[records[i].RefTeacherID]; } if (TeacherDic.ContainsKey(records[i].RefTeacherID2)) { teacher2 = TeacherDic[records[i].RefTeacherID2]; } if (TeacherDic.ContainsKey(records[i].RefTeacherID3)) { teacher3 = TeacherDic[records[i].RefTeacherID3]; } foreach (string field in e.ExportFields) { if (wizard.ExportableFields.Contains(field)) { switch (field) { case "學年度": row.Add(field, "" + records[i].SchoolYear); break; case "學期": row.Add(field, "" + records[i].Semester); break; case "社團名稱": row.Add(field, records[i].ClubName); break; case "代碼": row.Add(field, records[i].ClubNumber); break; case "場地": row.Add(field, records[i].Location); break; case "類型": row.Add(field, records[i].ClubCategory); break; case "評等": row.Add(field, records[i].Level); break; case "老師1": row.Add(field, teacher1); break; case "老師2": row.Add(field, teacher2); break; case "老師3": row.Add(field, teacher3); break; case "簡介": row.Add(field, records[i].About); break; case "限制:性別": row.Add(field, records[i].GenderRestrict); break; case "限制:科別": row.Add(field, GetRestrict(records[i].DeptRestrict)); break; case "限制:一年級人數": row.Add(field, records[i].Grade1Limit.HasValue ? "" + records[i].Grade1Limit.Value : ""); break; case "限制:二年級人數": row.Add(field, records[i].Grade2Limit.HasValue ? "" + records[i].Grade2Limit.Value : ""); break; case "限制:三年級人數": row.Add(field, records[i].Grade3Limit.HasValue ? "" + records[i].Grade3Limit.Value : ""); break; case "限制:人數上限": row.Add(field, records[i].Limit.HasValue ? "" + records[i].Limit.Value : ""); break; } } } e.Items.Add(row); } }; }