private void dgData_CellContentClick(object sender, DataGridViewCellEventArgs e) { if (e.RowIndex > -1) { if (e.ColumnIndex == colUpdateSetup.Index) { GPlanInfo108 data = dgData.Rows[e.RowIndex].Tag as GPlanInfo108; if (data != null) { frmCreateGPlanItemSetup108 fgpd = new frmCreateGPlanItemSetup108(); fgpd.SetGPlanInfo(data); if (fgpd.ShowDialog() == DialogResult.OK) { GPlanInfo108 newData = fgpd.GetGPlanInfo(); newData.ParseStatus(); dgData.Rows[e.RowIndex].Tag = newData; dgData.Rows[e.RowIndex].Cells[colChangeDesc.Index].Value = newData.Status; } } GPlanDataCount(); } } }
private void btnQueryAndSet_Click(object sender, EventArgs e) { btnQueryAndSet.Enabled = false; frmCreateGPlanQueryAndSetup108 fgq = new frmCreateGPlanQueryAndSetup108(); fgq.SetGPlanInfos(_GPlanInfo108List); if (fgq.ShowDialog() == DialogResult.OK) { Dictionary <string, GPlanInfo108> dataDict = fgq.GetGPlanInfoDicts(); foreach (DataGridViewRow drv in dgData.Rows) { if (drv.IsNewRow) { continue; } GPlanInfo108 data = drv.Tag as GPlanInfo108; if (data != null) { if (dataDict.ContainsKey(data.GDCCode)) { dataDict[data.GDCCode].ParseStatus(); drv.Tag = dataDict[data.GDCCode]; drv.Cells[colChangeDesc.Index].Value = dataDict[data.GDCCode].Status; } } } GPlanDataCount(); } btnQueryAndSet.Enabled = true; }
public void SetGPlanInfo(GPlanInfo108 data) { _GPlanInfo = data; }
private void item_Click(object sender, EventArgs e) { if (_SelectButton != null) { _SelectButton.Checked = false; } ButtonItem item = (ButtonItem)sender; GPlanInfo108 info = (GPlanInfo108)item.Tag; try { // 解析 XML info.RefGPContentXml = XElement.Parse(info.RefGPContent); } catch (Exception ex) { Console.WriteLine(ex.Message); } _SelectButton = item; lblGroupName.Text = info.RefGPName; item.Checked = true; // 資料整理 Dictionary <string, List <XElement> > dataDict = new Dictionary <string, List <XElement> >(); foreach (XElement elm in info.RefGPContentXml.Elements("Subject")) { string idx = elm.Element("Grouping").Attribute("RowIndex").Value; if (!dataDict.ContainsKey(idx)) { dataDict.Add(idx, new List <XElement>()); } dataDict[idx].Add(elm); } // 取得採用班級 Dictionary <string, List <DataRow> > classRows = _da.GetGPlanRefClaasByID(info.RefGPID); dgData.Rows.Clear(); // 填入資料 foreach (string idx in dataDict.Keys) { int rowIdx = dgData.Rows.Add(); XElement firstElm = null; if (dataDict[idx].Count > 0) { firstElm = dataDict[idx][0]; } // 將資料存入 Tag dgData.Rows[rowIdx].Tag = firstElm; dgData.Rows[rowIdx].Cells["領域"].Value = firstElm.Attribute("Domain").Value; dgData.Rows[rowIdx].Cells["分項類別"].Value = firstElm.Attribute("Entry").Value; dgData.Rows[rowIdx].Cells["科目名稱"].Value = firstElm.Attribute("SubjectName").Value; if (firstElm.Attribute("RequiredBy").Value == "部訂") { dgData.Rows[rowIdx].Cells["校訂部定"].Value = "部定"; } else { dgData.Rows[rowIdx].Cells["校訂部定"].Value = firstElm.Attribute("RequiredBy").Value; } dgData.Rows[rowIdx].Cells["必選修"].Value = firstElm.Attribute("Required").Value; foreach (XElement elmD in dataDict[idx]) { try { if (elmD.Attribute("GradeYear").Value == "1" && elmD.Attribute("Semester").Value == "1") { dgData.Rows[rowIdx].Cells["1上"].Value = elmD.Attribute("學分").Value; } if (elmD.Attribute("GradeYear").Value == "1" && elmD.Attribute("Semester").Value == "2") { dgData.Rows[rowIdx].Cells["1下"].Value = elmD.Attribute("學分").Value; } if (elmD.Attribute("GradeYear").Value == "2" && elmD.Attribute("Semester").Value == "1") { dgData.Rows[rowIdx].Cells["2上"].Value = elmD.Attribute("學分").Value; } if (elmD.Attribute("GradeYear").Value == "2" && elmD.Attribute("Semester").Value == "2") { dgData.Rows[rowIdx].Cells["2下"].Value = elmD.Attribute("學分").Value; } if (elmD.Attribute("GradeYear").Value == "3" && elmD.Attribute("Semester").Value == "1") { dgData.Rows[rowIdx].Cells["3上"].Value = elmD.Attribute("學分").Value; } if (elmD.Attribute("GradeYear").Value == "3" && elmD.Attribute("Semester").Value == "2") { dgData.Rows[rowIdx].Cells["3下"].Value = elmD.Attribute("學分").Value; } } catch (Exception ex) { Console.WriteLine(ex.Message); } } dgData.Rows[rowIdx].Cells["開課方式"].Value = firstElm.Attribute("開課方式").Value; dgData.Rows[rowIdx].Cells["課程代碼"].Value = firstElm.Attribute("課程代碼").Value; } listViewEx1.SuspendLayout(); listViewEx1.Items.Clear(); listViewEx1.Groups.Clear(); foreach (string key in classRows.Keys) { string groupKey; groupKey = key + " 年級"; foreach (DataRow dr in classRows[key]) { ListViewGroup group = listViewEx1.Groups[groupKey]; if (group == null) { group = listViewEx1.Groups.Add(groupKey, groupKey); } string c_name = dr["class_name"] + "(" + dr["stud_cot"] + ")"; ListViewItem lvi = new ListViewItem(c_name, 0, group); listViewEx1.Items.Add(lvi); } } listViewEx1.AutoResizeColumns(ColumnHeaderAutoResizeStyle.ColumnContent); listViewEx1.ResumeLayout(); }