/// <summary> /// 取得學生類別字串 /// </summary> public string GetSY(GraduateUDT udt) { //如果此學生有類別資訊 if (TagDic.ContainsKey(udt.StudentID)) { DSXmlHelper helper = new DSXmlHelper("TagList"); foreach (StudentTagRecord each in TagDic[udt.StudentID]) { //each.FullName; //完整名稱 //each.Prefix; //前置詞 //each.Name; //標籤名稱 //<Tag FullName="" Prefix="" Name=""> helper.AddElement("Tag"); helper.SetAttribute("Tag", "Prefix", each.Prefix); //前置詞 helper.SetAttribute("Tag", "Name", each.Name); //前置詞 helper.AddText("Tag", each.FullName); //前置詞 } return(helper.BaseElement.OuterXml); } return(""); }
/// <summary> /// 設定UDT內容值 /// </summary> private GraduateUDT SetValue(StudentRecord student, GraduateUDT obj) { if (obj.StudentID == null) //如果是空的才予以更新 { obj.StudentID = student.ID; //系統編號 } obj.Name = student.Name; //姓名 if (student.SeatNo.HasValue) { obj.SeatNo = student.SeatNo.Value; //座號 } obj.StudentNumber = student.StudentNumber.Trim(); //學號 obj.Nationality = student.Nationality.Trim(); //國籍 obj.BirthPlace = student.BirthPlace.Trim(); //出生地 obj.Birthday = student.Birthday; //生日 obj.EnglishName = student.EnglishName.Trim(); //英文姓名 obj.ClassName = student.Class != null ? student.Class.Name : ""; //班級 obj.Gender = student.Gender; //性別 obj.IDNumber = student.IDNumber; //身分證號 if (_GetUpdateRecord.GetSY(student.ID) != 0) //如果是0就沒有學年度 { obj.GraduateSchoolYear = _GetUpdateRecord.GetSY(student.ID); //畢業學年度 } obj.ArchiveNote = _ArchiveNote.Trim(); //封存分類 //封存電話資料 obj = _GetPhoneRecord.GetSY(obj); //封存地址資料 obj = _GetAddressRecord.GetSY(obj); obj.Tag = _GetTagHelp.GetSY(obj); return(obj); }
/// <summary> /// 背景模式 /// </summary> void BGW_DoWork(object sender, DoWorkEventArgs e) { //取得資料 List <GraduateUDT> list = _AccessHelper.Select <GraduateUDT>(string.Format("UID='{0}'", this.PrimaryKey)); if (list.Count == 1) { GraduateOBJ = list[0]; //取得本UDT資料之照片UDT資料 List <PhotoDataUDT> list2 = _AccessHelper.Select <PhotoDataUDT>(string.Format("RefUDT_ID='{0}'", GraduateOBJ.UID)); if (list2.Count == 1) { photoOBJ = list2[0]; } else { photoOBJ = null; } } else if (list.Count > 1) //UDT資料多餘 { MsgBox.Show("UDT資料有誤!!"); } else //無UDT資料 { } }
public DeleteAllData2(GraduateUDT UDT) { GrUID = UDT.UID; _UDT = UDT; _AllXMLDataUDT = new List <AllXMLDataUDT>(); _PhotoDataUDT = new List <PhotoDataUDT>(); _WrittenInformationUDT = new List <WrittenInformationUDT>(); }
/// <summary> /// 傳入學生ID,取得電話資料 /// </summary> public GraduateUDT GetSY(GraduateUDT udt) { if (PhoneDic.ContainsKey(udt.StudentID)) { udt.Permanent = PhoneDic[udt.StudentID].Permanent.Trim(); udt.Contact = PhoneDic[udt.StudentID].Contact.Trim(); udt.Cell = PhoneDic[udt.StudentID].Cell.Trim(); udt.Phone1 = PhoneDic[udt.StudentID].Phone1.Trim(); udt.Phone2 = PhoneDic[udt.StudentID].Phone2.Trim(); udt.Phone3 = PhoneDic[udt.StudentID].Phone3.Trim(); } return(udt); }
private int SortClassName(GraduateUDT obj1, GraduateUDT obj2) { string aaaa1 = obj1.ClassName.PadLeft(10, '0'); string aaaa2 = obj1.SeatNo.HasValue ? obj1.SeatNo.Value.ToString().PadLeft(10, '0') : "0000000000"; aaaa1 += aaaa2; string bbbb1 = obj2.ClassName.PadLeft(10, '0'); string bbbb2 = obj2.SeatNo.HasValue ? obj2.SeatNo.Value.ToString().PadLeft(10, '0') : "0000000000"; bbbb1 += bbbb2; return(aaaa1.CompareTo(bbbb1)); }
/// <summary> /// 新增封存學生 /// </summary> private List <GraduateUDT> InsertStudent(List <StudentRecord> StudentList1) { List <GraduateUDT> ArchiveList = new List <GraduateUDT>(); foreach (StudentRecord student in StudentList1) { //封存基本資料 GraduateUDT obj = new GraduateUDT(); //建立新的UDT obj = SetValue(student, obj); ArchiveList.Add(obj); } return(ArchiveList); }
void BGW_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) { if (BkWBool) //如果有其他的更新事件 { BkWBool = false; BGW.RunWorkerAsync(); return; } List <GraduateUDT> list = (List <GraduateUDT>)e.Result; if (list.Count == 1) { GraduateUDT GraduateOBJ = list[0]; StringBuilder sb = new StringBuilder(); sb.Append("索引分類:" + GraduateOBJ.ArchiveNote); sb.Append(" 班級:" + GraduateOBJ.ClassName); sb.Append(" 座號:" + GraduateOBJ.SeatNo); sb.Append(" 姓名:" + GraduateOBJ.Name); sb.Append(" 學號:" + GraduateOBJ.StudentNumber); StringBuilder sb2 = new StringBuilder(); sb2.Append("學生類別:"); if (!string.IsNullOrEmpty(GraduateOBJ.Tag)) { XmlElement xmlelement = DSXmlHelper.LoadXml(GraduateOBJ.Tag); foreach (XmlElement xmlE in xmlelement.SelectNodes("Tag")) { string Prefix = xmlE.GetAttribute("Prefix"); string Name = xmlE.GetAttribute("Name"); if (!string.IsNullOrEmpty(Prefix)) { sb2.Append("(" + Prefix + ":" + Name + ")"); } else { sb2.Append("(" + Name + ")"); } } } else { sb2.Append("無學生類別資訊"); } labelX1.Text = sb.ToString(); labelX2.Text = sb2.ToString(); } }
/// <summary> /// 更新封存學生 /// </summary> private List <GraduateUDT> UpdateStudent(List <StudentRecord> StudentList2, Dictionary <string, GraduateUDT> TestDic) { List <GraduateUDT> ArchiveList = new List <GraduateUDT>(); foreach (StudentRecord student in StudentList2) { if (TestDic.ContainsKey(student.ID)) { GraduateUDT obj = TestDic[student.ID]; //取得原有UDT obj = SetValue(student, obj); ArchiveList.Add(obj); } } return(ArchiveList); }
/// <summary> /// 背景模式 /// </summary> void BGW_DoWork(object sender, DoWorkEventArgs e) { List <GraduateUDT> list = _AccessHelper.Select <GraduateUDT>(string.Format("UID='{0}'", this.PrimaryKey)); if (list.Count == 1) { GraduateOBJ = list[0]; } else if (list.Count > 1) //UDT資料多餘 { MsgBox.Show("UDT資料有誤!!"); } else //無UDT資料 { } }
private GraduateUDT SetUDTValue(IRowStream Row, GraduateUDT newRecord) { GraduateUDT Record = newRecord; //newRecord.StudentNumber = Row.GetValue("學號"); newRecord.IDNumber = Row.GetValue("身分證號"); //newRecord.ArchiveNote = Row.GetValue("封存分類"); if (Row.GetValue("畢業學年度") != "") { newRecord.GraduateSchoolYear = int.Parse(Row.GetValue("畢業學年度")); } newRecord.ClassName = Row.GetValue("畢業班級"); if (Row.GetValue("座號") != "") { newRecord.SeatNo = int.Parse(Row.GetValue("座號")); } newRecord.Name = Row.GetValue("姓名"); newRecord.Gender = Row.GetValue("性別"); newRecord.Nationality = Row.GetValue("國籍"); newRecord.BirthPlace = Row.GetValue("出生地"); if (Row.GetValue("生日") != "") { newRecord.Birthday = DateTime.Parse(Row.GetValue("生日")); } newRecord.EnglishName = Row.GetValue("英文姓名"); newRecord.Permanent = Row.GetValue("戶籍電話"); newRecord.Contact = Row.GetValue("聯絡電話"); newRecord.Cell = Row.GetValue("手機"); newRecord.Phone1 = Row.GetValue("其它電話1"); newRecord.Phone2 = Row.GetValue("其它電話2"); newRecord.Phone3 = Row.GetValue("其它電話3"); newRecord.PermanentZipCode = Row.GetValue("戶籍地址郵遞區號"); newRecord.PermanentAddress = Row.GetValue("戶籍地址"); newRecord.MailingZipCode = Row.GetValue("聯絡地址郵遞區號"); newRecord.MailingAddress = Row.GetValue("聯絡地址"); newRecord.OtherZipCode = Row.GetValue("其它地址郵遞區號"); newRecord.OtherAddresses = Row.GetValue("其它地址"); newRecord.Remarks = Row.GetValue("備註"); //無法匯狀態?? return(newRecord); }
/// <summary> /// 儲存檔案 /// </summary> private void SaveValue(string SelectPath, GraduateUDT value1, WriteCounselingUDT value2) { //讀取資料 byte[] base64 = Convert.FromBase64String(value2.Content); //建立檔案 StringBuilder sb = new StringBuilder(); sb.Append(SelectPath + "\\"); sb.Append(value1.StudentNumber + "_"); sb.Append(value2.Name); sb.Append("(" + value1.Name + ")" + value2.Format); FileStream fs = new FileStream(sb.ToString(), FileMode.Create); //寫入檔案 fs.Write(base64, 0, base64.Length); fs.Close(); }
void BGW_DoWork(object sender, DoWorkEventArgs e) { //取得PrimaryKey的UDT資料 List <GraduateUDT> GraduateUDTList = _AccessHelper.Select <GraduateUDT>(string.Format("UID='{0}'", this.PrimaryKey)); if (GraduateUDTList.Count == 1) { _StudentUdt = GraduateUDTList[0]; //再得此UDT的相依UDT資料 List <WriteCounselingUDT> listUDT = _AccessHelper.Select <WriteCounselingUDT>(string.Format("RefUDT_ID='{0}'", GraduateUDTList[0].UID)); e.Result = listUDT; } else if (GraduateUDTList.Count > 1) //UDT資料多餘 { MsgBox.Show("UDT資料有誤!!"); } else //無UDT資料 { } }
/// <summary> /// 傳入學生ID,取得地址資料 /// </summary> public GraduateUDT GetSY(GraduateUDT udt) { if (AddressDic.ContainsKey(udt.StudentID)) { AddressRecord ar = AddressDic[udt.StudentID]; if (ar != null) { udt.PermanentZipCode = ar.PermanentZipCode; udt.PermanentAddress = ar.PermanentCounty + ar.PermanentTown + ar.PermanentDistrict + ar.PermanentArea + ar.PermanentDetail; udt.MailingZipCode = ar.MailingZipCode; udt.MailingAddress = ar.MailingCounty + ar.MailingTown + ar.MailingDistrict + ar.MailingArea + ar.MailingDetail; udt.OtherZipCode = ar.Address1ZipCode; udt.OtherAddresses = ar.Address1County + ar.Address1Town + ar.Address1District + ar.Address1Area + ar.Address1Detail; } //udt.OtherAddresses2 = AddressDic[udt.StudentID].Address2Address.Trim(); //udt.OtherAddresses3 = AddressDic[udt.StudentID].Address3Address.Trim(); } return(udt); }
public CommentLogRobot(GraduateUDT UDT) { if (UDT != null) { #region 備份修改前狀態 _UDT = new GraduateUDT(); _UDT.ArchiveNote = UDT.ArchiveNote; _UDT.Birthday = UDT.Birthday; _UDT.BirthPlace = UDT.BirthPlace; _UDT.Cell = UDT.Cell; _UDT.ClassName = UDT.ClassName; _UDT.Contact = UDT.Contact; _UDT.EnglishName = UDT.EnglishName; _UDT.Gender = UDT.Gender; _UDT.GraduateSchoolYear = UDT.GraduateSchoolYear; _UDT.IDNumber = UDT.IDNumber; _UDT.MailingAddress = UDT.MailingAddress; _UDT.Name = UDT.Name; _UDT.Nationality = UDT.Nationality; _UDT.OtherAddresses = UDT.OtherAddresses; _UDT.Permanent = UDT.Permanent; _UDT.PermanentAddress = UDT.PermanentAddress; _UDT.Phone1 = UDT.Phone1; _UDT.Phone2 = UDT.Phone2; _UDT.Phone3 = UDT.Phone3; _UDT.Remarks = UDT.Remarks; _UDT.SeatNo = UDT.SeatNo; _UDT.StudentID = UDT.StudentID; _UDT.StudentNumber = UDT.StudentNumber; _UDT.Tag = UDT.Tag; #endregion } }
/// <summary> /// 新增代表UDT是null /// </summary> public void Set(GraduateUDT UDT) { new_UDT = UDT; }
public XmlUdtHelp(GraduateUDT GraUDT, string RootElement) { _GraUDT = GraUDT; _XmlHelper = new DSXmlHelper(RootElement); }
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()); }; }
/// <summary> /// 每1000筆資料,分批執行匯入 /// Return是Log資訊 /// </summary> public override string Import(List <Campus.DocumentValidator.IRowStream> Rows) { //log List <CommentLogRobot> LogList = new List <CommentLogRobot>(); //取得匯入資料中,所有學生編號下的的日常生活表現資料 List <GraduateUDT> GraduateList = GetGraduateList(Rows); List <GraduateUDT> InsertList = new List <GraduateUDT>(); //List<GraduateUDT> UpdateList = new List<GraduateUDT>(); //int NochangeCount = 0; //未處理資料記數 if (mOption.Action == ImportAction.Insert) { #region Insert foreach (IRowStream Row in Rows) { string StudentNumber = Row.GetValue("學號"); string ArchiveNote = Row.GetValue("索引分類"); GraduateUDT SSR = GetGraduateRecord(GraduateList, StudentNumber, ArchiveNote); //Log機器人 CommentLogRobot log = new CommentLogRobot(SSR); if (SSR == null) //新增 { GraduateUDT newRecord = SetUDTValue(Row, new GraduateUDT()); newRecord.StudentNumber = StudentNumber; newRecord.ArchiveNote = ArchiveNote; InsertList.Add(newRecord); //Log log.Set(newRecord); LogList.Add(log); } //else //已存在資料需要修改 or 覆蓋 //{ // GraduateUDT newRecord = SetUDTValue(Row, SSR); // //Log // log.Set(newRecord); // UpdateList.Add(newRecord); //} } #endregion } if (InsertList.Count > 0) { try { InsertListID = _accessHelper.InsertValues(InsertList.ToArray()); } catch (Exception ex) { MsgBox.Show("於新增資料時發生錯誤!!\n" + ex.Message); } } //if (UpdateList.Count > 0) //{ // try // { // _accessHelper.UpdateValues(UpdateList.ToArray()); // } // catch (Exception ex) // { // MsgBox.Show("於更新資料時發生錯誤!!\n" + ex.Message); // } //} //批次記錄Log StringBuilder sbSummary = new StringBuilder(); sbSummary.AppendLine("「新增」學生索引,筆數共「" + InsertList.Count() + "」筆"); sbSummary.AppendLine(""); //StringBuilder sbSummary2 = new StringBuilder(); //sbSummary2.Append("「更新」畢業生封存:"); //sbSummary2.AppendLine("更新筆數「" + UpdateList.Count() + "」"); foreach (CommentLogRobot each in LogList) { if (each.check()) //新增 { sbSummary.AppendLine(each.LogToString()); } //else //更新 //{ // sbSummary2.AppendLine(each.LogToString()); //} } //更新 if (InsertList.Count > 0) { ApplicationLog.Log("畢業生檔案檢索.匯入索引基本資料", "匯入", sbSummary.ToString()); } //新增 //if (UpdateList.Count > 0) //{ // ApplicationLog.Log("畢業生模組.匯入畢業生封存", "匯入", sbSummary2.ToString()); //} StringBuilder sbSummary3 = new StringBuilder(); sbSummary3.AppendLine("新增筆數「" + InsertList.Count() + "」"); //sbSummary3.AppendLine("更新筆數「" + UpdateList.Count() + "」"); return(sbSummary3.ToString()); }