Exemplo n.º 1
0
        /// <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("");
        }
Exemplo n.º 2
0
        /// <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);
        }
Exemplo n.º 3
0
        /// <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資料
            {
            }
        }
Exemplo n.º 4
0
 public DeleteAllData2(GraduateUDT UDT)
 {
     GrUID                  = UDT.UID;
     _UDT                   = UDT;
     _AllXMLDataUDT         = new List <AllXMLDataUDT>();
     _PhotoDataUDT          = new List <PhotoDataUDT>();
     _WrittenInformationUDT = new List <WrittenInformationUDT>();
 }
Exemplo n.º 5
0
 /// <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);
 }
Exemplo n.º 6
0
        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));
        }
Exemplo n.º 7
0
        /// <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();
            }
        }
Exemplo n.º 9
0
        /// <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);
        }
Exemplo n.º 10
0
        /// <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資料
            {
            }
        }
Exemplo n.º 11
0
        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);
        }
Exemplo n.º 12
0
        /// <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();
        }
Exemplo n.º 13
0
        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資料
            {
            }
        }
Exemplo n.º 14
0
        /// <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);
        }
Exemplo n.º 15
0
        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
            }
        }
Exemplo n.º 16
0
 /// <summary>
 /// 新增代表UDT是null
 /// </summary>
 public void Set(GraduateUDT UDT)
 {
     new_UDT = UDT;
 }
Exemplo n.º 17
0
 public XmlUdtHelp(GraduateUDT GraUDT, string RootElement)
 {
     _GraUDT    = GraUDT;
     _XmlHelper = new DSXmlHelper(RootElement);
 }
Exemplo n.º 18
0
        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());
            };
        }
Exemplo n.º 19
0
        /// <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());
        }