private XmlElement ConvertToXml(ProgramPlanRecord record) { DSXmlHelper helper = new DSXmlHelper("GraduationPlan"); foreach (var subject in record.Subjects) { XmlElement element = null; element = helper.AddElement("Subject"); element.SetAttribute("GradeYear", subject.GradeYear); element.SetAttribute("Semester", subject.Semester); element.SetAttribute("Credit", subject.Credit); element.SetAttribute("Period", subject.Period); element.SetAttribute("Domain", subject.Domain); element.SetAttribute("FullName", subject.FullName); element.SetAttribute("Level", subject.Level); element.SetAttribute("CalcFlag", "" + subject.CalcFlag); element.SetAttribute("SubjectName", subject.SubjectName); element = helper.AddElement("Subject", "Grouping"); element.SetAttribute("RowIndex", "" + subject.RowIndex); } return(helper.BaseElement); //<Subject Credit="2" Domain="外國語文" FullName="ESL" Level="" NotIncludedInCalc="False" SubjectName="ESL"> // <Grouping RowIndex="1" /> //</Subject> }
private void SetListView(ProgramPlanRecord record) { listViewEx1.SuspendLayout(); listViewEx1.Items.Clear(); listViewEx1.Groups.Clear(); Dictionary <ClassRecord, int> classCount = new Dictionary <ClassRecord, int>(); List <StudentRecord> noClassStudents = new List <StudentRecord>(); foreach (StudentRecord stu in Student.Instance.Items) { if (stu.GetProgramPlanRecord() == record) { if (stu.Class != null) { if (!classCount.ContainsKey(stu.Class)) { classCount.Add(stu.Class, 0); } classCount[stu.Class]++; } else { noClassStudents.Add(stu); } } } foreach (ClassRecord cla in classCount.Keys) { string groupKey; int a; if (int.TryParse(cla.GradeYear, out a)) { groupKey = cla.GradeYear + " 年級"; } else { groupKey = cla.GradeYear; } ListViewGroup group = listViewEx1.Groups[groupKey]; if (group == null) { group = listViewEx1.Groups.Add(groupKey, groupKey); } listViewEx1.Items.Add(new ListViewItem(cla.Name + "(" + classCount[cla] + ") ", 0, group)); } if (noClassStudents.Count > 0) { ListViewGroup group = listViewEx1.Groups["未分班"]; if (group == null) { group = listViewEx1.Groups.Add("未分班", "未分班"); } foreach (StudentRecord stu in noClassStudents) { listViewEx1.Items.Add(new ListViewItem(stu.Name + "[" + stu.StudentNumber + "] ", 1, group)); } } listViewEx1.ResumeLayout(); }
private void cboExistPlanList_SelectedIndexChanged(object sender, EventArgs e) { if (cboExistPlanList.SelectedItem == comboItem1) { _copy_record = null; } else { _copy_record = (ProgramPlanRecord)((ComboItem)cboExistPlanList.SelectedItem).Tag; } }
internal ProgramPlanRecordEditor(ProgramPlanRecord record) : this() { ID = record.ID; Name = record.Name; List <ProgramSubject> list = new List <ProgramSubject>(); foreach (var subject in record.Subjects) { list.Add(subject.Clone() as ProgramSubject); } Subjects = list; ProgramPlan = record; }
private void RefreshItemPanel(string id) { ProgramPlanRecord record = ProgramPlan.Instance.Items[id]; ButtonItem updateItem = null; foreach (ButtonItem item in itemPanel1.Items) { ProgramPlanRecord r = item.Tag as ProgramPlanRecord; if (r.ID == id) { updateItem = item; break; } } if (record != null && updateItem == null) //Insert { ButtonItem item = new ButtonItem(); item.Text = record.Name; item.Tag = record; item.OptionGroup = "ProgramPlan"; item.Click += new EventHandler(item_Click); itemPanel1.Items.Add(item); item.RaiseClick(); } else if (record != null && updateItem != null) //Update { updateItem.Tag = record; updateItem.RaiseClick(); } else if (record == null && updateItem != null) //Delete { updateItem.Click -= new EventHandler(item_Click); itemPanel1.Items.Remove(updateItem); graduationPlanEditor1.Enabled = false; graduationPlanEditor1.SetSource(null); btnSave.Enabled = lblSaveWarning.Visible = false; labelX1.Text = labelX2.Text = ""; } itemPanel1.Refresh(); itemPanel1.EnsureVisible(itemPanel1.Items[itemPanel1.Items.Count - 1]); }
public static ProgramPlanRecordEditor GetEditor(this ProgramPlanRecord record) { return(new ProgramPlanRecordEditor(record)); }