Ejemplo n.º 1
0
        public PhonePalmerwormItem()
            : base()
        {
            InitializeComponent();
            DataListener = new ChangeListener();
            DataListener.Add(new TextBoxSource(txtEverPhone));
            DataListener.Add(new TextBoxSource(txtContactPhone));
            DataListener.Add(new TextBoxSource(txtSMS));
            DataListener.Add(new TextBoxSource(txtOtherPhone));
            DataListener.StatusChanged += new EventHandler <ChangeEventArgs>(DataListener_StatusChanged);


            Group = "電話資料";
            //skypeProxy = new SkypeControl.SkypeProxy();
            //skypeProxy.CountryInfo = new SkypeControl.CountryInfo("886", "台灣");
            //skypeProxy.OnSkypeStatusChange += new SkypeControl.SkypeStatusChangeHandler(skypeProxy_OnSkypeStatusChange);
            //skypeProxy_OnSkypeStatusChange(null, null);

            _bwWork                     = new BackgroundWorker();
            _bwWork.DoWork             += new DoWorkEventHandler(_bwWork_DoWork);
            _bwWork.RunWorkerCompleted += new RunWorkerCompletedEventHandler(_bwWork_RunWorkerCompleted);

            JHPhone.AfterUpdate += new EventHandler <K12.Data.DataChangedEventArgs>(JHPhone_AfterUpdate);
            prlp      = new PermRecLogProcess();
            Disposed += new EventHandler(PhonePalmerwormItem_Disposed);
        }
Ejemplo n.º 2
0
        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 + "筆教師類別資料.");
            };
        }
Ejemplo n.º 3
0
 public BaseInfoItem()
 {
     InitializeComponent();
     Group                       = "教師基本資料";
     _BGWork                     = new BackgroundWorker();
     _BGWork.DoWork             += new DoWorkEventHandler(_BGWork_DoWork);
     _BGWork.RunWorkerCompleted += new RunWorkerCompletedEventHandler(_BGWork_RunWorkerCompleted);
     _AllTeacherNameDic          = new Dictionary <string, string>();
     _AllLogIDDic                = new Dictionary <string, string>();
     prlp          = new PermRecLogProcess();
     _DataListener = new ChangeListener();
     _DataListener.Add(new TextBoxSource(txtName));
     _DataListener.Add(new TextBoxSource(txtIDNumber));
     _DataListener.Add(new TextBoxSource(txtNickname));
     _DataListener.Add(new TextBoxSource(txtPhone));
     _DataListener.Add(new TextBoxSource(txtEmail));
     _DataListener.Add(new TextBoxSource(txtCategory));
     _DataListener.Add(new TextBoxSource(txtSTLoginAccount));
     _DataListener.Add(new TextBoxSource(txtSTLoginPwd));
     _DataListener.Add(new ComboBoxSource(cboAccountType, ComboBoxSource.ListenAttribute.Text));
     _DataListener.Add(new ComboBoxSource(cboGender, ComboBoxSource.ListenAttribute.Text));
     _DataListener.StatusChanged += new EventHandler <ChangeEventArgs>(_DataListener_StatusChanged);
     cboGender.DropDownStyle      = ComboBoxStyle.DropDownList;
     JHTeacher.AfterChange       += new EventHandler <K12.Data.DataChangedEventArgs>(JHTeacher_AfterChange);
     JHTeacher.AfterDelete       += new EventHandler <K12.Data.DataChangedEventArgs>(JHTeacher_AfterDelete);
     Disposed += new EventHandler(BaseInfoItem_Disposed);
 }
Ejemplo n.º 4
0
        private void btnSave_Click(object sender, EventArgs e)
        {
            if (txtName.Text.Trim() == "")
            {
                return;
            }

            string Msg = "轉學生請利用「異動作業>轉入作業」或是「線上轉學」功能。若是以此「新增」功能新增學生,必須透過「調整班級」功能調整學生班級,且需要輸入編班委員會會議日期,並將傳送至局端備查。請確認是否新增學生?";

            if (FISCA.Presentation.Controls.MsgBox.Show(Msg, "新增學生", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) == System.Windows.Forms.DialogResult.Yes)
            {
                K12.Data.StudentRecord studRec = new K12.Data.StudentRecord();
                studRec.Name = txtName.Text;
                string            StudentID = K12.Data.Student.Insert(studRec);
                PermRecLogProcess prlp      = new PermRecLogProcess();
                if (chkInputData.Checked == true)
                {
                    if (StudentID != "")
                    {
                        JHSchool.Student.Instance.PopupDetailPane(StudentID);
                        JHSchool.Student.Instance.SyncDataBackground(StudentID);
                    }
                }
                JHSchool.Student.Instance.SyncDataBackground(StudentID);

                prlp.SaveLog("學籍.學生", "新增學生", "新增學生姓名:" + txtName.Text);
            }
            this.Close();
        }
Ejemplo n.º 5
0
        protected override void DoDelete(JHTagConfigRecord record)
        {
            int use_count = 0;

            foreach (JHCourseTagRecord rec in JHCourseTag.SelectAll())
            {
                if (rec.RefTagID == record.ID)
                {
                    use_count++;
                }
            }


            string msg;

            if (use_count > 0)
            {
                msg = string.Format("目前有「{0}」個課程使用此類別,您確定要刪除此類別嗎?", use_count);
            }
            else
            {
                msg = "您確定要刪除此類別嗎?";
            }

            if (FISCA.Presentation.Controls.MsgBox.Show(msg, MessageBoxButtons.YesNo) == DialogResult.Yes)
            {
                PermRecLogProcess prlp = new PermRecLogProcess();
                prlp.SaveLog("學籍.類別管理", "類別管理刪除類別", "刪除 " + record.Category + " 類別,名稱:" + record.FullName);
                JHTagConfig.Delete(record);
            }
        }
Ejemplo n.º 6
0
        private void cmdPrint_Click(object sender, EventArgs e)
        {
            if (cbxDefault.Checked == false && cbxUserDefine.Checked == false && Student.Instance.SelectedKeys.Count < 1)
            {
                return;
            }

            if (txtCertDoc.Text.Trim() == "" || txtCertNo.Text.Trim() == "")
            {
                if (MessageBox.Show("校內文號輸入不完整,請問是否繼續列印 ?", "", MessageBoxButtons.YesNo, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button2) == DialogResult.No)
                {
                    return;
                }
            }

            if (cbxDefault.Checked)
            {
                isDefalutTemplate = true;
            }
            else
            {
                isDefalutTemplate = false;
            }

            cmdPrint.Enabled = false;
            slm.SetCertDoc(txtCertDoc.Text);
            slm.SetCertNo(txtCertNo.Text);
            slm.SetSemester(School.DefaultSemester, true);

            slm.PrintData(Student.Instance.SelectedKeys, isDefalutTemplate);
            PermRecLogProcess prlp = new PermRecLogProcess();

            prlp.SaveLog("學生.報表", "列印", "列印" + Student.Instance.SelectedKeys.Count + "筆轉學證明書。");
            cmdPrint.Enabled = true;
        }
Ejemplo n.º 7
0
        private void ClassItem_Load(object sender, EventArgs e)
        {
            Errors           = new EnhancedErrorProvider();
            _ClassNameIDDic  = new Dictionary <string, string>();
            _ClassSeatNoList = new List <int>();

            JHSchool.Data.JHStudent.AfterChange += new EventHandler <K12.Data.DataChangedEventArgs>(JHStudent_AfterChange);

            objStudent                 = JHSchool.Data.JHStudent.SelectByID(PrimaryKey);
            _AllClassRecs              = JHSchool.Data.JHClass.SelectAll();
            _AllStudRecList            = new List <JHSchool.Data.JHStudentRecord>();
            _studRecList               = new List <JHSchool.Data.JHStudentRecord>();
            BGWork                     = new BackgroundWorker();
            BGWork.DoWork             += new DoWorkEventHandler(BGWork_DoWork);
            BGWork.RunWorkerCompleted += new RunWorkerCompletedEventHandler(BGWork_RunWorkerCompleted);

            DataListener = new ChangeListener();
            DataListener.Add(new TextBoxSource(txtStudentNumber));
            DataListener.Add(new ComboBoxSource(cboClass, ComboBoxSource.ListenAttribute.Text));
            DataListener.Add(new ComboBoxSource(cboSeatNo, ComboBoxSource.ListenAttribute.Text));
            DataListener.StatusChanged += new EventHandler <ChangeEventArgs>(ValueManager_StatusChanged);
            prlp = new PermRecLogProcess();

            if (!string.IsNullOrEmpty(PrimaryKey))
            {
                BGWork.RunWorkerAsync();
            }

            Disposed += new EventHandler(ClassItem_Disposed);
        }
Ejemplo n.º 8
0
        public DiplomaInfoPalmerworm()
        {
            InitializeComponent();
            Group = "畢業資訊";
            //Errors = new EnhancedErrorProvider();

            //DataListener = new ChangeListener();
            DataListener.Add(new TextBoxSource(txtSchoolYear));
            DataListener.Add(new TextBoxSource(txtGDNumber));
            DataListener.Add(new TextBoxSource(txtMemo));
            DataListener.Add(new ComboBoxSource(cboReason, ComboBoxSource.ListenAttribute.Text));
            DataListener.Add(new TextBoxSource(txtClass));
            DataListener.StatusChanged += new EventHandler <ChangeEventArgs>(DataListener_StatusChanged);
            JHLeaveIfno.AfterUpdate    += new EventHandler <K12.Data.DataChangedEventArgs>(JHLeaveIfno_AfterUpdate);
            prlp                       = new PermRecLogProcess();
            BGWork                     = new BackgroundWorker();
            BGWork.DoWork             += new DoWorkEventHandler(BGWork_DoWork);
            BGWork.RunWorkerCompleted += new RunWorkerCompletedEventHandler(BGWork_RunWorkerCompleted);
            if (!string.IsNullOrEmpty(PrimaryKey))
            {
                BGWork.RunWorkerAsync();
            }

            Disposed += new EventHandler(DiplomaInfoPalmerworm_Disposed);
        }
Ejemplo n.º 9
0
        public BaseInfoPalmerwormItem()
        {
            InitializeComponent();
            Group         = "基本資料";
            _DataListener = new ChangeListener();
            _DataListener.Add(new TextBoxSource(txtName));
            _DataListener.Add(new TextBoxSource(txtSSN));
            _DataListener.Add(new TextBoxSource(txtBirthDate));
            _DataListener.Add(new TextBoxSource(txtBirthPlace));
            _DataListener.Add(new TextBoxSource(txtEngName));
            _DataListener.Add(new TextBoxSource(txtLoginID));
            _DataListener.Add(new TextBoxSource(txtLoginPwd));
            _DataListener.Add(new ComboBoxSource(cboGender, ComboBoxSource.ListenAttribute.Text));
            _DataListener.Add(new ComboBoxSource(cboNationality, ComboBoxSource.ListenAttribute.Text));
            _DataListener.Add(new ComboBoxSource(cboAccountType, ComboBoxSource.ListenAttribute.Text));
            _DataListener.StatusChanged += new EventHandler <ChangeEventArgs>(_DataListener_StatusChanged);

            _BGWorker                     = new BackgroundWorker();
            _BGWorker.DoWork             += new DoWorkEventHandler(_BGWorker_DoWork);
            _BGWorker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(_BGWorker_RunWorkerCompleted);
            prlp = new PermRecLogProcess();
            Initialize();
            JHStudent.AfterChange += new EventHandler <K12.Data.DataChangedEventArgs>(JHStudent_AfterChange);
            JHStudent.AfterDelete += new EventHandler <K12.Data.DataChangedEventArgs>(JHStudent_AfterDelete);
            Disposed += new EventHandler(BaseInfoPalmerwormItem_Disposed);
        }
