Esempio n. 1
0
        private void PeriodAbsenceSelectionForm_Load(object sender, EventArgs e)
        {
            List <JHPeriodMappingInfo>  periodList  = JHSchool.Data.JHPeriodMapping.SelectAll();
            List <JHAbsenceMappingInfo> absenceList = JHSchool.Data.JHAbsenceMapping.SelectAll();

            List <string> absences = new List <string>();

            foreach (JHAbsenceMappingInfo info in absenceList)
            {
                absences.Add(info.Name);
            }

            List <string> periods = new List <string>();

            foreach (JHPeriodMappingInfo info in periodList)
            {
                periods.Add(info.Name);
            }

            foreach (JHPeriodMappingInfo info in periodList)
            {
                if (!_panels.ContainsKey(info.Type))
                {
                    // TODO: 要改…
                    PeriodAbsencePanel panel = new PeriodAbsencePanel(info.Type, "1", _error);
                    panel.Size = new Size(flowPanel.Size.Width - 10, panel.Size.Height);
                    panel.AddAbsence(absences.ToArray());
                    _panels.Add(info.Type, panel);
                    flowPanel.Controls.Add(panel);
                }
            }

            FillSetting();
        }
        private void PeriodAbsenceSelectionForm_Load(object sender, EventArgs e)
        {
            List <JHPeriodMappingInfo>  periodList  = JHSchool.Data.JHPeriodMapping.SelectAll();
            List <JHAbsenceMappingInfo> absenceList = JHSchool.Data.JHAbsenceMapping.SelectAll();

            List <string> absences = new List <string>();

            foreach (JHAbsenceMappingInfo info in absenceList)
            {
                absences.Add(info.Name);
            }

            List <string> periodTypes = new List <string>();

            foreach (JHPeriodMappingInfo info in periodList)
            {
                if (!periodTypes.Contains(info.Type))
                {
                    periodTypes.Add(info.Type);
                }
            }


            //核可假別(先處理)
            PeriodAbsencePanel panel2 = new PeriodAbsencePanel("核可假別", "1", _error);

            panel2.Size = new Size(flowPanel.Size.Width - 10, panel2.Size.Height);
            panel2.AddAbsence(absences.ToArray());
            panel2.onDataChanged += new EventHandler(DataChange);
            _panels.Add("核可假別", panel2);
            flowPanel.Controls.Add(panel2);

            //核可節次別(先處理)
            // 2019/05/24 穎驊因應 [#6886][03] 國中畢業判斷,學生出缺部份母數會把不統計的節次類別計入。 項目與佳樺討論過後新增,
            PeriodAbsencePanel panel3 = new PeriodAbsencePanel("核可節次別", "1", _error);

            panel3.Size = new Size(flowPanel.Size.Width - 10, panel3.Size.Height);
            panel3.AddAbsence(periodTypes.ToArray());
            panel3.onDataChanged += new EventHandler(DataChange);
            _panels.Add("核可節次別", panel3);
            flowPanel.Controls.Add(panel3);

            //統計假別
            foreach (JHPeriodMappingInfo info in periodList)
            {
                if (!_panels.ContainsKey(info.Type))
                {
                    // TODO: 要改…
                    PeriodAbsencePanel panel = new PeriodAbsencePanel("統計假別:" + info.Type, "1", _error);
                    panel.Size = new Size(flowPanel.Size.Width - 10, panel.Size.Height);
                    panel.AddAbsence(absences.ToArray());
                    _panels.Add(info.Type, panel);
                    flowPanel.Controls.Add(panel);
                }
            }

            FillSetting();
        }
        private void DataChange(object sender, EventArgs e)
        {
            CheckBox box = sender as CheckBox;

            foreach (Control panel in flowPanel.Controls)
            {
                PeriodAbsencePanel p = panel as PeriodAbsencePanel;
                if (p == null)
                {
                    continue;
                }
                foreach (Control group in p.Controls)
                {
                    DevComponents.DotNetBar.Controls.GroupPanel gp = group as DevComponents.DotNetBar.Controls.GroupPanel;
                    if (gp != null)
                    {
                        foreach (Control flp in gp.Controls)
                        {
                            FlowLayoutPanel fp = flp as FlowLayoutPanel;
                            if (fp != null)
                            {
                                foreach (Control ctrl in fp.Controls)
                                {
                                    CheckBox ch = ctrl as CheckBox;
                                    if (ch != null)
                                    {
                                        if (ch.Text == box.Text && ch.Tag + "" != "核可假別")
                                        {
                                            if (box.Checked)
                                            {
                                                ch.Checked = false;
                                                ch.Enabled = false;
                                            }
                                            else
                                            {
                                                ch.Enabled = true;
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }