public void SetItem(MeritStatisticItem meritStatisticItem) { MeritStatisticItem item = GetItem(meritStatisticItem.SchoolYear, meritStatisticItem.Semester, meritStatisticItem.MeritType); if (item == null) { Items.Add(meritStatisticItem); } else { item.Count = meritStatisticItem.Count; } }
public Step3(TransferStudentForm parent) { InitializeComponent(); _parent = parent; if (Student.Instance.SelectedList.Count == 0) { return; } _studentID = Student.Instance.SelectedList[0].ID; dgMeritStatistic.Columns.Add(SCHOOL_YEAR_COLUMN, SCHOOL_YEAR_COLUMN); dgMeritStatistic.Columns[SCHOOL_YEAR_COLUMN].Width = 75; dgMeritStatistic.Columns.Add(SEMESTER_COLUMN, SEMESTER_COLUMN); dgMeritStatistic.Columns[SEMESTER_COLUMN].Width = 60; _meritTypes = TransferStudentDAL.GetMeritTypes(); foreach (string merit in _meritTypes) { int columnIndex = dgMeritStatistic.Columns.Add(merit, merit); dgMeritStatistic.Columns[columnIndex].Width = 60; } foreach (SemesterHistoryData sh in TransferStudentDAL.GetSemesterHistory(_studentID)) { int rowIndex = dgMeritStatistic.Rows.Add(); DataGridViewRow row = dgMeritStatistic.Rows[rowIndex]; row.Tag = sh; DataGridViewCell cell = row.Cells[SCHOOL_YEAR_COLUMN]; cell.Value = sh.SchoolYear; cell.ReadOnly = true; cell = row.Cells[SEMESTER_COLUMN]; cell.Value = sh.Semester; cell.ReadOnly = true; //把值塞進來 ..... foreach (string mt in _meritTypes) { MeritStatisticItem item = _parent.TransferStudentData.MeritStatisticData.GetItem(sh.SchoolYear, sh.Semester, mt); if (item != null) { row.Cells[mt].Value = item.Count; } } } //處理缺曠輸入畫面 dgAbsence.Columns.Add(SCHOOL_YEAR_COLUMN, SCHOOL_YEAR_COLUMN); dgAbsence.Columns[SCHOOL_YEAR_COLUMN].Width = 75; dgAbsence.Columns.Add(SEMESTER_COLUMN, SEMESTER_COLUMN); dgAbsence.Columns[SEMESTER_COLUMN].Width = 60; _periodTypes = TransferStudentDAL.GetPeriodTypeItems(); _absenceList = TransferStudentDAL.GetAbsenceItems(); foreach (string periodType in _periodTypes) { foreach (string each in _absenceList) { string columnName = periodType + each; dgAbsence.Columns.Add(columnName, columnName); dgAbsence.Columns[columnName].Width = 60; dgAbsence.Columns[columnName].Tag = periodType + ":" + each; } } // 塞入缺曠之預設值 foreach (SemesterHistoryData sh in TransferStudentDAL.GetSemesterHistory(_studentID)) { int rowIndex = dgAbsence.Rows.Add(); DataGridViewRow row = dgAbsence.Rows[rowIndex]; row.Cells[SCHOOL_YEAR_COLUMN].Value = sh.SchoolYear; row.Cells[SEMESTER_COLUMN].Value = sh.Semester; foreach (string periodType in _periodTypes) { foreach (string each in _absenceList) { string columnName = periodType + each; AbsenceItem item = _parent.TransferStudentData.AbsenceData.GetItem(sh.SchoolYear, sh.Semester, periodType, each); if (item != null) { row.Cells[columnName].Value = item.Count; } } } } }
public TransferStudentData(XmlElement response) { this.DailyBehaviorData = new DailyBehaviorData(); this.GroupActivityData = new GroupActivityData(); this.PublicServiceData = new PublicServiceData(); this.SchoolSpecialData = new SchoolSpecialData(); this.DailyLifeRecommendData = new DailyLifeRecommendData(); this.AbsenceData = new AbsenceData(); this.MeritStatisticData = new MeritStatisticData(); this.SourceFlags = new List <SourceFlag>(); if (response == null) { return; } foreach (XmlNode node in response.SelectNodes("SemesterMoralScore")) { string schoolyear = node.SelectSingleNode("SchoolYear").InnerText; string semester = node.SelectSingleNode("Semester").InnerText; SourceFlag sourceFlag = new SourceFlag(); sourceFlag.SchoolYear = schoolyear; sourceFlag.Semester = semester; XmlElement sourceElement; if (node.SelectSingleNode("Summary").ChildNodes.Count > 0) { sourceFlag.Flag = Flag.Summary; sourceElement = (XmlElement)node.SelectSingleNode("Summary"); sourceFlag.SourceElement = sourceElement; } else { sourceFlag.Flag = Flag.IntialSummary; sourceElement = (XmlElement)node.SelectSingleNode("InitialSummary"); sourceFlag.SourceElement = sourceElement; } SourceFlags.Add(sourceFlag); //處理日常生活表現 foreach (XmlNode itemNode in node.SelectNodes("TextScore/DailyBehavior/Item")) { XmlElement itemElement = (XmlElement)itemNode; DailyBehaviorItem item = new DailyBehaviorItem(); item.SchoolYear = schoolyear; item.Semester = semester; item.Degree = itemElement.GetAttribute("Degree"); item.Name = itemElement.GetAttribute("Name"); item.Index = itemElement.GetAttribute("Index"); this.DailyBehaviorData.Items.Add(item); } //處理團隊活動表現 foreach (XmlNode itemNode in node.SelectNodes("TextScore/GroupActivity/Item")) { XmlElement itemElement = (XmlElement)itemNode; GroupActivityItem item = new GroupActivityItem(); item.SchoolYear = schoolyear; item.Semester = semester; item.Degree = itemElement.GetAttribute("Degree"); item.Name = itemElement.GetAttribute("Name"); item.Text = itemElement.GetAttribute("Description"); this.GroupActivityData.Items.Add(item); } //處理公共服務表現 foreach (XmlNode itemNode in node.SelectNodes("TextScore/PublicService/Item")) { XmlElement itemElement = (XmlElement)itemNode; PublicServiceItem item = new PublicServiceItem(); item.SchoolYear = schoolyear; item.Semester = semester; item.Name = itemElement.GetAttribute("Name"); item.Description = itemElement.GetAttribute("Description"); this.PublicServiceData.Items.Add(item); } //處理校內外特殊表現 foreach (XmlNode itemNode in node.SelectNodes("TextScore/SchoolSpecial/Item")) { XmlElement itemElement = (XmlElement)itemNode; SchoolSpecialItem item = new SchoolSpecialItem(); item.SchoolYear = schoolyear; item.Semester = semester; item.Name = itemElement.GetAttribute("Name"); item.Description = itemElement.GetAttribute("Description"); this.SchoolSpecialData.Items.Add(item); } //日常生活表現具體建議 //foreach (XmlNode itemNode in node.SelectNodes("TextScore/DailyLifeRecommend/Item")) foreach (XmlNode itemNode in node.SelectNodes("TextScore/DailyLifeRecommend")) { XmlElement itemElement = (XmlElement)itemNode; DailyLifeRecommendItem item = new DailyLifeRecommendItem(); item.SchoolYear = schoolyear; item.Semester = semester; item.Name = itemElement.GetAttribute("Name"); item.Description = itemElement.GetAttribute("Description"); this.DailyLifeRecommendData.Items.Add(item); } //缺曠統計 foreach (XmlNode itemNode in sourceElement.SelectNodes("AttendanceStatistics/Absence")) { XmlElement itemElement = (XmlElement)itemNode; AbsenceItem item = new AbsenceItem(); item.SchoolYear = schoolyear; item.Semester = semester; item.Name = itemElement.GetAttribute("Name"); item.PeriodType = itemElement.GetAttribute("PeriodType"); int count; if (!int.TryParse(itemElement.GetAttribute("Count"), out count)) { count = 0; } item.Count = count; this.AbsenceData.Items.Add(item); } //懲統計 foreach (XmlNode itemNode in sourceElement.SelectNodes("DisciplineStatistics/Demerit")) { XmlElement itemElement = (XmlElement)itemNode; MeritStatisticItem itemA = new MeritStatisticItem(); itemA.SchoolYear = schoolyear; itemA.Semester = semester; itemA.MeritType = "大過"; int count; if (!int.TryParse(itemElement.GetAttribute("A"), out count)) { count = 0; } itemA.Count = count; this.MeritStatisticData.Items.Add(itemA); MeritStatisticItem itemB = new MeritStatisticItem(); itemB.SchoolYear = schoolyear; itemB.Semester = semester; itemB.MeritType = "小過"; if (!int.TryParse(itemElement.GetAttribute("B"), out count)) { count = 0; } itemB.Count = count; this.MeritStatisticData.Items.Add(itemB); MeritStatisticItem itemC = new MeritStatisticItem(); itemC.SchoolYear = schoolyear; itemC.Semester = semester; itemC.MeritType = "警告"; if (!int.TryParse(itemElement.GetAttribute("C"), out count)) { count = 0; } itemC.Count = count; this.MeritStatisticData.Items.Add(itemC); } //獎統計 foreach (XmlNode itemNode in sourceElement.SelectNodes("DisciplineStatistics/Merit")) { XmlElement itemElement = (XmlElement)itemNode; MeritStatisticItem itemA = new MeritStatisticItem(); itemA.SchoolYear = schoolyear; itemA.Semester = semester; itemA.MeritType = "大功"; int count; if (!int.TryParse(itemElement.GetAttribute("A"), out count)) { count = 0; } itemA.Count = count; this.MeritStatisticData.Items.Add(itemA); MeritStatisticItem itemB = new MeritStatisticItem(); itemB.SchoolYear = schoolyear; itemB.Semester = semester; itemB.MeritType = "小功"; if (!int.TryParse(itemElement.GetAttribute("B"), out count)) { count = 0; } itemB.Count = count; this.MeritStatisticData.Items.Add(itemB); MeritStatisticItem itemC = new MeritStatisticItem(); itemC.SchoolYear = schoolyear; itemC.Semester = semester; itemC.MeritType = "嘉獎"; if (!int.TryParse(itemElement.GetAttribute("C"), out count)) { count = 0; } itemC.Count = count; this.MeritStatisticData.Items.Add(itemC); } } }
public void OnChangeStep() { foreach (DataGridViewRow row in dgMeritStatistic.Rows) { foreach (DataGridViewColumn column in dgMeritStatistic.Columns) { if (column.Name == SCHOOL_YEAR_COLUMN) { continue; } if (column.Name == SEMESTER_COLUMN) { continue; } MeritStatisticItem item = new MeritStatisticItem(); item.SchoolYear = row.Cells[SCHOOL_YEAR_COLUMN].Value.ToString(); item.Semester = row.Cells[SEMESTER_COLUMN].Value.ToString(); int count = 0; if (row.Cells[column.Name].Value != null) { string value = row.Cells[column.Name].Value.ToString(); if (!int.TryParse(value, out count)) { count = 0; } } item.MeritType = column.Name; item.Count = count; _parent.TransferStudentData.MeritStatisticData.SetItem(item); } } foreach (DataGridViewRow row in dgAbsence.Rows) { foreach (DataGridViewColumn column in dgAbsence.Columns) { if (column.Name == SCHOOL_YEAR_COLUMN) { continue; } if (column.Name == SEMESTER_COLUMN) { continue; } AbsenceItem item = new AbsenceItem(); item.SchoolYear = row.Cells[SCHOOL_YEAR_COLUMN].Value.ToString(); item.Semester = row.Cells[SEMESTER_COLUMN].Value.ToString(); int count = 0; if (row.Cells[column.Name].Value != null) { string value = row.Cells[column.Name].Value.ToString(); if (!int.TryParse(value, out count)) { count = 0; } } string[] tagSplit = column.Tag.ToString().Split(':'); string periodType = tagSplit[0]; string name = tagSplit[1]; item.PeriodType = periodType; item.Name = name; item.Count = count; _parent.TransferStudentData.AbsenceData.SetItem(item); } } }