コード例 #1
0
        private void btnChuyen_Click(object sender, EventArgs e)
        {
            if (cmbNamHocCu.Text != cmbNamHocMoi.Text)
            {
                MsgboxUtil.Error("Bạn phải chọn năm học mới giống năm học cũ");
                return;
            }
            if (cmbKhoiLopCu.Text != cmbKhoiLopMoi.Text)
            {
                MsgboxUtil.Error("Bạn phải chọn khối lớp học mới giống khối lớp học cũ");
                return;
            }
            if (cmbHocKyCu.Text == cmbHocKyMoi.Text)
            {
                MsgboxUtil.Error("Bạn phải chọn học kỳ mới khác học kỳ cũ");
                return;
            }

            int siSoToiDa = _lopBUS.Lay_SiSo_Lop(cmbLopMoi.SelectedValue.ToString(), cmbNamHocMoi.SelectedValue.ToString());
            int siSoLopMoi;

            siSoLopMoi = _quyDinhBUS.Dem_SiSo_Lop(cmbLopMoi.SelectedValue.ToString(), cmbHocKyMoi.SelectedValue.ToString());
            if (siSoLopMoi >= siSoToiDa)
            {
                MsgboxUtil.Error("Không thể thực hiện vì lớp " +
                                 cmbLopMoi.Text + " (" + siSoLopMoi + " học sinh) đã đủ sĩ số học sinh quy định (" + siSoToiDa +
                                 " học sinh/Lớp)!");
                return;
            }

            if ((siSoLopMoi) >= siSoToiDa)
            {
                MsgboxUtil.Error("Không thể thực hiện vì lớp " +
                                 cmbLopMoi.Text + " (" + (siSoLopMoi + lVLopMoi.Items.Count) + " học sinh) đã đủ sĩ số học sinh quy định (" + siSoToiDa +
                                 " học sinh/Lớp)!");
                return;
            }

            IEnumerator ie = lVLopCu.SelectedItems.GetEnumerator();

            while (ie.MoveNext())
            {
                ListViewItem olditem = (ListViewItem)ie.Current;

                ListViewItem newitem = new ListViewItem();

                //Trạng thái học sinh đã được chuyển lớp hay chưa?
                bool state = false;

                foreach (ListViewItem item in lVLopMoi.Items)
                {
                    if (item.SubItems[0].Text == olditem.SubItems[0].Text)
                    {
                        MessageBoxEx.Show("Học sinh " + item.SubItems[1].Text + " hiện đang học trong lớp " + cmbLopMoi.Text, "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        state = true;
                        goto Cont;
                    }
                }

                DataTable dT = new DataTable();
                if (cmbNamHocMoi.SelectedValue != null)
                {
                    //dT = m_HocSinhCtrl.HienThiDsHocSinhTheoNamHoc(cmbNamHocMoi.SelectedValue.ToString());
                    dT = m_HocSinhCtrl.HienThiDsHocSinhTheoHocKy_Lop(cmbHocKyMoi.SelectedValue.ToString(), cmbLopMoi.SelectedValue.ToString());
                }

                foreach (DataRow row in dT.Rows)
                {
                    if (olditem.SubItems[1].Text.ToString() == row["MaHocSinh"].ToString())
                    {
                        MessageBoxEx.Show("Học sinh " + row["HoTen"].ToString() + " hiện đang học trong lớp " + row["TenLop"].ToString(), "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        state = true;
                        goto Cont;
                    }
                }

                newitem.SubItems.Add(olditem.SubItems[1].Text);
                newitem.Tag = olditem.Tag;

                if (lVLopMoi.Items.Count >= siSoToiDa)
                {
                    MsgboxUtil.Error("Không thể thực hiện vì lớp " +
                                     cmbLopMoi.Text + " (" + lVLopMoi.Items.Count + " hs) đã đủ sỉ số học sinh quy định (" + siSoToiDa +
                                     " hs/Lớp)!");
                    return;
                }
                else
                {
                    lVLopMoi.Items.Add(newitem);
                }

                lVLopMoi.Items[lVLopMoi.Items.IndexOf(newitem)].Text = olditem.SubItems[0].Text;
                lVLopCu.Items.Remove(olditem);

Cont:
                if (state == true)
                {
                    break;
                }
            }
        }