private void LoadBatchList() { lstList.SuspendLayout(); lstList.Items.Clear(); KeyValuePair <string, string> kvp;//= (KeyValuePair<string, string>)cboSchoolYear.SelectedItem; string schoolYear; if (cboSchoolYear.SelectedItem == null) { return; } else { kvp = (KeyValuePair <string, string>)cboSchoolYear.SelectedItem; schoolYear = kvp.Key; } DSResponse dsrsp = QueryStudent.GetUpdateRecordBatchBySchoolYear(schoolYear); DSXmlHelper helper = dsrsp.GetContent(); foreach (XmlNode node in helper.GetElements("UpdateRecordBatch")) { string name = node.SelectSingleNode("Name").InnerText; string adn = node.SelectSingleNode("ADNumber").InnerText; int imageIndex = !string.IsNullOrEmpty(adn) ? 1 : 0; string id = node.Attributes["ID"].Value; ListViewItem item = new ListViewItem(name, imageIndex); item.Tag = id; lstList.Items.Add(item); } lstList.ResumeLayout(); }
public List <XmlElement> GetExpectantList() { List <XmlElement> list = new List <XmlElement>(); list.AddRange(QueryStudent.GetUpdateRecordByCode(_CodeList).GetContent().GetElements("UpdateRecord")); return(list); }
public List <System.Xml.XmlElement> GetExpectantList() { List <XmlElement> list = new List <XmlElement>(); foreach (XmlElement var in QueryStudent.GetUpdateRecordByCode(strCodeList).GetContent().GetElements("UpdateRecord")) { if (var.SelectSingleNode("GradeYear").InnerText != "延修生") { list.Add(var); } } return(list); }
private void btnDelete_Click(object sender, EventArgs e) { string id = ""; string batchName = ""; string schoolYear = ""; string semester = ""; if (itmPanelLeft.SelectedItems.Count < 1) { return; } //if (lstList.FocusedItem == null) // return; foreach (ButtonItem item in itmPanelLeft.SelectedItems) { if (item.Checked == true) { id = item.Tag.ToString(); } } if (id != "") { DSResponse dsrsp = QueryStudent.GetUpdateRecordBatch(id); DSXmlHelper helper = dsrsp.GetContent(); //填上名冊的 學年、學期、名稱 foreach (XmlNode node in helper.GetElements("UpdateRecordBatch")) { schoolYear = node.SelectSingleNode("SchoolYear").InnerText; semester = node.SelectSingleNode("Semester").InnerText; batchName = node.SelectSingleNode("Name").InnerText; } if (MsgBox.Show("您確定刪除該名冊及其內容?", "確定", MessageBoxButtons.YesNo) == DialogResult.Yes) { UpdateRecordBatch.DeleteBatch(id); // log,2018/3/1 穎驊新增,因應高雄 [10-03][01] 整個學年度核准過的文號的異動名冊全部不見了 項目 // 本異動名冊 原只有新增會有系統紀錄,現在調整刪除、登打文號都會有紀錄 JHSchool.PermRecLogProcess prlp = new JHSchool.PermRecLogProcess(); string desc = "刪除" + schoolYear + "學年度,第" + semester + "學期," + batchName + "名冊"; prlp.SaveLog("教務.名冊", "刪除", desc); Initialize(); LoadBatchList(); } } }
/// <summary> /// 初始化 /// </summary> private void Initialize() { buttonX1.Visible = false; buttonX2.Visible = false; lblADName1.Text = ""; lblADName2.Text = ""; lblADName3.Text = ""; lblADInfo.Text = ""; lblADCounter.Text = ""; lblADName3.Text = ""; // 還不能用的控制項 disabled btnDelete.Enabled = false; btnAD.Enabled = false; lblListContent.Text = ""; lblAD.Text = ""; listView.Clear(); // 載入現有名冊中的學年度清單 DSResponse dsrsp = QueryStudent.GetSchoolYearList(); DSXmlHelper helper = dsrsp.GetContent(); cboSchoolYear.SelectedItem = null; cboSchoolYear.Items.Clear(); foreach (XmlNode node in helper.GetElements("SchoolYear")) { string year = node.InnerText; string schoolYear = year + " 學年度"; KeyValuePair <string, string> kvp = new KeyValuePair <string, string>(year, schoolYear); cboSchoolYear.Items.Add(kvp); } cboSchoolYear.DisplayMember = "Value"; cboSchoolYear.ValueMember = "Key"; // 預選為當學年度 int selectedIndex = 0; if (cboSchoolYear.Items.Count > 0) { for (int i = 0; i < cboSchoolYear.Items.Count; i++) { KeyValuePair <string, string> kvp = (KeyValuePair <string, string>)cboSchoolYear.Items[i]; if (kvp.Key == CurrentUser.Instance.SchoolYear.ToString()) { selectedIndex = i; break; } } cboSchoolYear.SelectedIndex = selectedIndex; } }
private void ValidateLoginID() { _errors.SetError(txtLoginID, string.Empty); if (string.IsNullOrEmpty(txtLoginID.Text)) { _errors.SetError(txtLoginID, string.Empty); return; } if (QueryStudent.LoginIDExists(txtLoginID.Text, PrimaryKey)) { _errors.SetError(txtLoginID, "帳號重覆,請重新選擇。"); } }
// 檢查 private void ValidateIDNumber() { _errors.SetError(txtSSN, string.Empty); if (string.IsNullOrEmpty(txtSSN.Text)) { _errors.SetError(txtSSN, string.Empty); return; } if (QueryStudent.IDNumberExists(PrimaryKey, txtSSN.Text)) { _errors.SetError(txtSSN, "身分證號重覆,請確認資料。"); } }
private void LoadBatchList() { KeyValuePair <string, string> kvp; itmPanelLeft.SuspendLayout(); itmPanelLeft.Items.Clear(); string schoolYear; if (cboSchoolYear.SelectedItem == null) { return; } else { kvp = (KeyValuePair <string, string>)cboSchoolYear.SelectedItem; schoolYear = kvp.Key; } DSResponse dsrsp = QueryStudent.GetUpdateRecordBatchBySchoolYear(schoolYear); DSXmlHelper helper = dsrsp.GetContent(); foreach (XmlNode node in helper.GetElements("UpdateRecordBatch")) { string name = node.SelectSingleNode("Name").InnerText; string adn = node.SelectSingleNode("ADNumber").InnerText; int imageIndex = !string.IsNullOrEmpty(adn) ? 1 : 0; string id = node.Attributes["ID"].Value; ButtonItem btnItem = new ButtonItem(); btnItem.Tag = id; btnItem.Name = id + name; btnItem.Text = name; btnItem.OptionGroup = "itmPanelLeftItem"; btnItem.ImageIndex = imageIndex; btnItem.ButtonStyle = DevComponents.DotNetBar.eButtonStyle.ImageAndText; btnItem.Click += new EventHandler(btnItem_Click); itmPanelLeft.Items.Add(btnItem); //ListViewItem item = new ListViewItem(name, imageIndex); //item.Tag = id; //lstList.Items.Add(item); } itmPanelLeft.ResumeLayout(); itmPanelLeft.Refresh(); //lstList.ResumeLayout(); }
private void ValidateStudentNumber() { if (string.IsNullOrEmpty(txtStudentID.Text)) { _errors.SetError(txtStudentID, string.Empty); return; //空白不檢查。 } if (QueryStudent.StudentNumberExists(RunningID, txtStudentID.Text)) { _errors.SetError(txtStudentID, "學號重覆,請確認資料。"); } else { _errors.SetError(txtStudentID, string.Empty); } }
public void SetUpdateValue(string updateRecordId) { _Action = UpdateRecordAction.Update; _UpdateRecordID = updateRecordId; //DSResponse dsrsp = SmartSchool.Feature.QueryStudent.GetUpdateRecord(updateRecordId); DSResponse dsrsp = QueryStudent.GetUpdateRecord(updateRecordId); XmlElement element = dsrsp.GetContent().GetElement("UpdateRecord"); foreach (XmlNode node in element.ChildNodes) { if (node.Name != "ContextInfo") { if (node.Name == "UpdateCode") { _UpdateCodeLoadedEvent.WaitOne(); foreach (UpdateRecordType type in new UpdateRecordType[] { UpdateRecordType.新生異動, UpdateRecordType.轉入異動, UpdateRecordType.學籍異動, UpdateRecordType.畢業異動 }) { if (_UpdateCodeSynopsis.ContainsKey(type.ToString()) && _UpdateCodeSynopsis[type.ToString()].ContainsKey(node.InnerText)) { Style = type; break; } } NewData.ChangeNewDataText(node.InnerText); } this.SetValue(node.Name, node.InnerText); } else { if (node.SelectSingleNode("ContextInfo") != null) { foreach (XmlNode contextInfo in node.SelectSingleNode("ContextInfo").ChildNodes) { this.SetValue(contextInfo.Name, contextInfo.InnerText); } } } } //Log,紀錄修改前的資料 foreach (XmlNode node in GetElement().ChildNodes) { beforeData.Add(node.Name, node.InnerText); } }
public override bool Fill() { SubProgress progress = new SubProgress(MainProgress, WeightTable.GetJobWeight("GetStudentData")); try { Utility.StartTime("GetStudentData"); progress.ReportMessage("取得學生資料…"); int offset = 1; foreach (string eachYear in Parameters.TargetGradeYears) { if (MainProgress.Cancellation) //這個部份必須要看的是 MainProgress。 { return(false); } DSXmlHelper response = QueryStudent.GetAbstractList(eachYear); foreach (XmlElement eachStudent in response.GetElements("Student")) { Students.AddStudent(new RankStudent(eachStudent)); } progress.ReportProgress((int)(((float)offset / Parameters.TargetGradeYears.Count) * 100)); offset++; } progress.ReportProgress(100); Utility.EndTime("GetStudentData"); return(true); } catch (Exception ex) { progress.ReportException(ex); return(false); } }
private void lstList_SelectedIndexChanged(object sender, EventArgs e) { if (lstList.SelectedItems.Count > 0) { btnDelete.Enabled = true; btnAD.Enabled = true; ListViewItem item = lstList.SelectedItems[0]; string id = item.Tag.ToString(); DSResponse dsrsp = QueryStudent.GetUpdateRecordBatch(id); listView.SuspendLayout(); if (dsrsp.HasContent) { DSXmlHelper helper = dsrsp.GetContent(); provider = new SummaryProvider(helper); lblADCounter.Text = "【" + provider.Title + "】 各科人數統計"; lblADInfo.Text = "【" + provider.Title + "】 核准文號"; buttonX1.Visible = true; buttonX2.Visible = true; XmlNode contentNode = helper.GetElement("UpdateRecordBatch/Content"); if (contentNode == null) { return; } source = (XmlElement)contentNode.FirstChild; //處理看板資訊 StringBuilder builder = new StringBuilder(""); foreach (Department dept in provider.GetDepartments()) { builder = builder.Append("◎").Append(dept.Name).Append(" ") .Append("男生 <font color='blue'>").Append(dept.Male).Append("</font> 人 ") .Append("女生 <font color='blue'>").Append(dept.Female).Append("</font> 人 ") .Append("(合計 <font color='blue'>").Append(dept.Total).Append("</font> 人)"); if (dept.Unknow > 0) { builder = builder.Append("<font color='red'>").Append(dept.Unknow) .Append("</font>人未填性別"); } builder = builder.Append("<br/>"); } lblListContent.Text = builder.ToString(); lblADName1.Text = provider.Title; lblADName2.Text = provider.Title; lblADName3.Text = provider.Title; // 處理核准日期與文號 string adString = ""; if (!string.IsNullOrEmpty(provider.ADNumber)) { adString += "核准文號 <font color='red'>" + provider.ADNumber + "</font> "; adString += "核准日期 <font color='red'>" + provider.ADDate + "</font>"; } else { adString = "<font color='red'>未登錄</font>"; } lblAD.Text = adString; //處理ListView呈現資料 listView.Clear(); foreach (IEntryFormat format in provider.GetEntities()) { // 若無群組則先加上群組 if (listView.Groups[format.Group] == null) { listView.Groups.Add(format.Group, format.Group); } // 若沒有欄名則先加上欄名 if (listView.Columns.Count == 0) { foreach (string column in format.DisplayColumns.Keys) { listView.Columns.Add(column, format.DisplayColumns[column].Width); } } // 欄位都有了則依據欄位填入其屬性值 ListViewItem rowItem = null; for (int i = 0; i < listView.Columns.Count; i++) { string columnName = listView.Columns[i].Text; string value = format.DisplayColumns[columnName].Value; if (i == 0) { rowItem = new ListViewItem(value); } else { rowItem.SubItems.Add(value); } } rowItem.Tag = format; rowItem.Group = listView.Groups[format.Group]; listView.Items.Add(rowItem); } } listView.ResumeLayout(); } else { btnDelete.Enabled = false; btnAD.Enabled = false; } this.itemPanel1.RecalcLayout(); //this.itemPanel1.Refresh(); }
protected override object OnBackgroundWorkerWorking() { return(QueryStudent.GetUpdateInfoList(RunningID).GetContent()); }
private void btnOK_Click(object sender, EventArgs e) { if (string.IsNullOrEmpty(txtNumber.Text)) { MsgBox.Show("請輸入核準文號。"); return; } DateTime date; if (!DateTime.TryParse(dtpDate.DateString, out date)) { MsgBox.Show("日期格式不正確。"); return; } // 修改名冊本身的日期與文號 DSXmlHelper helper = new DSXmlHelper("AuthorizeBatchRequest"); helper.AddElement("AuthorizeBatch"); helper.AddElement("AuthorizeBatch", "Field"); helper.AddElement("AuthorizeBatch/Field", "ADNumber", txtNumber.Text); helper.AddElement("AuthorizeBatch/Field", "ADDate", dtpDate.DateString); helper.AddElement("AuthorizeBatch", "Condition"); helper.AddElement("AuthorizeBatch/Condition", "ID", _provider.ID); try { EditStudent.ModifyUpdateRecordBatch(new DSRequest(helper)); } catch (Exception ex) { MsgBox.Show("編輯核准文號失敗:" + ex); } // 修改其包含的異動紀錄文號 helper = new DSXmlHelper("UpdateRequest"); helper.AddElement("UpdateRecord"); helper.AddElement("UpdateRecord", "Field"); helper.AddElement("UpdateRecord/Field", "ADNumber", txtNumber.Text); helper.AddElement("UpdateRecord/Field", "ADDate", dtpDate.DateString); helper.AddElement("UpdateRecord", "Condition"); if (_provider.GetEntities().Length <= 0) //名冊中沒有任何學生,就不更新學生的核準文號了。 { return; } foreach (IEntryFormat entity in _provider.GetEntities()) { helper.AddElement("UpdateRecord/Condition", "ID", entity.ID); } try { EditStudent.ModifyUpdateRecord(new DSRequest(helper)); if (DataSaved != null) { DataSaved(this, null); } } catch (Exception ex) { MsgBox.Show("編輯核准文號失敗:" + ex); } string batchName = ""; string schoolYear = ""; string semester = ""; if (_provider.ID != "") { DSResponse dsrsp = QueryStudent.GetUpdateRecordBatch(_provider.ID); DSXmlHelper helper_ = dsrsp.GetContent(); //填上名冊的 學年、學期、名稱 foreach (XmlNode node in helper_.GetElements("UpdateRecordBatch")) { schoolYear = node.SelectSingleNode("SchoolYear").InnerText; semester = node.SelectSingleNode("Semester").InnerText; batchName = node.SelectSingleNode("Name").InnerText; } // log,2018/3/1 穎驊新增,因應高雄 [10-03][01] 整個學年度核准過的文號的異動名冊全部不見了 項目 // 本異動名冊 原只有新增會有系統紀錄,現在調整刪除、登打文號都會有紀錄 JHSchool.PermRecLogProcess prlp = new JHSchool.PermRecLogProcess(); string desc = "登錄文號" + schoolYear + "學年度,第" + semester + "學期," + batchName + "名冊,日期:" + dtpDate.DateString + ",文號:" + txtNumber.Text; prlp.SaveLog("教務.名冊", "登錄文號", desc); } this.Close(); }
public ExportTable Export() { // 取得縣市對照表 XmlElement schoolLocationList = Config.GetSchoolLocationList().GetContent().BaseElement; // 取得匯出規則描述 XmlElement descElement = StudentBulkProcess.GetExportDescription(); IFieldFormater fieldFormater = new BaseFieldFormater(); IResponseFormater responseFormater = new ResponseFormater(); FieldCollection fieldCollection = fieldFormater.Format(descElement); ExportFieldCollection exportFields = responseFormater.Format(descElement); fieldCollection = FieldUtil.Match(fieldCollection, _selectFields); exportFields = FieldUtil.Match(exportFields, _selectFields); //// 有選狀態時加入 //if (_selectFields.FindByDisplayText("狀態") != null) //{ // fieldCollection.Add(_selectFields.FindByDisplayText("狀態")); // ExportField ex = new ExportField(); // ex.DisplayText = "狀態"; // ex.RequestName = "StudentStatus"; // ex.ColumnIndex = exportFields.Length; // ex.DataType = ""; // ex.XPath = ""; // exportFields.Add(ex); //} IRequestGenerator reqGenerator = new ExportStudentRequestGenerator(); _selectFieldsID = new FieldCollection(); foreach (Field fd in _selectFields) { _selectFieldsID.Add(fd); } if (_selectFieldsID.Find("StudentID") == null) { Field fd1 = new Field(); fd1.FieldName = "StudentID"; fd1.DisplayText = "學生系統編號"; _selectFieldsID.Add(fd1); } reqGenerator.SetSelectedFields(_selectFieldsID); // 預設找-1, 不然會傳回所有學生 ICondition condition = new BaseCondition("ID", "-1"); reqGenerator.AddCondition(condition); foreach (string id in _conditions) { ICondition condition2 = new BaseCondition("ID", id); reqGenerator.AddCondition(condition2); } reqGenerator.AddOrder(new Order("GradeYear")); reqGenerator.AddOrder(new Order("Department")); reqGenerator.AddOrder(new Order("RefClassID")); reqGenerator.AddOrder(new Order("SeatNo")); DSRequest request = reqGenerator.Generate(); DSResponse response = QueryStudent.GetExportList(request); ExportTable table = new ExportTable(); foreach (ExportField field in exportFields) { table.AddColumn(field); } //// 取得學生狀態 //Dictionary<string, string> StudStatusDic = new Dictionary<string, string>(); //foreach (JHSchool.Data.JHStudentRecord stud in JHSchool.Data.JHStudent.SelectByIDs(K12.Presentation.NLDPanels.Student.SelectedSource )) // StudStatusDic.Add(stud.ID, stud.Status.ToString()); foreach (XmlElement record in response.GetContent().GetElements("Student")) { ExportRow row = table.AddRow(); foreach (ExportField column in table.Columns) { int columnIndex = column.ColumnIndex; ExportCell cell = row.Cells[columnIndex]; XmlNode cellNode = record.SelectSingleNode(column.XPath); //if(column.DisplayText !="狀態") // cellNode = record.SelectSingleNode(column.XPath); // CustodianOtherInfo/CustodianOtherInfo[1]/EducationDegree[1] #region 這段程式是處理匯入/匯出程式不一致問題 if (column.XPath.StartsWith("CustodianOtherInfo/Custodian")) { if (cellNode == null) { string x = column.XPath.Replace("CustodianOtherInfo/Custodian", "CustodianOtherInfo/CustodianOtherInfo"); cellNode = record.SelectSingleNode(x); if (cellNode == null) { x = column.XPath.Replace("CustodianOtherInfo/CustodianOtherInfo", "CustodianOtherInfo/Custodian"); cellNode = record.SelectSingleNode(x); } } } if (column.XPath.StartsWith("FatherOtherInfo/Father")) { if (cellNode == null) { string x = column.XPath.Replace("FatherOtherInfo/Father", "FatherOtherInfo/FatherOtherInfo"); cellNode = record.SelectSingleNode(x); if (cellNode == null) { x = column.XPath.Replace("FatherOtherInfo/FatherOtherInfo", "FatherOtherInfo/Father"); cellNode = record.SelectSingleNode(x); } } } if (column.XPath.StartsWith("MotherOtherInfo/Mother")) { if (cellNode == null) { string x = column.XPath.Replace("MotherOtherInfo/Mother", "MotherOtherInfo/MotherOtherInfo"); cellNode = record.SelectSingleNode(x); if (cellNode == null) { x = column.XPath.Replace("MotherOtherInfo/MotherOtherInfo", "MotherOtherInfo/Mother"); cellNode = record.SelectSingleNode(x); } } } #endregion if (cellNode != null) { if (column.FieldName == "GraduateSchoolLocationCode") { cell.Value = GetCounty(schoolLocationList, cellNode.InnerText); } else if (column.FieldName == "DeptName") //處理科別繼承問題。 { //這個欄位的資料一定會被回傳,因為設定了 Mandatory 屬性。 XmlNode selfDept = record.SelectSingleNode("SelfDeptName"); if (string.IsNullOrEmpty(selfDept.InnerText)) { cell.Value = cellNode.InnerText; } else { cell.Value = selfDept.InnerText; } } else if (column.FieldName == "Status") { cell.Value = GetStudStatusStr(cellNode.InnerText); } else { cell.Value = cellNode.InnerText; } } //if (column.DisplayText == "狀態")//record.SelectSingleNode("StudentID")!=null ) //{ // // 學生狀態 // if (StudStatusDic.ContainsKey(record.SelectSingleNode("StudentID").InnerText)) // cell.Value = StudStatusDic[record.SelectSingleNode("StudentID").InnerText]; //} } } return(table); }