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;
        }
Ejemplo n.º 3
0
 public void SetGPlanInfo(GPlanInfo108 data)
 {
     _GPlanInfo = data;
 }
Ejemplo n.º 4
0
        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();
        }