Ejemplo n.º 10
0
        private void btnSave_Click(object sender, EventArgs e)
        {
            bool chkHasClassName = false;
            if (txtName.Text.Trim() == "")
                return;

            List<K12.Data.ClassRecord> AllClassRecs = K12.Data.Class.SelectAll();
            foreach (K12.Data.ClassRecord cr in AllClassRecs)
                if (cr.Name == txtName.Text)
                {
                    MessageBox.Show("班級名稱重複");
                    return;
                }

            PermRecLogProcess prlp = new PermRecLogProcess();
            K12.Data.ClassRecord classRec = new K12.Data.ClassRecord();
            classRec.Name = txtName.Text;
            string ClassID = K12.Data.Class.Insert(classRec);

            Class.Instance.SyncDataBackground(ClassID);

            if (chkInputData.Checked == true)
            {
                Class.Instance.PopupDetailPane(ClassID);
                Class.Instance.SyncDataBackground(ClassID);
            }

            prlp.SaveLog("學籍.班級", "新增班級", "新增班級,名稱:" + txtName.Text);
            this.Close();
        }
Ejemplo n.º 11
0
        public BeforeEnrollmentItem()
            : base()
        {
            InitializeComponent();

            prlp  = new PermRecLogProcess();
            Group = "前級畢業資訊";
        }
Ejemplo n.º 12
0
        /// <summary>
        /// 畢業異動
        /// </summary>
        public UpdateRecordInfo04(SHUpdateRecordRecord UpdateRec, PermRecLogProcess prlp, List <XElement> UpdateCodeElms, bool isInsert)
        {
            InitializeComponent();
            cbxGender.Items.Add("男");
            cbxGender.Items.Add("女");
            cbxClass.DropDownWidth = 300;
            _UpdateRec             = UpdateRec;
            _UpdateCodeElms        = UpdateCodeElms;
            _prlp = prlp;

            _UpdateCoodeList = (from x in _UpdateCodeElms select x.Element("代號").Value + " " + x.Element("原因及事項").Value).ToList();
            _DeptList        = SHDepartment.SelectAll();
            _faldn           = new UpdateRecordModule_KHSH_D.Utility.FormAndLogDataManager(_prlp);
            _epUpdateCode    = new ErrorProvider();
            _UCodeDict       = Utility.UITool.ConvertUpdateCodeDescDict(_UpdateCodeElms);

            if (isInsert)
            {
                //當畢業證書字號沒有值取得SHLeaveInfoRecord畢業證書字號
                if (string.IsNullOrEmpty(_UpdateRec.GraduateCertificateNumber))
                {
                    SHLeaveInfoRecord lvr = SHLeaveInfo.SelectByStudentID(_UpdateRec.StudentID);
                    _UpdateRec.GraduateCertificateNumber = lvr.DiplomaNumber;
                }

                if (string.IsNullOrEmpty(_UpdateRec.ExpectGraduateSchoolYear))
                {
                    SHLeaveInfoRecord shl = SHLeaveInfo.SelectByStudentID(_UpdateRec.StudentID);
                    if (shl.SchoolYear.HasValue)
                    {
                        _UpdateRec.ExpectGraduateSchoolYear = shl.SchoolYear.Value.ToString();
                    }
                }
            }

            // 載入資料
            cbxUpdateCode     = _faldn.SetFormData(_UpdateRec.UpdateCode, cbxUpdateCode, "異動代碼");
            txtDesc           = _faldn.SetFormData(_UpdateRec.UpdateDescription, txtDesc, "原因及事項");
            dtUpdateDate      = _faldn.SetFormData(_UpdateRec.UpdateDate, dtUpdateDate, "異動日期");
            txtMemo           = _faldn.SetFormData(_UpdateRec.Comment, txtMemo, "備註");
            cbxDept           = _faldn.SetFormData(_UpdateRec.Department, cbxDept, "科別");
            cbxClass          = _faldn.SetFormData(_UpdateRec.ClassType, cbxClass, "班別");
            txtName           = _faldn.SetFormData(_UpdateRec.StudentName, txtName, "姓名");
            txtStudentNumber  = _faldn.SetFormData(_UpdateRec.StudentNumber, txtStudentNumber, "學號");
            txtIDNumber       = _faldn.SetFormData(_UpdateRec.IDNumber, txtIDNumber, "身分證字號");
            dtBirthday        = _faldn.SetFormData(_UpdateRec.Birthdate, dtBirthday, "生日");
            txtIDNumber1      = _faldn.SetFormData(_UpdateRec.IDNumberComment, txtIDNumber1, "註1");
            cbxGender         = _faldn.SetFormData(_UpdateRec.Gender, cbxGender, "性別");
            dtLastUpdateDate  = _faldn.SetFormData(_UpdateRec.LastADDate, dtLastUpdateDate, "備查日期");
            txtLastDocNo      = _faldn.SetFormData(_UpdateRec.LastADNumber, txtLastDocNo, "備查文號");
            txtLastUpdateCode = _faldn.SetFormData(_UpdateRec.LastUpdateCode, txtLastUpdateCode, "最後異動代號");
            txtGradeDocNo     = _faldn.SetFormData(_UpdateRec.GraduateCertificateNumber, txtGradeDocNo, "畢業證書字號");
            dtADDate          = _faldn.SetFormData(_UpdateRec.ADDate, dtADDate, "核准日期");
            txtADDocNo        = _faldn.SetFormData(_UpdateRec.ADNumber, txtADDocNo, "核准文號");
            txtSpecial        = _faldn.SetFormData(_UpdateRec.SpecialStatus, txtSpecial, "特殊身分代碼");
            txtSHSchoolYear   = _faldn.SetFormData(_UpdateRec.ExpectGraduateSchoolYear, txtSHSchoolYear, "應畢業學年度");
        }
Ejemplo n.º 13
0
        private void btnSave_Click(object sender, EventArgs e)
        {
            if (txtName.Text.Trim() == "")
            {
                return;
            }

            // 檢查教師名稱,驗證方式,姓名+暱稱 不能重複。
            List <JHSchool.Data.JHTeacherRecord> TRecs = JHSchool.Data.JHTeacher.SelectAll();
            Dictionary <string, JHSchool.Data.JHTeacherRecord> checkStr = new Dictionary <string, JHSchool.Data.JHTeacherRecord>();

            foreach (JHSchool.Data.JHTeacherRecord TRec in TRecs)
            {
                checkStr.Add(TRec.Name + TRec.Nickname, TRec);
            }

            string strName = txtName.Text + txtNickName.Text;

            if (checkStr.ContainsKey(strName))
            {
                if (checkStr[strName].Status == K12.Data.TeacherRecord.TeacherStatus.一般)
                {
                    MsgBox.Show("教師姓名:" + txtName.Text + ",已存在系統內,如果要使用相同姓名請加暱稱.");
                    return;
                }

                // 當刪除狀態,修正刪除教師內的暱稱 與 TeacherID
                if (checkStr[strName].Status == K12.Data.TeacherRecord.TeacherStatus.刪除)
                {
                    JHSchool.Data.JHTeacherRecord delRec = checkStr[strName];
                    delRec.Nickname = delRec.ID;
                    JHSchool.Data.JHTeacher.Update(delRec);
                }
            }

            JHSchool.Data.JHTeacherRecord teacherRec = new JHSchool.Data.JHTeacherRecord();
            teacherRec.Name     = txtName.Text;
            teacherRec.Nickname = txtNickName.Text;

            string TeacherID = JHSchool.Data.JHTeacher.Insert(teacherRec);

            Teacher.Instance.SyncDataBackground(TeacherID);

            if (chkInputData.Checked == true)
            {
                if (TeacherID != "")
                {
                    Teacher.Instance.PopupDetailPane(TeacherID);
                    Teacher.Instance.SyncDataBackground(TeacherID);
                }
            }
            PermRecLogProcess prlp = new PermRecLogProcess();

            prlp.SaveLog("學籍.教師", "新增教師", "新增教師,姓名:" + txtName.Text + ",暱稱:" + txtNickName.Text);

            this.Close();
        }
        void _BGWork_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
        {
            Student.Instance.SyncAllBackground();
            btnRun.Enabled = true;
            FISCA.Presentation.MotherForm.SetStatusBarMessage("");
            FISCA.Presentation.Controls.MsgBox.Show("產生完成.");
            PermRecLogProcess prlp = new PermRecLogProcess();

            prlp.SaveLog("學籍.學生", "查詢學生地址經緯度", "共查詢" + _StudIDList.Count + "筆學生" + cboAddressType.Text + "經緯度");

            this.Close();
        }
        void bkWork_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
        {
            Workbook wb       = (Workbook)e.Result;
            bool     checklog = false;

            try
            {
                foreach (Worksheet wst in wb.Worksheets)
                {
                    wst.Name += "年級";
                }

                wb.Save(Application.StartupPath + "\\Reports\\班級名條.xls", FileFormatType.Excel2003);
                System.Diagnostics.Process.Start(Application.StartupPath + "\\Reports\\班級名條.xls");
                checklog = true;
            }
            catch
            {
                System.Windows.Forms.SaveFileDialog sd1 = new System.Windows.Forms.SaveFileDialog();
                sd1.Title    = "另存新檔";
                sd1.FileName = "班級名條.xls";
                sd1.Filter   = "Excel檔案 (*.xls)|*.xls|所有檔案 (*.*)|*.*";
                if (sd1.ShowDialog() == System.Windows.Forms.DialogResult.OK)
                {
                    try
                    {
                        wb.Save(sd1.FileName, FileFormatType.Excel2003);
                        System.Diagnostics.Process.Start(sd1.FileName);
                        checklog = true;
                    }
                    catch
                    {
                        System.Windows.Forms.MessageBox.Show("指定路徑無法存取。", "建立檔案失敗", System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Error);
                        return;
                    }
                }
            }

            if (checklog)
            {
                string            logClassName = "";
                PermRecLogProcess prlp         = new PermRecLogProcess();
                foreach (List <DAL.ClassStudentEntity> cseLst in GradeClassStudentDic.Values)
                {
                    foreach (DAL.ClassStudentEntity cse in cseLst)
                    {
                        logClassName += cse.ClassName + ",";
                    }
                }

                prlp.SaveLog("學籍.班級名條", "學籍班級.產生班級名條", "產生 " + logClassName + " 班級名條報表");
            }
        }
        /// <summary>
        /// 畢業異動
        /// </summary>
        public UpdateRecordInfo04(SHUpdateRecordRecord UpdateRec, PermRecLogProcess prlp, List<XElement> UpdateCodeElms)
        {
            InitializeComponent();
            cbxGender.Items.Add("男");
            cbxGender.Items.Add("女");

            _UpdateRec = UpdateRec;
            _UpdateCodeElms = UpdateCodeElms;
            _prlp = prlp;

            _UpdateCoodeList = (from x in _UpdateCodeElms select x.Element("代號").Value + " " + x.Element("原因及事項").Value).ToList();
            _DeptList = SHDepartment.SelectAll();
            _faldn = new UpdateRecordModule_SH_D.Utility.FormAndLogDataManager(_prlp);
            _epUpdateCode = new ErrorProvider();
            _UCodeDict = Utility.UITool.ConvertUpdateCodeDescDict(_UpdateCodeElms);

            //當畢業證書字號沒有值取得SHLeaveInfoRecord畢業證書字號
            if (string.IsNullOrEmpty(_UpdateRec.GraduateCertificateNumber))
            {
                SHLeaveInfoRecord lvr = SHLeaveInfo.SelectByStudentID(_UpdateRec.StudentID);
                _UpdateRec.GraduateCertificateNumber = lvr.DiplomaNumber;
            }

            if (string.IsNullOrEmpty(_UpdateRec.ExpectGraduateSchoolYear))
            {
                SHLeaveInfoRecord shl = SHLeaveInfo.SelectByStudentID(_UpdateRec.StudentID);
                if(shl.SchoolYear.HasValue)
                    _UpdateRec.ExpectGraduateSchoolYear = shl.SchoolYear.Value.ToString();
            }

            // 載入資料
            cbxUpdateCode = _faldn.SetFormData(_UpdateRec.UpdateCode, cbxUpdateCode, "異動代碼");
            txtDesc = _faldn.SetFormData(_UpdateRec.UpdateDescription, txtDesc, "原因及事項");
            dtUpdateDate = _faldn.SetFormData(_UpdateRec.UpdateDate, dtUpdateDate, "異動日期");
            txtMemo = _faldn.SetFormData(_UpdateRec.Comment, txtMemo, "備註");
            cbxDept = _faldn.SetFormData(_UpdateRec.Department, cbxDept, "科別");
            cbxClass = _faldn.SetFormData(_UpdateRec.ClassType, cbxClass, "班別");
            txtName = _faldn.SetFormData(_UpdateRec.StudentName, txtName, "姓名");
            txtStudentNumber = _faldn.SetFormData(_UpdateRec.StudentNumber, txtStudentNumber, "學號");
            txtIDNumber = _faldn.SetFormData(_UpdateRec.IDNumber, txtIDNumber, "身分證字號");
            dtBirthday = _faldn.SetFormData(_UpdateRec.Birthdate, dtBirthday, "生日");
            txtIDNumber1 = _faldn.SetFormData(_UpdateRec.IDNumberComment, txtIDNumber1, "註1");
            cbxGender = _faldn.SetFormData(_UpdateRec.Gender, cbxGender, "性別");
            dtLastUpdateDate = _faldn.SetFormData(_UpdateRec.LastADDate, dtLastUpdateDate, "備查日期");
            txtLastDocNo = _faldn.SetFormData(_UpdateRec.LastADNumber, txtLastDocNo, "備查文號");
            txtLastUpdateCode = _faldn.SetFormData(_UpdateRec.LastUpdateCode, txtLastUpdateCode, "最後異動代號");
            txtGradeDocNo = _faldn.SetFormData(_UpdateRec.GraduateCertificateNumber, txtGradeDocNo, "畢業證書字號");
            dtADDate = _faldn.SetFormData(_UpdateRec.ADDate, dtADDate, "核准日期");
            txtADDocNo = _faldn.SetFormData(_UpdateRec.ADNumber, txtADDocNo, "核准文號");
            txtSpecial = _faldn.SetFormData(_UpdateRec.SpecialStatus, txtSpecial, "特殊身分代碼");
            txtSHSchoolYear = _faldn.SetFormData(_UpdateRec.ExpectGraduateSchoolYear, txtSHSchoolYear, "應畢業學年度");
        }
Ejemplo n.º 17
0
        /// <summary>
        /// Constructor
        /// 傳入一個課程。
        /// </summary>
        /// <param name="course"></param>
        public CourseScoreInputForm(CourseRecord course)
        {
            InitializeComponent();
            prlp    = new PermRecLogProcess();
            _course = course;

            #region 設定小標題
            TeacherRecord first  = course.GetFirstTeacher();
            TeacherRecord second = course.GetSecondTeacher();
            TeacherRecord third  = course.GetThirdTeacher();

            StringBuilder builder = new StringBuilder("");
            if (first != null)
            {
                builder.Append(first.Name + ",");
            }
            if (second != null)
            {
                builder.Append(second.Name + ",");
            }
            if (third != null)
            {
                builder.Append(third.Name + ",");
            }

            string teachers = builder.ToString();
            if (!string.IsNullOrEmpty(teachers))
            {
                teachers = teachers.Substring(0, teachers.Length - 1);
            }

            lblCourseName.Text = course.Name + (!string.IsNullOrEmpty(teachers) ? " (" + teachers + ")" : "");
            #endregion

            #region 取得文字評量代碼表
            K12.Data.Configuration.ConfigData cd = K12.Data.School.Configuration["文字描述代碼表"];
            if (!string.IsNullOrEmpty(cd["xml"]))
            {
                K12.Data.XmlHelper helper = new K12.Data.XmlHelper(K12.Data.XmlHelper.LoadXml(cd["xml"]));
                foreach (XmlElement item in helper.GetElements("Item"))
                {
                    string code    = item.GetAttribute("Code");
                    string content = item.GetAttribute("Content");

                    if (!_textMapping.ContainsKey(code))
                    {
                        _textMapping.Add(code, content);
                    }
                }
            }
            #endregion
        }
Ejemplo n.º 18
0
        private void btnSave_Click(object sender, EventArgs e)
        {
            btnExport.Enabled = false;


            Preview();

            if (chkInputData == true)
            {
                string tmpStr = "";
                // getDataGradViewData
                Dictionary <string, string> tmpDocNo = new Dictionary <string, string>();
                foreach (DataGridViewRow dgv in dgGraduateDocNoData.Rows)
                {
                    if (dgv.IsNewRow)
                    {
                        continue;
                    }

                    if (dgv.Cells[6].Value == null)
                    {
                        tmpStr = "";
                    }
                    else
                    {
                        tmpStr = dgv.Cells[6].Value.ToString();
                    }

                    tmpDocNo.Add(dgv.Cells[0].Value.ToString(), tmpStr);
                }

                // 批示填入證書字號
                foreach (StudDiplomaInfoJuniorDiplomaNumber sdi in StudDiplomaInfoJuniorDiplomaNumberList)
                {
                    if (tmpDocNo.ContainsKey(sdi.StudentID))
                    {
                        sdi.GRDocNo = tmpDocNo[sdi.StudentID];
                    }
                }

                //寫入資料庫
                btnSave.Enabled = false;
                setStudDiplomaInfoData();
                PermRecLogProcess prlp = new PermRecLogProcess();
                prlp.SaveLog("教務.產生畢修業證書字號", "新增", "批次產生畢修業證書字號.");
            }
            else
            {
                MessageBox.Show("無法產生資料!");
                btnSave.Enabled = true;
            }
        }
Ejemplo n.º 19
0
        private void btnSave_Click(object sender, EventArgs e)
        {
            if (txtName.Text.Trim() == "")
                return;

            // 檢查教師名稱,驗證方式,姓名+暱稱 不能重複。
            List<K12.Data.TeacherRecord> TRecs = K12.Data.Teacher.SelectAll();
            Dictionary<string, K12.Data.TeacherRecord> checkStr = new Dictionary<string, K12.Data.TeacherRecord>();
            foreach (K12.Data.TeacherRecord TRec in TRecs)
                checkStr.Add(TRec.Name + TRec.Nickname, TRec);

            string strName = txtName.Text + txtNickName.Text;

            if (checkStr.ContainsKey(strName))
            {
                if (checkStr[strName].Status == K12.Data.TeacherRecord.TeacherStatus.一般)
                {
                    MsgBox.Show("教師姓名:" + txtName.Text + ",已存在系統內,如果要使用相同姓名請加暱稱.");
                    return;
                }

                // 當刪除狀態,修正刪除教師內的暱稱 與 TeacherID
                if (checkStr[strName].Status == K12.Data.TeacherRecord.TeacherStatus.刪除)
                {
                    K12.Data.TeacherRecord delRec = checkStr[strName];
                    delRec.Nickname = delRec.ID;
                    K12.Data.Teacher.Update(delRec);
                }
            }

            K12.Data.TeacherRecord teacherRec = new K12.Data.TeacherRecord();
            teacherRec.Name = txtName.Text;
            teacherRec.Nickname = txtNickName.Text;

            string TeacherID = K12.Data.Teacher.Insert(teacherRec);

            Teacher.Instance.SyncDataBackground(TeacherID);

            if (chkInputData.Checked == true)
            {
                if (TeacherID != "")
                {
                    Teacher.Instance.PopupDetailPane(TeacherID);
                    Teacher.Instance.SyncDataBackground(TeacherID);
                }
            }
            PermRecLogProcess prlp = new PermRecLogProcess();
            prlp.SaveLog("學籍.教師", "新增教師", "新增教師,姓名:" + txtName.Text + ",暱稱:" + txtNickName.Text);

            this.Close();
        }
Ejemplo n.º 20
0
        private void buttonItem2_CheckedChanged(object sender, EventArgs e)
        {
            var button = (DevComponents.DotNetBar.ButtonItem)sender;

            if (button.Checked)
            {
                var teacherRec = Teacher.Instance.Items[PrimaryKey];
                if (teacherRec != null)
                {
                    if (button.Text != teacherRec.Status)
                    {
                        try
                        {
                            JHSchool.Data.JHTeacherRecord teach = JHSchool.Data.JHTeacher.SelectByID(PrimaryKey);


                            if (K12.Data.TeacherRecord.TeacherStatus.一般.ToString() == button.Text)
                            {
                                teach.Status = K12.Data.TeacherRecord.TeacherStatus.一般;
                            }

                            if (K12.Data.TeacherRecord.TeacherStatus.刪除.ToString() == button.Text)
                            {
                                teach.Status = K12.Data.TeacherRecord.TeacherStatus.刪除;
                            }

                            JHSchool.Data.JHTeacher.Update(teach);

                            PermRecLogProcess prlp = new PermRecLogProcess();
                            prlp.SaveLog("教師", "修改", "修改教師狀態");

                            //Feature.Legacy.EditStudent.ChangeStudentStatus(studentRec.ID, button.Text);
                        }
                        catch (ArgumentException aa)
                        {
                            MessageBox.Show("目前無法移到刪除");
                        }

                        catch
                        {
                            OnPrimaryKeyChanged(new EventArgs());
                            FISCA.Presentation.MotherForm.SetStatusBarMessage("變更狀態失敗,可能發生原因為學號或身分證號在" + button.Text + "敎師中已經存在,請檢查教師資料。");
                            return;
                        }
                        Teacher.Instance.SyncDataBackground(teacherRec.ID);
                        FISCA.Presentation.MotherForm.SetStatusBarMessage("已變更教師狀態。" + DescriptionLabel.Text);
                    }
                }
            }
        }
Ejemplo n.º 21
0
        /// <summary>
        /// 取得異動資料
        /// </summary>
        /// <returns></returns>
        SHUpdateRecordRecord IUpdateRecordInfo.GetStudUpdateRecord()
        {
            // 檢查畫面
            if (string.IsNullOrEmpty(cbxUpdateCode.Text))
            {
                _epUpdateCode.SetError(cbxUpdateCode, "請輸入異動代碼.");
            }

            if (_epUpdateCode.GetError(cbxUpdateCode).Length > 0)
            {
                return(null);
            }


            // 取得畫面資料
            _UpdateRec.UpdateCode               = _faldn.GetFormData(cbxUpdateCode, "異動代碼");
            _UpdateRec.UpdateDescription        = _faldn.GetFormData(txtDesc, "原因及事項");
            _UpdateRec.UpdateDate               = _faldn.GetFormData(dtUpdateDate, "異動日期");
            _UpdateRec.Comment                  = _faldn.GetFormData(txtMemo, "備註");
            _UpdateRec.Department               = _faldn.GetFormData(cbxDept, "科別");
            _UpdateRec.ClassType                = _faldn.GetFormData(cbxClass, "班別");
            _UpdateRec.SpecialStatus            = _faldn.GetFormData(txtSpecial, "特殊身分代碼");
            _UpdateRec.StudentName              = _faldn.GetFormData(txtName, "姓名");
            _UpdateRec.StudentNumber            = _faldn.GetFormData(txtStudentNumber, "學號");
            _UpdateRec.IDNumber                 = _faldn.GetFormData(txtIDNumber, "身分證字號");
            _UpdateRec.NewData                  = _faldn.GetFormData(txtNewData, "新資料");
            _UpdateRec.IDNumberComment          = _faldn.GetFormData(txtIDNumber1, "註1");
            _UpdateRec.Comment2                 = _faldn.GetFormData(txtIDNumber2, "註2");
            _UpdateRec.LastADDate               = _faldn.GetFormData(dtLastUpdateDate, "備查日期");
            _UpdateRec.LastADNumber             = _faldn.GetFormData(txtLastDocNo, "備查文號");
            _UpdateRec.ADDate                   = _faldn.GetFormData(dtADDate, "核准日期");
            _UpdateRec.ADNumber                 = _faldn.GetFormData(txtADDocNo, "核准文號");
            _UpdateRec.Birthdate                = _faldn.GetFormData(dtBirthday, "生日");
            _UpdateRec.Gender                   = _faldn.GetFormData(cbxGender, "性別");
            _UpdateRec.ExpectGraduateSchoolYear = _faldn.GetFormData(txtSHSchoolYear, "應畢業學年度");
            _UpdateRec.Code7SchoolCode          = _faldn.GetFormData(txtC7SchoolCode, "借讀學校代碼");
            _UpdateRec.Code7DeptCode            = _faldn.GetFormData(txtC7DeptCode, "借讀科別代碼");
            _UpdateRec.Code71BeginDate          = _faldn.GetFormData(dtC71BeginDate, "申請開始日期");
            _UpdateRec.Code71EndDate            = _faldn.GetFormData(dtC71EndDate, "申請結束日期");
            _UpdateRec.Code72BeginDate          = _faldn.GetFormData(dtC72BeginDate, "實際開始日期");
            _UpdateRec.Code72EndDate            = _faldn.GetFormData(dtC72EndDate, "實際結束日期");

            _UpdateRec.ReplicatedSchoolRollNumber = _faldn.GetFormData(txtReplicatedSchoolRollNumber, "雙重學籍編號");


            // 取得 Log
            _prlp = _faldn.GetLogData();

            return(_UpdateRec);
        }
Ejemplo n.º 22
0
        private void wizard1_FinishButtonClick(object sender, CancelEventArgs e)
        {
            if (GetSelectedFields().Count == 0)
            {
                FISCA.Presentation.Controls.MsgBox.Show("必須至少選擇一項匯出欄位!", "欄位空白", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return;
            }

            // 2017/8/22 穎驊依據高雄小組專案 [03-05][04+] EXCEL匯入格式可否修正為xlsx也可匯入? 更改為新版 Aspose.Cells_201402 寫法,支援.xlsx 匯出
            saveFileDialog1.Filter   = "Excel (*.xlsx)|*.xlsx|Excel (*.xls)|*.xls|所有檔案 (*.*)|*.*";
            saveFileDialog1.FileName = "匯出學生基本資料";

            if (saveFileDialog1.ShowDialog() == DialogResult.OK)
            {
                ExportStudentConnector ec = new ExportStudentConnector();
                foreach (StudentRecord student in Student.Instance.SelectedList)
                {
                    ec.AddCondition(student.ID);
                }
                ec.SetSelectedFields(GetSelectedFields());
                ExportTable table = ec.Export();

                ExportOutput output = new ExportOutput();
                output.SetSource(table);
                try
                {
                    output.Save(saveFileDialog1.FileName);
                    PermRecLogProcess prlp = new PermRecLogProcess();
                    prlp.SaveLog("學生.匯出學生基本資料", "批次匯出", "匯出" + Student.Instance.SelectedKeys.Count + "筆學生資料.");
                }
                catch (Exception)
                {
                    FISCA.Presentation.Controls.MsgBox.Show("檔案儲存失敗, 檔案目前可能已經開啟。", "儲存失敗", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return;
                }
                if (FISCA.Presentation.Controls.MsgBox.Show("檔案存檔完成,是否開啟該檔案", "是否開啟", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
                {
                    try
                    {
                        System.Diagnostics.Process.Start(saveFileDialog1.FileName);
                    }
                    catch (Exception ex)
                    {
                        FISCA.Presentation.Controls.MsgBox.Show("開啟檔案發生失敗:" + ex.Message, "錯誤", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }
                }
                this.Close();
            }
        }
Ejemplo n.º 23
0
        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 + "筆學生類別資料.");
            };
        }
Ejemplo n.º 24
0
 //建構子
 public ClassBaseInfoItem()
 {
     InitializeComponent();
     Group         = "班級基本資料";
     _DataListener = new ChangeListener();
     _DataListener.Add(new TextBoxSource(txtClassName));
     _DataListener.Add(new TextBoxSource(txtSortOrder));
     _DataListener.Add(new ComboBoxSource(cboGradeYear, ComboBoxSource.ListenAttribute.Text));
     _DataListener.Add(new ComboBoxSource(cboTeacher, ComboBoxSource.ListenAttribute.Text));
     _DataListener.StatusChanged += new EventHandler <ChangeEventArgs>(_DataListener_StatusChanged);
     _TeacherNameDic              = new Dictionary <string, string>();
     prlp = new PermRecLogProcess();
     JHClass.AfterChange          += new EventHandler <K12.Data.DataChangedEventArgs>(JHClass_AfterChange);
     _BGWorker                     = new BackgroundWorker();
     _BGWorker.DoWork             += new DoWorkEventHandler(_BGWorker_DoWork);
     _BGWorker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(_BGWorker_RunWorkerCompleted);
     Disposed += new EventHandler(ClassBaseInfoItem_Disposed);
 }
Ejemplo n.º 25
0
 //建构子
 public ClassBaseInfoItem()
 {
     InitializeComponent();
     Group = "班级基本数据";
     _DataListener = new ChangeListener();
     _DataListener.Add(new TextBoxSource(txtClassName));
     _DataListener.Add(new TextBoxSource(txtSortOrder));
     _DataListener.Add(new ComboBoxSource(cboGradeYear, ComboBoxSource.ListenAttribute.Text));
     _DataListener.Add(new ComboBoxSource(cboTeacher, ComboBoxSource.ListenAttribute.Text));
     _DataListener.StatusChanged += new EventHandler<ChangeEventArgs>(_DataListener_StatusChanged);
     _TeacherNameDic = new Dictionary<string, string>();
     prlp = new PermRecLogProcess();
     K12.Data.Class.AfterChange += new EventHandler<K12.Data.DataChangedEventArgs>(Class_AfterChange);
     _BGWorker = new BackgroundWorker();
     _BGWorker.DoWork += new DoWorkEventHandler(_BGWorker_DoWork);
     _BGWorker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(_BGWorker_RunWorkerCompleted);
     Disposed += new EventHandler(ClassBaseInfoItem_Disposed);
 }
Ejemplo n.º 26
0
        /// <summary>
        /// 他校轉入
        /// </summary>
        public UpdateRecordInfo02(SHUpdateRecordRecord UpdateRec, PermRecLogProcess prlp, List <XElement> UpdateCodeElms)
        {
            InitializeComponent();
            cbxGender.Items.Add("男");
            cbxGender.Items.Add("女");

            cbxClass.DropDownWidth = 300;

            _UpdateRec       = UpdateRec;
            _UpdateCodeElms  = UpdateCodeElms;
            _prlp            = prlp;
            _UpdateCoodeList = (from x in _UpdateCodeElms select x.Element("代號").Value + " " + x.Element("原因及事項").Value).ToList();
            _DeptList        = SHDepartment.SelectAll();
            _faldn           = new UpdateRecordModule_SH_D.Utility.FormAndLogDataManager(_prlp);
            _epUpdateCode    = new ErrorProvider();

            // 建異動索引
            _UCodeDict = Utility.UITool.ConvertUpdateCodeDescDict(_UpdateCodeElms);

            // 載入資料
            cbxUpdateCode     = _faldn.SetFormData(_UpdateRec.UpdateCode, cbxUpdateCode, "異動代碼");
            txtDesc           = _faldn.SetFormData(_UpdateRec.UpdateDescription, txtDesc, "原因及事項");
            dtUpdateDate      = _faldn.SetFormData(_UpdateRec.UpdateDate, dtUpdateDate, "異動日期");
            txtMemo           = _faldn.SetFormData(_UpdateRec.Comment, txtMemo, "備註");
            cbxDept           = _faldn.SetFormData(_UpdateRec.Department, cbxDept, "科別");
            cbxClass          = _faldn.SetFormData(_UpdateRec.ClassType, cbxClass, "班別");
            txtSpecial        = _faldn.SetFormData(_UpdateRec.SpecialStatus, txtSpecial, "特殊身分代碼");
            txtName           = _faldn.SetFormData(_UpdateRec.StudentName, txtName, "姓名");
            txtStudentNumber  = _faldn.SetFormData(_UpdateRec.StudentNumber, txtStudentNumber, "學號");
            txtIDNumber       = _faldn.SetFormData(_UpdateRec.IDNumber, txtIDNumber, "身分證字號");
            dtBirthday        = _faldn.SetFormData(_UpdateRec.Birthdate, dtBirthday, "生日");
            txtIDNumber1      = _faldn.SetFormData(_UpdateRec.IDNumberComment, txtIDNumber1, "註1");
            cbxGender         = _faldn.SetFormData(_UpdateRec.Gender, cbxGender, "性別");
            txtSSchool        = _faldn.SetFormData(_UpdateRec.PreviousSchool, txtSSchool, "原就讀學校");
            txtSStudentNumber = _faldn.SetFormData(_UpdateRec.PreviousStudentNumber, txtSStudentNumber, "原就讀學號");
            txtSDept          = _faldn.SetFormData(_UpdateRec.PreviousDepartment, txtSDept, "原就讀科別");
            txtSGradYear      = _faldn.SetFormData(_UpdateRec.PreviousGradeYear, txtSGradYear, "原就讀年級");
            dtSLastUpdateDate = _faldn.SetFormData(_UpdateRec.PreviousSchoolLastADDate, dtSLastUpdateDate, "原就讀備查日期");
            txtSLastDocNo     = _faldn.SetFormData(_UpdateRec.PreviousSchoolLastADNumber, txtSLastDocNo, "原就讀備查文號");
            dtADDate          = _faldn.SetFormData(_UpdateRec.ADDate, dtADDate, "核准日期");
            txtADDocNo        = _faldn.SetFormData(_UpdateRec.ADNumber, txtADDocNo, "核准文號");
            txtSSemester      = _faldn.SetFormData(_UpdateRec.PreviousSemester, txtSSemester, "原就讀學期");
            txtComment2       = _faldn.SetFormData(_UpdateRec.Comment2, txtComment2, "轉入身分別代碼");
        }
Ejemplo n.º 27
0
        /// <summary>
        /// 取得異動資料
        /// </summary>
        /// <returns></returns>
        SHUpdateRecordRecord IUpdateRecordInfo.GetStudUpdateRecord()
        {
            // 檢查畫面
            if (string.IsNullOrEmpty(cbxUpdateCode.Text))
            {
                _epUpdateCode.SetError(cbxUpdateCode, "請輸入異動代碼.");
            }

            if (_epUpdateCode.GetError(cbxUpdateCode).Length > 0)
            {
                return(null);
            }


            // 取得畫面資料
            _UpdateRec.UpdateCode        = _faldn.GetFormData(cbxUpdateCode, "異動代碼");
            _UpdateRec.UpdateDescription = _faldn.GetFormData(txtDesc, "原因及事項");
            _UpdateRec.UpdateDate        = _faldn.GetFormData(dtUpdateDate, "異動日期");
            _UpdateRec.Comment           = _faldn.GetFormData(txtMemo, "備註");
            _UpdateRec.Department        = _faldn.GetFormData(cbxDept, "科別");
            _UpdateRec.ClassType         = _faldn.GetFormData(cbxClass, "班別");
            _UpdateRec.SpecialStatus     = _faldn.GetFormData(txtSHSchoolYear, "特殊身分代碼");
            _UpdateRec.StudentName       = _faldn.GetFormData(txtName, "姓名");
            _UpdateRec.StudentNumber     = _faldn.GetFormData(txtStudentNumber, "學號");
            _UpdateRec.IDNumber          = _faldn.GetFormData(txtIDNumber, "身分證字號");
            _UpdateRec.NewData           = _faldn.GetFormData(txtNewData, "新資料");
            _UpdateRec.IDNumberComment   = _faldn.GetFormData(txtIDNumber1, "註1");
            _UpdateRec.OldClassType      = _faldn.GetFormData(cbxOldClass, "舊班別");
            _UpdateRec.OldDepartmentCode = _faldn.GetFormData(cbxOldDeptCode, "舊科別代碼");
            _UpdateRec.LastADDate        = _faldn.GetFormData(dtLastUpdateDate, "備查日期");
            _UpdateRec.LastADNumber      = _faldn.GetFormData(txtLastDocNo, "備查文號");
            _UpdateRec.ADDate            = _faldn.GetFormData(dtADDate, "核准日期");
            _UpdateRec.ADNumber          = _faldn.GetFormData(txtADDocNo, "核准文號");
            _UpdateRec.SpecialStatus     = _faldn.GetFormData(txtSpecial, "特殊身分代碼");
            _UpdateRec.Birthdate         = _faldn.GetFormData(dtBirthday, "生日");
            _UpdateRec.Gender            = _faldn.GetFormData(cbxGender, "性別");


            // 取得 Log
            _prlp = _faldn.GetLogData();

            return(_UpdateRec);
        }
        /// <summary>
        /// 他校轉入
        /// </summary>
        public UpdateRecordInfo02(SHUpdateRecordRecord UpdateRec, PermRecLogProcess prlp, List<XElement> UpdateCodeElms)
        {
            InitializeComponent();
            cbxGender.Items.Add("男");
            cbxGender.Items.Add("女");

            _UpdateRec = UpdateRec;
            _UpdateCodeElms = UpdateCodeElms;
            _prlp = prlp;
            _UpdateCoodeList = (from x in _UpdateCodeElms select x.Element("代號").Value + " " + x.Element("原因及事項").Value).ToList();
            _DeptList = SHDepartment.SelectAll();
            _faldn = new UpdateRecordModule_SH_D.Utility.FormAndLogDataManager(_prlp);
            _epUpdateCode = new ErrorProvider();

            // 建異動索引
            _UCodeDict = Utility.UITool.ConvertUpdateCodeDescDict(_UpdateCodeElms);

            // 載入資料
            cbxUpdateCode = _faldn.SetFormData(_UpdateRec.UpdateCode, cbxUpdateCode, "異動代碼");
            txtDesc = _faldn.SetFormData(_UpdateRec.UpdateDescription, txtDesc, "原因及事項");
            dtUpdateDate = _faldn.SetFormData(_UpdateRec.UpdateDate, dtUpdateDate, "異動日期");
            txtMemo = _faldn.SetFormData(_UpdateRec.Comment, txtMemo, "備註");
            cbxDept = _faldn.SetFormData(_UpdateRec.Department, cbxDept, "科別");
            cbxClass = _faldn.SetFormData(_UpdateRec.ClassType, cbxClass, "班別");
            txtSpecial = _faldn.SetFormData(_UpdateRec.SpecialStatus, txtSpecial, "特殊身分代碼");
            txtName = _faldn.SetFormData(_UpdateRec.StudentName, txtName, "姓名");
            txtStudentNumber = _faldn.SetFormData(_UpdateRec.StudentNumber, txtStudentNumber, "學號");
            txtIDNumber = _faldn.SetFormData(_UpdateRec.IDNumber, txtIDNumber, "身分證字號");
            dtBirthday = _faldn.SetFormData(_UpdateRec.Birthdate, dtBirthday, "生日");
            txtIDNumber1 = _faldn.SetFormData(_UpdateRec.IDNumberComment, txtIDNumber1, "註1");
            cbxGender = _faldn.SetFormData(_UpdateRec.Gender, cbxGender, "性別");
            txtSSchool = _faldn.SetFormData(_UpdateRec.PreviousSchool,txtSSchool, "原就讀學校");
            txtSStudentNumber = _faldn.SetFormData(_UpdateRec.PreviousStudentNumber, txtSStudentNumber, "原就讀學號");
            txtSDept = _faldn.SetFormData(_UpdateRec.PreviousDepartment, txtSDept, "原就讀科別");
            txtSGradYear = _faldn.SetFormData(_UpdateRec.PreviousGradeYear, txtSGradYear, "原就讀年級");
            dtSLastUpdateDate = _faldn.SetFormData(_UpdateRec.PreviousSchoolLastADDate, dtSLastUpdateDate, "原就讀備查日期");
            txtSLastDocNo = _faldn.SetFormData(_UpdateRec.PreviousSchoolLastADNumber, txtSLastDocNo, "原就讀備查文號");
            dtADDate = _faldn.SetFormData(_UpdateRec.ADDate, dtADDate, "核准日期");
            txtADDocNo = _faldn.SetFormData(_UpdateRec.ADNumber, txtADDocNo, "核准文號");
            txtSSemester = _faldn.SetFormData(_UpdateRec.PreviousSemester, txtSSemester, "原就讀學期");
            txtComment2 = _faldn.SetFormData(_UpdateRec.Comment2, txtComment2, "轉入身分別代碼");
        }
        public BeforeEnrollmentItem()
        {
            InitializeComponent();

            prlp  = new PermRecLogProcess();
            Group = "前級畢業資訊";

            #region  限判斷程式碼。
            //取得此 Class 定議的 FeatureCode。
            FeatureCode = FeatureCodeAttribute.GetCode(this.GetType());
            _permission = FISCA.Permission.UserAcl.Current[FeatureCode];

            txtClass.Enabled          = _permission.Editable;
            txtMemo.Enabled           = _permission.Editable;
            txtSchool.Enabled         = _permission.Editable;
            txtSchoolLocation.Enabled = _permission.Editable;
            txtSeatNo.Enabled         = _permission.Editable;

            #endregion
        }
        /// <summary>
        /// 異動資料
        /// </summary>
        /// <returns></returns>
        SHSchool.Data.SHUpdateRecordRecord IUpdateRecordInfo.GetStudUpdateRecord()
        {
            // 檢查畫面
            if (string.IsNullOrEmpty(cbxUpdateCode.Text))
            {
                _epUpdateCode.SetError(cbxUpdateCode, "請輸入異動代碼.");
            }

            if (_epUpdateCode.GetError(cbxUpdateCode).Length > 0)
            {
                return(null);
            }

            // 載入資料
            _UpdateRec.UpdateCode                 = _faldn.GetFormData(cbxUpdateCode, "異動代碼");
            _UpdateRec.UpdateDescription          = _faldn.GetFormData(txtDesc, "原因及事項");
            _UpdateRec.UpdateDate                 = _faldn.GetFormData(dtUpdateDate, "異動日期");
            _UpdateRec.Comment                    = _faldn.GetFormData(txtMemo, "備註");
            _UpdateRec.Department                 = _faldn.GetFormData(cbxDept, "科別");
            _UpdateRec.ClassType                  = _faldn.GetFormData(cbxClass, "班別");
            _UpdateRec.SpecialStatus              = _faldn.GetFormData(txtSpecial, "特殊身分代碼");
            _UpdateRec.StudentName                = _faldn.GetFormData(txtName, "姓名");
            _UpdateRec.StudentNumber              = _faldn.GetFormData(txtStudentNumber, "學號");
            _UpdateRec.IDNumber                   = _faldn.GetFormData(txtIDNumber, "身分證字號");
            _UpdateRec.Birthdate                  = _faldn.GetFormData(dtBirthday, "生日");
            _UpdateRec.IDNumberComment            = _faldn.GetFormData(txtIDNumber1, "註1");
            _UpdateRec.Gender                     = _faldn.GetFormData(cbxGender, "性別");
            _UpdateRec.PreviousSchool             = _faldn.GetFormData(txtSSchool, "原就讀學校");
            _UpdateRec.PreviousStudentNumber      = _faldn.GetFormData(txtSStudentNumber, "原就讀學號");
            _UpdateRec.PreviousDepartment         = _faldn.GetFormData(txtSDept, "原就讀科別");
            _UpdateRec.PreviousGradeYear          = _faldn.GetFormData(txtSGradYear, "原就讀年級");
            _UpdateRec.PreviousSchoolLastADDate   = _faldn.GetFormData(dtSLastUpdateDate, "原就讀備查日期");
            _UpdateRec.PreviousSchoolLastADNumber = _faldn.GetFormData(txtSLastDocNo, "原就讀備查文號");
            _UpdateRec.PreviousSemester           = _faldn.GetFormData(txtSSemester, "原就讀學期");
            _UpdateRec.Comment2                   = _faldn.GetFormData(txtComment2, "轉入身分別代碼");
            _UpdateRec.ADDate                     = _faldn.GetFormData(dtADDate, "核准日期");
            _UpdateRec.ADNumber                   = _faldn.GetFormData(txtADDocNo, "核准文號");

            _prlp = _faldn.GetLogData();
            return(_UpdateRec);
        }
        private void cmdPrint_Click(object sender, EventArgs e)
        {
            //// [ischoolkingdom] Vicky新增,[11-04][02]在學證明書(英文),新增預設選項
            // 檢查選項是否有設定
            if (cbxDefault_Chi.Checked == false && cbxDefault.Checked == false && cbxUserDefine.Checked == false && Student.Instance.SelectedKeys.Count < 1)
            {
                return;
            }

            if (txtCertDoc.Text.Trim() == "" || txtCertNo.Text.Trim() == "")
            {
                if (MessageBox.Show("校內文號輸入不完整,請問是否繼續列印 ?", "", MessageBoxButtons.YesNo, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button2) == DialogResult.No)
                {
                    return;
                }
            }

            sascm.SetCertDoc(txtCertDoc.Text);
            sascm.SetCertNo(txtCertNo.Text);

            sascm.SetSemester(School.DefaultSemester, false);

            // [ischoolkingdom] Vicky新增,[11-04][02]在學證明書(英文),新增cbx選項
            isDefaultTemplateChinese = cbxDefault_Chi.Checked;
            if (cbxDefault.Checked || cbxDefault_Chi.Checked)
            {
                isDefaultTemplate = true;
            }
            else
            {
                isDefaultTemplate = false;
            }

            cmdPrint.Enabled = false;
            sascm.PrintData(Student.Instance.SelectedKeys, isDefaultTemplate, isDefaultTemplateChinese);
            PermRecLogProcess prlp = new PermRecLogProcess();

            prlp.SaveLog("學生.報表", "列印", "列印" + Student.Instance.SelectedKeys.Count + "筆在學證明書資料。");

            cmdPrint.Enabled = true;
        }
Ejemplo n.º 32
0
        private void btnSave_Click(object sender, EventArgs e)
        {
            if (txtName.Text.Trim() == "")
                return;
            K12.Data.StudentRecord studRec = new K12.Data.StudentRecord();
            studRec.Name = txtName.Text;
            string StudentID = K12.Data.Student.Insert(studRec);
            PermRecLogProcess prlp = new PermRecLogProcess();
            if (chkInputData.Checked == true)
            {
                if (StudentID != "")
                {
                    Student.Instance.PopupDetailPane(StudentID);
                    Student.Instance.SyncDataBackground(StudentID);
                }
            }
            Student.Instance.SyncDataBackground(StudentID);

            prlp.SaveLog("學籍.學生", "新增學生", "新增學生姓名:" + txtName.Text);
            this.Close();
        }
Ejemplo n.º 33
0
        void bwWork_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
        {
            List <string> _ExportText = (List <string>)e.Result;

            SaveFileDialog sfd = new SaveFileDialog();

            sfd.Title        = "存檔";
            sfd.FileName     = "教育程度檔";
            sfd.AddExtension = true;
            sfd.Filter       = "文字檔 (*.txt)|*.txt|所有檔案 (*.*)|*.*";

            if (sfd.ShowDialog() == DialogResult.OK)
            {
                try
                {
                    // 需要轉換成 Big5
                    //StreamWriter sw = new StreamWriter(sfd.FileName,false,Encoding.GetEncoding(950));
                    StreamWriter sw = new StreamWriter(sfd.FileName, false, Encoding.UTF8);

                    foreach (string str in _ExportText)
                    {
                        sw.WriteLine(str);
                    }
                    sw.Flush();
                    sw.Close();
                    MessageBox.Show("完成.共產生" + _ExportText.Count + "筆學生資料");
                    PermRecLogProcess prlp = new PermRecLogProcess();
                    prlp.SaveLog("學生.學生教育程度資料", "產生", "共產生" + _ExportText.Count + "筆學生教育程度資料.");
                }
                catch
                {
                    MessageBox.Show("指定路徑無法存取。", "建立檔案失敗", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return;
                }
            }



            btnExport.Enabled = true;
        }
Ejemplo n.º 34
0
        void bkWorkUpgrd_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
        {
            PermRecLogProcess prlp = new PermRecLogProcess();

            foreach (DataGridViewRow dgv in dgClassUpgrade.Rows)
            {
                if (dgv.Cells[5].Value != null)
                {
                    prlp.SetBeforeSaveText(dgv.Cells[2].Value.ToString() + "班級名稱", dgv.Cells[2].Value.ToString());
                    prlp.SetAfterSaveText(dgv.Cells[2].Value.ToString() + "班級名稱", dgv.Cells[4].Value.ToString());
                    prlp.SetBeforeSaveText(dgv.Cells[2].Value.ToString() + "班級年級", dgv.Cells[1].Value.ToString());
                    prlp.SetAfterSaveText(dgv.Cells[2].Value.ToString() + "班級年級", dgv.Cells[3].Value.ToString());
                }
            }
            prlp.SetAction("學籍.班級升級");
            prlp.SetActionBy("學籍系統", "班級升級或畢業");
            prlp.SetDescTitle("班級調整:");
            prlp.SaveLog("", "", "", "");

            MessageBox.Show("完成");
            this.Close();
        }
Ejemplo n.º 35
0
        SHUpdateRecordRecord IUpdateRecordInfo.GetStudUpdateRecord()
        {
            // 檢查畫面
            if (string.IsNullOrEmpty(cbxUpdateCode.Text))
            {
                _epUpdateCode.SetError(cbxUpdateCode, "請輸入異動代碼.");
            }

            if (_epUpdateCode.GetError(cbxUpdateCode).Length > 0)
            {
                return(null);
            }

            // 畫面資料
            _UpdateRec.UpdateCode                 = _faldn.GetFormData(cbxUpdateCode, "資格代碼");
            _UpdateRec.UpdateDescription          = _faldn.GetFormData(txtDesc, "原因及事項");
            _UpdateRec.UpdateDate                 = _faldn.GetFormData(dtUpdateDate, "異動日期");
            _UpdateRec.Comment                    = _faldn.GetFormData(txtMemo, "備註");
            _UpdateRec.Department                 = _faldn.GetFormData(cbxDept, "科別");
            _UpdateRec.ClassType                  = _faldn.GetFormData(cbxClass, "班別");
            _UpdateRec.SpecialStatus              = _faldn.GetFormData(txtSpecial, "特殊身分代碼");
            _UpdateRec.StudentName                = _faldn.GetFormData(txtName, "姓名");
            _UpdateRec.StudentNumber              = _faldn.GetFormData(txtStudentNumber, "學號");
            _UpdateRec.IDNumber                   = _faldn.GetFormData(txtIDNumber, "身分證字號");
            _UpdateRec.Birthdate                  = _faldn.GetFormData(dtBirthday, "生日");
            _UpdateRec.IDNumberComment            = _faldn.GetFormData(txtIDNumber1, "註1");
            _UpdateRec.Gender                     = _faldn.GetFormData(cbxGender, "性別");
            _UpdateRec.GraduateSchool             = _faldn.GetFormData(txtISchool, "入學資格(畢業國中)");
            _UpdateRec.GraduateSchoolLocationCode = _faldn.GetFormData(txtISpaceCode, "所在地代碼");
            _UpdateRec.GraduateSchoolYear         = _faldn.GetFormData(txtIJHGradeYear, "國中畢業年度");
            _UpdateRec.ADDate                     = _faldn.GetFormData(dtADDate, "核准日期");
            _UpdateRec.ADNumber                   = _faldn.GetFormData(txtADDocNo, "核准文號");
            _UpdateRec.GraduateDocument           = _faldn.GetFormData(txtGradeDoc, "入學資格證明文件");
            _UpdateRec.GraduateSchoolCode         = _faldn.GetFormData(txtISchoolCode, "畢業國中學校代號");

            _prlp = _faldn.GetLogData();

            return(_UpdateRec);
        }
Ejemplo n.º 36
0
        public SemesterHistoryDetail()
        {
            InitializeComponent();



            if (User.Acl["JHSchool.Student.Detail0010"].Viewable == false && User.Acl["JHSchool.Student.Detail0010"].Editable == false)
            {
                return;
            }

            // 權限判斷,只能檢視
            if (User.Acl["JHSchool.Student.Detail0010"].Viewable)
            {
                dataGridViewX1.Enabled = false;
            }

            if (User.Acl["JHSchool.Student.Detail0010"].Editable)
            {
                dataGridViewX1.Enabled = true;
            }

            BGWorker                     = new BackgroundWorker();
            BGWorker.DoWork             += new DoWorkEventHandler(BGWorker_DoWork);
            BGWorker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(BGWorker_RunWorkerCompleted);

            ChangeManager.Add(new DataGridViewSource(dataGridViewX1));
            ChangeManager.StatusChanged += delegate(object sender, ChangeEventArgs e)
            {
                this.CancelButtonVisible = (e.Status == ValueStatus.Dirty);
                this.SaveButtonVisible   = (e.Status == ValueStatus.Dirty);
            };

            JHSemesterHistory.AfterUpdate += new EventHandler <K12.Data.DataChangedEventArgs>(JHSemesterHistory_AfterUpdate);
            prlp = new PermRecLogProcess();


            Disposed += new EventHandler(SemesterHistoryDetail_Disposed);
        }
        /// <summary>
        /// 異動資料
        /// </summary>
        /// <returns></returns>
        SHSchool.Data.SHUpdateRecordRecord IUpdateRecordInfo.GetStudUpdateRecord()
        {
            // 檢查畫面
            if (string.IsNullOrEmpty(cbxUpdateCode.Text))
                _epUpdateCode.SetError(cbxUpdateCode, "請輸入異動代碼.");

            if (_epUpdateCode.GetError(cbxUpdateCode).Length > 0)
                return null;

            // 載入資料
            _UpdateRec.UpdateCode = _faldn.GetFormData(cbxUpdateCode, "異動代碼");
            _UpdateRec.UpdateDescription = _faldn.GetFormData(txtDesc, "原因及事項");
            _UpdateRec.UpdateDate = _faldn.GetFormData(dtUpdateDate, "異動日期");
            _UpdateRec.Comment = _faldn.GetFormData( txtMemo, "備註");
            _UpdateRec.Department = _faldn.GetFormData( cbxDept, "科別");
            _UpdateRec.ClassType = _faldn.GetFormData( cbxClass, "班別");
            _UpdateRec.SpecialStatus = _faldn.GetFormData(txtSpecial, "特殊身分代碼");
            _UpdateRec.StudentName = _faldn.GetFormData( txtName, "姓名");
            _UpdateRec.StudentNumber = _faldn.GetFormData( txtStudentNumber, "學號");
            _UpdateRec.IDNumber = _faldn.GetFormData(txtIDNumber, "身分證字號");
            _UpdateRec.Birthdate = _faldn.GetFormData( dtBirthday, "生日");
            _UpdateRec.IDNumberComment = _faldn.GetFormData( txtIDNumber1, "註1");
            _UpdateRec.Gender = _faldn.GetFormData(cbxGender, "性別");
            _UpdateRec.PreviousSchool = _faldn.GetFormData( txtSSchool, "原就讀學校");
            _UpdateRec.PreviousStudentNumber = _faldn.GetFormData( txtSStudentNumber, "原就讀學號");
            _UpdateRec.PreviousDepartment = _faldn.GetFormData(txtSDept, "原就讀科別");
            _UpdateRec.PreviousGradeYear = _faldn.GetFormData(txtSGradYear, "原就讀年級");
            _UpdateRec.PreviousSchoolLastADDate = _faldn.GetFormData( dtSLastUpdateDate, "原就讀備查日期");
            _UpdateRec.PreviousSchoolLastADNumber = _faldn.GetFormData( txtSLastDocNo, "原就讀備查文號");
            _UpdateRec.PreviousSemester = _faldn.GetFormData(txtSSemester, "原就讀學期");
            _UpdateRec.Comment2 = _faldn.GetFormData(txtComment2, "轉入身分別代碼");
            _UpdateRec.ADDate = _faldn.GetFormData(dtADDate, "核准日期");
            _UpdateRec.ADNumber = _faldn.GetFormData(txtADDocNo, "核准文號");

            _prlp = _faldn.GetLogData();
            return _UpdateRec;
        }
        /// <summary>
        /// 新生異動
        /// </summary>
        public UpdateRecordInfo03(SHUpdateRecordRecord UpdateRec, PermRecLogProcess prlp, List<XElement> UpdateCodeElms)
        {
            InitializeComponent();
            cbxGender.Items.Add("男");
            cbxGender.Items.Add("女");

            _UpdateRec = UpdateRec;
            _prlp = prlp;
            _UpdateCodeElms = UpdateCodeElms;
            _UpdateCoodeList = (from x in _UpdateCodeElms select x.Element("代號").Value + " " + x.Element("原因及事項").Value).ToList();
            _DeptList = SHDepartment.SelectAll();
            _epUpdateCode = new ErrorProvider();

            _UCodeDict = Utility.UITool.ConvertUpdateCodeDescDict(_UpdateCodeElms);

            _faldn = new UpdateRecordModule_SH_D.Utility.FormAndLogDataManager(_prlp);

            // 載入資料
            // 載入預設前級畢業資訊
            Dictionary<string, DAL.SchoolData> schoolDataDict = new Dictionary<string, DAL.SchoolData>();

            foreach (XElement elm in BL.Get.JHSchoolList().Elements("學校"))
            {
                DAL.SchoolData sd = new DAL.SchoolData();
                sd.SchoolCode = elm.Attribute("代碼").Value;
                sd.SchoolLocation = elm.Attribute("所在地").Value;
                sd.SchoolName = elm.Attribute("名稱").Value;
                sd.SchoolLocationCode = elm.Attribute("所在地代碼").Value;
                if (sd.SchoolCode.Length > 3)
                    sd.SchoolType = sd.SchoolCode.Substring(2, 1);

                string s1 = elm.Attribute("所在地").Value + elm.Attribute("名稱").Value;

                if (!schoolDataDict.ContainsKey(s1))
                    schoolDataDict.Add(s1, sd);

                if (!schoolDataDict.ContainsKey(sd.SchoolName))
                    schoolDataDict.Add(sd.SchoolName, sd);

            }

            SHBeforeEnrollmentRecord brfRec = SHBeforeEnrollment.SelectByStudentID(_UpdateRec.StudentID);

            if (string.IsNullOrEmpty(_UpdateRec.GraduateSchool))
                _UpdateRec.GraduateSchool = brfRec.School;
            if (string.IsNullOrEmpty(_UpdateRec.GraduateSchoolYear))
                _UpdateRec.GraduateSchoolYear = brfRec.GraduateSchoolYear;

            // 用學校名稱解析
            if (!string.IsNullOrEmpty(brfRec.School))
            {
                string key = brfRec.SchoolLocation.Replace("台", "臺") + brfRec.School.Trim();
                if (schoolDataDict.ContainsKey(key))
                {
                    if (string.IsNullOrEmpty(_UpdateRec.GraduateSchoolCode))
                    {
                        _UpdateRec.GraduateSchoolCode = schoolDataDict[key].SchoolCode;
                        _UpdateRec.GraduateSchoolLocationCode = schoolDataDict[key].SchoolLocationCode;
                    }
                }
            }

            cbxUpdateCode = _faldn.SetFormData(_UpdateRec.UpdateCode, cbxUpdateCode, "資格代碼");
            txtDesc = _faldn.SetFormData(_UpdateRec.UpdateDescription, txtDesc, "原因及事項");
            dtUpdateDate = _faldn.SetFormData(_UpdateRec.UpdateDate, dtUpdateDate, "異動日期");
            txtMemo = _faldn.SetFormData(_UpdateRec.Comment, txtMemo, "備註");
            cbxDept = _faldn.SetFormData(_UpdateRec.Department, cbxDept, "科別");
            cbxClass = _faldn.SetFormData(_UpdateRec.ClassType, cbxClass, "班別");
            txtSpecial = _faldn.SetFormData(_UpdateRec.SpecialStatus, txtSpecial, "特殊身分代碼");
            txtName = _faldn.SetFormData(_UpdateRec.StudentName, txtName, "姓名");
            txtStudentNumber = _faldn.SetFormData(_UpdateRec.StudentNumber, txtStudentNumber, "學號");
            txtIDNumber = _faldn.SetFormData(_UpdateRec.IDNumber, txtIDNumber, "身分證字號");
            dtBirthday = _faldn.SetFormData(_UpdateRec.Birthdate, dtBirthday, "生日");
            txtIDNumber1 = _faldn.SetFormData(_UpdateRec.IDNumberComment, txtIDNumber1, "註1");
            cbxGender = _faldn.SetFormData(_UpdateRec.Gender, cbxGender, "性別");
            txtISchool = _faldn.SetFormData(_UpdateRec.GraduateSchool, txtISchool, "入學資格(畢業國中)");
            txtISpaceCode = _faldn.SetFormData(_UpdateRec.GraduateSchoolLocationCode,txtISpaceCode,"所在地代碼");
            txtISchoolCode = _faldn.SetFormData(_UpdateRec.GraduateSchoolCode, txtISchoolCode, "畢業國中學校代號");
            txtIJHGradeYear = _faldn.SetFormData(_UpdateRec.GraduateSchoolYear, txtIJHGradeYear, "國中畢業年度");
            dtADDate = _faldn.SetFormData(_UpdateRec.ADDate, dtADDate, "核准日期");
            txtADDocNo = _faldn.SetFormData(_UpdateRec.ADNumber, txtADDocNo, "核准文號");
            txtGradeDoc = _faldn.SetFormData(_UpdateRec.GraduateDocument, txtGradeDoc, "入學資格證明文件");
        }
        SHUpdateRecordRecord IUpdateRecordInfo.GetStudUpdateRecord()
        {
            // 檢查畫面
            if (string.IsNullOrEmpty(cbxUpdateCode.Text))
                _epUpdateCode.SetError(cbxUpdateCode, "請輸入異動代碼.");

            if (_epUpdateCode.GetError(cbxUpdateCode).Length > 0)
                return null;

            // 畫面資料
            _UpdateRec.UpdateCode = _faldn.GetFormData(cbxUpdateCode, "資格代碼");
            _UpdateRec.UpdateDescription = _faldn.GetFormData( txtDesc, "原因及事項");
            _UpdateRec.UpdateDate = _faldn.GetFormData( dtUpdateDate, "異動日期");
            _UpdateRec.Comment = _faldn.GetFormData(txtMemo, "備註");
            _UpdateRec.Department = _faldn.GetFormData(cbxDept, "科別");
            _UpdateRec.ClassType = _faldn.GetFormData(cbxClass, "班別");
            _UpdateRec.SpecialStatus = _faldn.GetFormData(txtSpecial, "特殊身分代碼");
            _UpdateRec.StudentName = _faldn.GetFormData(txtName, "姓名");
            _UpdateRec.StudentNumber = _faldn.GetFormData(txtStudentNumber, "學號");
            _UpdateRec.IDNumber = _faldn.GetFormData( txtIDNumber, "身分證字號");
            _UpdateRec.Birthdate = _faldn.GetFormData(dtBirthday, "生日");
            _UpdateRec.IDNumberComment = _faldn.GetFormData(txtIDNumber1, "註1");
            _UpdateRec.Gender = _faldn.GetFormData(cbxGender, "性別");
            _UpdateRec.GraduateSchool = _faldn.GetFormData(txtISchool, "入學資格(畢業國中)");
            _UpdateRec.GraduateSchoolLocationCode = _faldn.GetFormData(txtISpaceCode, "所在地代碼");
            _UpdateRec.GraduateSchoolYear= _faldn.GetFormData( txtIJHGradeYear, "國中畢業年度");
            _UpdateRec.ADDate = _faldn.GetFormData(dtADDate, "核准日期");
            _UpdateRec.ADNumber =_faldn.GetFormData(txtADDocNo, "核准文號");
            _UpdateRec.GraduateDocument = _faldn.GetFormData(txtGradeDoc, "入學資格證明文件");
            _UpdateRec.GraduateSchoolCode = _faldn.GetFormData(txtISchoolCode, "畢業國中學校代號");

            _prlp = _faldn.GetLogData();

            return _UpdateRec;
        }
        SHSchool.Data.SHUpdateRecordRecord IUpdateRecordInfo.GetStudUpdateRecord()
        {
            // 檢查畫面
            if (string.IsNullOrEmpty(cbxUpdateCode.Text))
                _epUpdateCode.SetError(cbxUpdateCode, "請輸入異動代碼.");

            if (_epUpdateCode.GetError(cbxUpdateCode).Length > 0)
                return null;

            // 畫面資料
            _UpdateRec.UpdateCode = _faldn.GetFormData(cbxUpdateCode, "異動代碼");
            _UpdateRec.UpdateDescription = _faldn.GetFormData(txtDesc, "原因及事項");
            _UpdateRec.UpdateDate = _faldn.GetFormData(dtUpdateDate, "異動日期");
            _UpdateRec.Comment = _faldn.GetFormData(txtMemo, "備註");
            _UpdateRec.Department = _faldn.GetFormData( cbxDept, "科別");
            _UpdateRec.ClassType = _faldn.GetFormData( cbxClass, "班別");
            _UpdateRec.StudentName = _faldn.GetFormData( txtName, "姓名");
            _UpdateRec.StudentNumber = _faldn.GetFormData( txtStudentNumber, "學號");
            _UpdateRec.IDNumber = _faldn.GetFormData( txtIDNumber, "身分證字號");
            _UpdateRec.Birthdate = _faldn.GetFormData(dtBirthday, "生日");
            _UpdateRec.IDNumberComment = _faldn.GetFormData(txtIDNumber1, "註1");
            _UpdateRec.Gender = _faldn.GetFormData(cbxGender, "性別");
            _UpdateRec.LastADDate = _faldn.GetFormData(dtLastUpdateDate, "備查日期");
            _UpdateRec.LastADNumber = _faldn.GetFormData( txtLastDocNo, "備查文號");
            _UpdateRec.LastUpdateCode = _faldn.GetFormData( txtLastUpdateCode, "最後異動代號");
            _UpdateRec.GraduateCertificateNumber = _faldn.GetFormData( txtGradeDocNo, "畢業證書字號");
            _UpdateRec.ADDate = _faldn.GetFormData(dtADDate, "核准日期");
            _UpdateRec.ADNumber = _faldn.GetFormData(txtADDocNo, "核准文號");
            _UpdateRec.SpecialStatus = _faldn.GetFormData(txtSpecial, "特殊身分代碼");
            _UpdateRec.ExpectGraduateSchoolYear = _faldn.GetFormData(txtSHSchoolYear, "應畢業學年度");

            _prlp = _faldn.GetLogData();
            return _UpdateRec;
        }
        public override void InitializeImport(SmartSchool.API.PlugIn.Import.ImportWizard wizard)
        {
            // 取得學生資料
            Dictionary<string, SHStudentRecord> Students = new Dictionary<string, SHStudentRecord>();

            // 取得異動資料
            Dictionary<string, List<SHUpdateRecordRecord>> UpdateRecs = new Dictionary<string, List<SHUpdateRecordRecord>>();
            wizard.PackageLimit = 3000;
            wizard.ImportableFields.AddRange("班別", "特殊身份代碼", "異動科別", "年級", "異動學號", "異動姓名", "身分證號", "註1", "異動代碼", "異動日期", "原因及事項", "新學號", "更正後資料", "舊班別", "舊科別代碼", "備查日期", "備查文號", "核准日期", "核准文號", "備註");
            wizard.RequiredFields.AddRange("異動代碼", "異動日期");
            wizard.ValidateStart += delegate(object sender, SmartSchool.API.PlugIn.Import.ValidateStartEventArgs e)
            {
                Students.Clear();
                UpdateRecs.Clear();

                // 取得學生資料
                foreach (SHStudentRecord studRec in SHStudent.SelectByIDs(e.List))
                    if (!Students.ContainsKey(studRec.ID))
                        Students.Add(studRec.ID, studRec);
                foreach (string str in Students.Keys)
                {
                    List<SHUpdateRecordRecord> UpdRecList = new List<SHUpdateRecordRecord>();
                    UpdateRecs.Add(str, UpdRecList);
                }

                // 取得異動
                MultiThreadWorker<string> loader1 = new MultiThreadWorker<string>();
                loader1.MaxThreads = 3;
                loader1.PackageSize = 250;
                loader1.PackageWorker += delegate(object sender1, PackageWorkEventArgs<string> e1)
                {
                    foreach (SHUpdateRecordRecord UpdRec in SHUpdateRecord.SelectByStudentIDs(e.List))
                    {

                        // 過濾非符合標準的異動(目前是學籍)
                        if(!_UpdateCodeList.Contains(UpdRec.UpdateCode))
                            continue;

                            if (UpdateRecs.ContainsKey(UpdRec.StudentID))
                                UpdateRecs[UpdRec.StudentID].Add(UpdRec);
                    }
                };
                loader1.Run(e.List);
            };

            wizard.ValidateRow += delegate(object sender, SmartSchool.API.PlugIn.Import.ValidateRowEventArgs e)
            {
                int i = 0;
                DateTime dt;
                // 檢查學生是否存在
                SHStudentRecord studRec = null;
                if (Students.ContainsKey(e.Data.ID))
                    studRec = Students[e.Data.ID];
                else
                {
                    e.ErrorMessage = "沒有這位學生" + e.Data.ID;
                    return;
                }

                // 驗證格式資料
                bool InputFormatPass = true;
                foreach (string field in e.SelectFields)
                {
                    string value = e.Data[field].Trim();
                    //// 驗證$無法匯入
                    //if (value.IndexOf('$') > -1)
                    //{
                    //    e.ErrorFields.Add(field, "儲存格有$無法匯入.");
                    //    break;
                    //}
                    switch (field)
                    {
                        default:
                            break;

                        //// 班別
                        //case "班別": break;
                        //// 特殊身份代碼
                        //case "特殊身份代碼": break;
                        //// 異動科別
                        //case "異動科別": break;
                        //// 年級
                        //case "年級": break;
                        //// 異動學號
                        //case "異動學號": break;
                        //// 異動姓名
                        //case "異動姓名": break;
                        //// 身分證號
                        //case "身分證號": break;
                        //// 註1
                        //case "註1": break;
                        //// 異動種類
                        //case "異動種類": break;
                        // 異動代碼
                        case "異動代碼":
                            if (!_UpdateCodeList.Contains(value))
                            {
                                InputFormatPass &= false;
                                e.ErrorFields.Add(field, "非學籍異動代碼!");
                            }
                            break;
                        // 異動日期(必填)
                        case "異動日期":
                            DateTime dtC1;
                            if (DateTime.TryParse(value, out dtC1))
                            { }
                            else
                            {
                                InputFormatPass &= false;
                                e.ErrorFields.Add(field, "日期錯誤!");
                            }

                            break;

                        case "備查日期":
                        case "核准日期":
                            DateTime dtC2;
                            if (value.Trim() != "")
                            {
                                if (DateTime.TryParse(value, out dtC2))
                                { }
                                else
                                {
                                    InputFormatPass &= false;
                                    e.ErrorFields.Add(field, "日期錯誤!");
                                }
                            }
                            break;
                        //// 原因及事項
                        //case "原因及事項": break;
                        //// 新學號
                        //case "新學號": break;
                        //// 更正後資料
                        //case "更正後資料": break;
                        //// 舊班別
                        //case "舊班別": break;
                        //// 舊科別代碼
                        //case "舊科別代碼": break;
                        //// 備查日期
                        //case "備查日期":
                        //    break;
                        //// 備查文號
                        //case "備查文號": break;
                        //// 核准日期
                        //case "核准日期": break;
                        //// 核准文號
                        //case "核准文號": break;
                        //// 備註
                        //case "備註": break;
                    }
                }

            };

            wizard.ImportPackage += delegate(object sender, SmartSchool.API.PlugIn.Import.ImportPackageEventArgs e)
            {
                Dictionary<string, List<RowData>> id_Rows = new Dictionary<string, List<RowData>>();
                foreach (RowData data in e.Items)
                {
                    if (!id_Rows.ContainsKey(data.ID))
                        id_Rows.Add(data.ID, new List<RowData>());
                    id_Rows[data.ID].Add(data);
                }

                List<SHUpdateRecordRecord> InsertList = new List<SHUpdateRecordRecord>();
                List<SHUpdateRecordRecord> UpdateList = new List<SHUpdateRecordRecord>();

                // 檢查新增或更新方式:
                // 每筆 Key 為:異動日期+異動代碼+原因及事項,如果三者內容相同更新,如果不同就新增。
                foreach (string id in id_Rows.Keys)
                {
                    DateTime dt;

                    // 讀取工作表內資料
                    foreach (RowData data in id_Rows[id])
                    {
                        // 當異動記錄內沒有工作表讀取轉換後學生ID,就跳過。
                        if (!UpdateRecs.ContainsKey(id))
                            continue;

                        DateTime.TryParse(data["異動日期"], out dt);

                        // 異動代碼
                        string UpdateCode = string.Empty;
                        if (data.ContainsKey("異動代碼"))
                            UpdateCode = data["異動代碼"];

                        // 取得原因及事項
                        string UpdateDesc = string.Empty;
                        if (data.ContainsKey("原因及事項"))
                            UpdateDesc = data["原因及事項"];

                        SHUpdateRecordRecord updateRec = null;
                        // 異動日期+異動代碼 (如果相同有當更新,不同就新增)
                        foreach (SHUpdateRecordRecord urr in UpdateRecs[id])
                        {
                            if (UpdateCode == urr.UpdateCode)
                            {
                                DateTime dt1;
                                DateTime.TryParse(urr.UpdateDate, out dt1);
                                if (dt == dt1)
                                {
                                    // 使用原因及事項當作Key
                                    if(UpdateDesc == urr.UpdateDescription )
                                        updateRec = urr;
                                }
                            }
                        }
                        bool isInsert = true;

                        if (updateRec == null)
                        {
                            updateRec = new SHUpdateRecordRecord();
                            updateRec.StudentID = id;
                        }
                        else
                            isInsert = false;

                        // 這段在做資料填入異動紀錄
                        foreach (string field in e.ImportFields)
                        {
                            string value = data[field].Trim();
                            switch (field)
                            {
                                // 班別
                                case "班別":
                                    updateRec.ClassType = value;
                                    break;
                                // 特殊身份代碼
                                case "特殊身份代碼":
                                    updateRec.SpecialStatus = value;
                                    break;
                                // 異動科別
                                case "異動科別":
                                    updateRec.Department = value;
                                    break;
                                // 年級
                                case "年級":
                                    updateRec.GradeYear = value;
                                    break;
                                // 異動學號
                                case "異動學號":
                                    updateRec.StudentNumber = value;
                                    break;
                                // 異動姓名
                                case "異動姓名":
                                    updateRec.StudentName = value;
                                    break;
                                // 身分證號
                                case "身分證號":
                                    updateRec.IDNumber = value;
                                    break;
                                // 註1
                                case "註1":
                                    updateRec.IDNumberComment = value;
                                    break;
                                //// 異動種類
                                //case "異動種類":
                                //    break;
                                // 異動代碼
                                case "異動代碼":
                                    updateRec.UpdateCode = value;
                                    break;
                                // 異動日期
                                case "異動日期":
                                    DateTime dt1;
                                    if (DateTime.TryParse(value, out dt1))
                                        updateRec.UpdateDate = dt1.ToShortDateString();
                                    break;
                                // 原因及事項
                                case "原因及事項":
                                    updateRec.UpdateDescription = value;
                                    break;
                                // 新學號
                                case "新學號":
                                    updateRec.NewStudentNumber = value;
                                    break;
                                // 更正後資料
                                case "更正後資料":
                                    updateRec.NewData = value;
                                    break;
                                // 舊班別
                                case "舊班別":
                                    updateRec.OldClassType = value;
                                    break;
                                // 舊科別代碼
                                case "舊科別代碼":
                                    updateRec.OldDepartmentCode = value;
                                    break;
                                // 備查日期
                                case "備查日期":
                                    DateTime dt2;
                                    if (DateTime.TryParse(value,out dt2))
                                        updateRec.LastADDate = dt2.ToShortDateString ();
                                    break;
                                // 備查文號
                                case "備查文號":
                                    updateRec.LastADNumber = value;
                                    break;
                                // 核准日期
                                case "核准日期":
                                    DateTime dt3;
                                    if(DateTime.TryParse(value, out dt3))
                                        updateRec.ADDate = dt3.ToShortDateString();
                                    break;
                                // 核准文號
                                case "核准文號":
                                    updateRec.ADNumber = value;
                                    break;
                                // 備註
                                case "備註":
                                    updateRec.GraduateComment = value;
                                    break;
                            }
                        }

                        if (string.IsNullOrEmpty(updateRec.StudentID) || string.IsNullOrEmpty(updateRec.UpdateDate) || string.IsNullOrEmpty(updateRec.UpdateCode))
                            continue;
                        else
                        {
                            if (isInsert)
                                InsertList.Add(updateRec);
                            else
                                UpdateList.Add(updateRec);
                        }
                    }

                }

                try
                {
                    if (InsertList.Count > 0)
                        Insert(InsertList);

                    if (UpdateList.Count > 0)
                        Update(UpdateList);

                    PermRecLogProcess prlp = new PermRecLogProcess();
                    prlp.SaveLog("學生.匯入異動", "匯入學籍異動", "匯入學籍異動:共新增" + InsertList.Count + "筆資料,共更新:" + UpdateList.Count + "筆資料");
                    SmartSchool.StudentRelated.Student.Instance.SyncAllBackground();
                }
                catch (Exception ex) { }
            };
        }
        /// <summary>
        /// 學籍異動
        /// </summary>
        public UpdateRecordInfo01()
        {
            SHUpdateRecordRecord rec = new SHUpdateRecordRecord();

            InitializeComponent();
            cbxGender.Items.Add("男");
            cbxGender.Items.Add("女");

            _UpdateRec = UpdateRec;
            _prlp = prlp;
            _UpdateCodeElms = UpdateCodeElms;
            _epUpdateCode = new ErrorProvider();

            _UpdateCoodeList = (from x in _UpdateCodeElms select x.Element("代號").Value + " " + x.Element("原因及事項").Value).ToList();
            _DeptList =SHDepartment.SelectAll();

            // 更正學籍顯示對照用
            _updateCodeDict4 = new Dictionary<string, string>();

            // 日進校不同,所以需要檢查:
                // 日校
                _updateCodeDict4.Add("401", "新學號");
                _updateCodeDict4.Add("402", "新姓名");
                _updateCodeDict4.Add("403", "新性別");
                _updateCodeDict4.Add("404", "新籍貫");
                _updateCodeDict4.Add("405", "新生日");
                _updateCodeDict4.Add("406", "新科別");
                _updateCodeDict4.Add("407", "新身分證號");
                _updateCodeDict4.Add("408", "入學資格學校名稱");
                _updateCodeDict4.Add("409", "特殊身分");
                _updateCodeDict4.Add("499", "其他學籍事項");

                if (string.IsNullOrEmpty(_UpdateRec.ExpectGraduateSchoolYear))
                {
                    SHLeaveInfoRecord shl = SHLeaveInfo.SelectByStudentID(_UpdateRec.StudentID);
                    if(shl.SchoolYear.HasValue )
                        _UpdateRec.ExpectGraduateSchoolYear = shl.SchoolYear.Value.ToString();
                }

            _UCodeDict = Utility.UITool.ConvertUpdateCodeDescDict(_UpdateCodeElms);

            _faldn = new UpdateRecordModule_SH_D.Utility.FormAndLogDataManager(_prlp);

            if (!string.IsNullOrEmpty(_UpdateRec.NewStudentNumber))
            {
                int i;
                if (int.TryParse(_UpdateRec.NewStudentNumber.Trim(), out i))
                {
                    _UpdateRec.NewData = i.ToString();
                    _UpdateRec.NewStudentNumber = i.ToString();
                }
                else
                    _UpdateRec.NewStudentNumber = "";
            }

            // 載入資料
            cbxUpdateCode = _faldn.SetFormData(_UpdateRec.UpdateCode, cbxUpdateCode, "異動代碼");
            txtDesc = _faldn.SetFormData(_UpdateRec.UpdateDescription, txtDesc, "原因及事項");
            dtUpdateDate = _faldn.SetFormData(_UpdateRec.UpdateDate, dtUpdateDate, "異動日期");
            txtMemo = _faldn.SetFormData(_UpdateRec.Comment,txtMemo,"備註");
            cbxDept = _faldn.SetFormData(_UpdateRec.Department, cbxDept, "科別");
            cbxClass = _faldn.SetFormData(_UpdateRec.ClassType, cbxClass, "班別");
            txtSpecial = _faldn.SetFormData(_UpdateRec.SpecialStatus,txtSpecial,"特殊身分代碼");
            txtName = _faldn.SetFormData(_UpdateRec.StudentName, txtName, "姓名");
            txtStudentNumber = _faldn.SetFormData(_UpdateRec.StudentNumber ,txtStudentNumber,"學號");
            txtIDNumber = _faldn.SetFormData(_UpdateRec.IDNumber,txtIDNumber,"身分證字號");
            txtNewData = _faldn.SetFormData(_UpdateRec.NewData, txtNewData, "新資料");
            txtIDNumber1 = _faldn.SetFormData(_UpdateRec.IDNumberComment,txtIDNumber1,"註1");
            txtIDNumber2 = _faldn.SetFormData(_UpdateRec.Comment2 , txtIDNumber2, "註2");
            dtLastUpdateDate = _faldn.SetFormData(_UpdateRec.LastADDate, dtLastUpdateDate, "備查日期");
            txtLastDocNo = _faldn.SetFormData(_UpdateRec.LastADNumber, txtLastDocNo, "備查文號");
            dtADDate = _faldn.SetFormData(_UpdateRec.ADDate, dtADDate, "核准日期");
            txtADDocNo = _faldn.SetFormData(_UpdateRec.ADNumber, txtADDocNo, "核准文號");
            cbxGender = _faldn.SetFormData(_UpdateRec.Gender, cbxGender, "性別");
            dtBirthday = _faldn.SetFormData(_UpdateRec.Birthdate, dtBirthday, "生日");
            txtSHSchoolYear = _faldn.SetFormData(_UpdateRec.ExpectGraduateSchoolYear, txtSHSchoolYear, "應畢業學年度");
        }
 public FormAndLogDataManager(PermRecLogProcess LogData)
 {
     _prlp = LogData;
 }