コード例 #1
0
        private async void btnCapNhat_Click(object sender, EventArgs e)
        {
            bool hopLe = checkTiet(cbxTietHoc.Text) && typingTiet.mon != null && checkHT(typingTiet.hinhThuc);

            if (!hopLe)
            {
                DialogResult dialogResult = MessageBox.Show("Vui lòng kiểm tra lại các trường đã nhập", "Có lỗi", MessageBoxButtons.OK);
                return;
            }

            TietHoc chk = await apis.KiemTraTrungTiet(typingTiet);

            if (chk.bai == "false")
            {
                DialogResult dal = MessageBox.Show("Trùng tiết, không thể xếp", "Không thể xếp", MessageBoxButtons.OK);
                return;
            }

            object tietHoc = await apis.PutTietHoc(typingTiet);

            btnThem.Enabled     = true;
            btnXoa.Enabled      = false;
            btnHuyBo.Visible    = false;
            btnLamMoi.Visible   = true;
            btnCapNhat.Enabled  = false;
            gridTietHoc.Enabled = true;
            await LoadData();

            isEditting     = false;
            cbxXem.Enabled = true;
            refreshTypingTiet();
        }
コード例 #2
0
        private async Task getAllTiets()
        {
            lops = await apis.GetLops(main.HocKy);

            string lopFilter = "&lop=null";

            lops.ForEach(lop =>
            {
                lopFilter += $"&lop={lop.id}";
            });
            DateTime t2 = date;
            DateTime t7 = t2.AddDays(5);

            lopFilter += $"&ngay_gte={t2.ToString("yyyy-MM-dd")}&ngay_lte={t7.ToString("yyyy-MM-dd")}";
            tiets      = await apis.GetTietHocs(main.HocKy, null, lopFilter);

            List <TietHoc> list = new List <TietHoc>();

            tiets.ForEach(t =>
            {
                TietHoc tiet = t;
                if (tiet.lop == null)
                {
                    tiet.lop    = new Lop();
                    tiet.lop.id = 0;
                }
                list.Add(tiet);
            });
            tiets = list;
        }
コード例 #3
0
        public bool themDuLieu(TietHoc th)
        {
            string query  = @"insert into TietHoc(maLopHoc,ngayHoc,trangThai,ghiChu,tenPhong) values (  @maLopHoc , @ngayHoc , @trangThai , @ghiChu , @tenPhong );";
            int    result = 0;

            result = DataProvider.Instance.ExcuteNonQuery(query, new object[] { th.LopHoc.MaLopHoc, th.NgayHoc, th.TrangThai, th.GhiChu, th.TenPhong, th.TietBatDau });
            return(result > 0);
        }
コード例 #4
0
 private void txtBaiBuoi_Leave(object sender, EventArgs e)
 {
     if (typingTiet == null)
     {
         typingTiet = new TietHoc();
     }
     typingTiet.bai = txtBaiBuoi.Text;
 }
コード例 #5
0
        private async void cbxTietHoc_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (Lop == null)
            {
                return;
            }
            string tietHoc = cbxTietHoc.Text;

            if (typingTiet.tiet == tietHoc)
            {
                return;
            }
            foreach (string x in cbxTietHoc.Items)
            {
                if (tietHoc == x)
                {
                    //Check lại xem tiết đó có chưa?
                    TietHoc tiet = new TietHoc();
                    tiet.ngay = (DateTime)dateNgay.EditValue;
                    tiet.tiet = tietHoc;
                    tiet.lop  = Lop;
                    tiet.id   = 0;

                    if (isEditting)
                    {
                        ColumnView view = gridTietHoc.MainView as ColumnView;
                        tiet.id = typingTiet.id;
                    }

                    TietHoc chk = await apis.KiemTraTrungTiet(tiet);

                    if (chk == null)
                    {
                        return;
                    }
                    if (chk.bai == "false")
                    {
                        toolTip.SetToolTip(cbxTietHoc, "Trùng tiết không thể xếp!");
                        toolTip.SetToolTip(lblLoiTiet, "Trùng tiết không thể xếp!");
                        lblBaoLoi.Text     = "Trùng tiết không thể xếp!";
                        lblBaoLoi.Visible  = true;
                        lblLoiTiet.Visible = true;
                        return;
                    }
                    toolTip.SetToolTip(cbxTietHoc, "");
                    lblBaoLoi.Text     = "";
                    lblLoiTiet.Visible = false;

                    typingTiet.tiet   = tietHoc;
                    typingTiet.soTiet = demSoTiet(typingTiet);

                    return;
                }
            }
            toolTip.SetToolTip(cbxTietHoc, "Tiết học không hợp lệ!");
            lblBaoLoi.Text     = "Tiết học không hợp lệ!";
            lblLoiTiet.Visible = true;
        }
コード例 #6
0
 private void refreshTypingTiet()
 {
     typingTiet      = new TietHoc();
     typingTiet.lop  = Lop;   typingTiet.hocKy = HocKy;   typingTiet.diaDiem = "";
     typingTiet.ngay = Ngay; typingTiet.bai = "";    typingTiet.giangVien = "";
     txtMonHoc.Text  = "";    cbxTietHoc.Text = "";
     lblBaoLoi.Text  = "";
     cbxTietHoc.Focus();
 }
コード例 #7
0
        private void TKBLop_CellBeginEdit(object sender, DevExpress.XtraSpreadsheet.SpreadsheetCellCancelEventArgs e)
        {
            Cell cell = e.Cell;

            if (!cellMap.ContainsKey(cell.GetReferenceA1()))
            {
                return;
            }

            TietHoc tiet = cellMap[cell.GetReferenceA1()];

            if (tiet.ngayNghi != null)
            {
                return;
            }

            //Nạp xlsx để xem chi tiết
            using (FileStream stream = new FileStream(@"tietViewer.xlsx", FileMode.Open))
            {
                spreadsheetChiTiet.LoadDocument(stream, DocumentFormat.Xlsx);
                wbChiTiet = spreadsheetChiTiet.Document;
                wsChiTiet = wbChiTiet.Worksheets[0];
            }

            Lop lop = new Lop(); lop.giangDuong = "0";
            TietHocRendering render = new TietHocRendering(lop, 20);

            wsChiTiet["A1"].SetRichText(render.tietToRich(tiet, "hocKy", 12));

            wsChiTiet.FreezePanes(0, 0);   //Khoá ô hiển thị

            lblThu.Text  = dateToThu(tiet.ngay.DayOfWeek.ToString()) + ", ";
            lblNgay.Text = "ngày " + tiet.ngay.ToString("dd/MM/yyyy");

            int x = lblThu.Location.X + lblThu.Width - 10, y = lblNgay.Location.Y;

            lblNgay.Location = new Point(x, y);

            lblLop.Text = "Lớp: " + Lop.ten;

            lblTiet.Text = "Tiết: " + tiet.tiet;
            string[] arr = tiet.mon.ten.Split(new char[] { '|' });
            string   bai = tiet.bai == "" ? "Không nhập" : tiet.bai;

            lblMon.Text       = "Môn: " + arr[0]; lblBai.Text = "Bài: " + bai;
            lblHinhThuc.Text  = "Hình thức: " + tiet.hinhThuc; lblGiangDuong.Text = "Địa điểm: " + tiet.diaDiem;
            lblGiangVien.Text = tiet.giangViens == "" ? "GV: Không nhập" : "GV: " + tiet.giangViens;

            toolTip.RemoveAll();
            toolTip.SetToolTip(lblLop, lblLop.Text);
            toolTip.SetToolTip(lblMon, "Môn học: " + arr[0]);
            toolTip.SetToolTip(lblGiangVien, tiet.giangViens == "" ? "Giảng viên: Không nhập" : "Giảng viên: " + tiet.giangViens);

            grpChiTiet.Visible = true;
        }
コード例 #8
0
 public void SuaTietHoc(TietHoc th)
 {
     if (th is TietHocBu)
     {
         DataProvider.Instance.ExcuteNonQuery(String.Format("dbo.SuaBuoiHocBu @idTietHoc = {0},@maLopHoc = {1},@tietBatDau = {2},  @tenPhong = '{3}',@ngayHoc='{4:yyyy-MM-dd}', @trangThai={5}, @ghiChu = N'{6}' ", th.Id, th.LopHoc.MaLopHoc, th.TietBatDau, th.TenPhong, th.NgayHoc, th.TrangThai, th.GhiChu));
     }
     else
     {
         DataProvider.Instance.ExcuteNonQuery(String.Format("dbo.SuaBuoiHoc @id = '{0}',@tenPhong = {1},@trangThai = N'{2}',  @ghiChu = N'{3}' ", th.Id, th.TenPhong, th.TrangThai, th.GhiChu));
     }
 }
コード例 #9
0
        public async Task <JObject> PutTietHoc(TietHoc tietHoc)
        {
            var path     = base_url + "/tiet-hocs/" + tietHoc.id;
            var json     = JsonConvert.SerializeObject(tietHoc);
            var data     = new StringContent(json, Encoding.UTF8, "application/json");
            var response = await client.PutAsync(path, data);

            string  result  = response.Content.ReadAsStringAsync().Result;
            JObject jObject = JObject.Parse(result);

            return(jObject);
        }
コード例 #10
0
        private async void txtDiaDiem_Leave(object sender, EventArgs e)
        {
            if (txtDiaDiem.Text == "")
            {
                txtDiaDiem.Text = Lop.giangDuong;
            }

            TietHoc chk = new TietHoc();

            chk.id      = 0; chk.ngay = (DateTime)dateNgay.EditValue;
            chk.tiet    = cbxTietHoc.Text;
            chk.diaDiem = txtDiaDiem.Text;

            if (isEditting)
            {
                ColumnView view = gridTietHoc.MainView as ColumnView;
                chk.id = tietHocs[view.GetSelectedRows()[0]].id;
            }

            typingTiet.diaDiem = txtDiaDiem.Text;
            List <TietHoc> tiets = await apis.GetTietTrungDiaDiem(chk);

            if (tiets.Count > 0)
            {
                string lopTrung = "";
                foreach (TietHoc tiet in tiets)
                {
                    lopTrung += tiet.lop.ten + ", ";
                }
                ;
                lopTrung = lopTrung.Substring(0, lopTrung.Length - 2); //231, => 231

                string chkTrung = "Trùng tiết và phòng với ";
                if (tiets.Count > 1)
                {
                    chkTrung += "các ";
                }
                chkTrung      += "lớp: " + lopTrung + "!";
                lblBaoLoi.Text = chkTrung;

                //tietGhep.id = 1;

                lblBaoLoi.Visible = true;
                toolTip.SetToolTip(txtDiaDiem, lblBaoLoi.Text);
                toolTip.SetToolTip(lblLoiDiaDiem, lblBaoLoi.Text);
                lblLoiDiaDiem.Visible = true;
                return;
            }
            //tietGhep.id = 0;
            lblBaoLoi.Text        = "";
            lblLoiDiaDiem.Visible = false;
        }
コード例 #11
0
        public bool Update(TietHoc entity)
        {
            try
            {
                var gv = db.TietHocs.Find(entity.ID);

                db.SaveChanges();
                return(true);
            }catch (Exception ex)
            {
                return(false);
            }
        }
コード例 #12
0
        public List <TietHoc> LayDsTietHocParam(string query, object[] param)
        {
            DataTable      dt        = DataProvider.Instance.ExcuteQuery(query, param);
            List <TietHoc> dsTietHoc = new List <TietHoc>();

            foreach (DataRow item in dt.Rows)
            {
                LopHoc  lh = LopHocDAO.Instance.TimLopHoc(item["maLopHoc"] + "");
                TietHoc th = new TietHoc(lh, int.Parse(item["id"].ToString()), item["tenPhong"].ToString(), Convert.ToDateTime(item["ngayHoc"]), int.Parse(item["trangThai"].ToString()), item["ghiChu"].ToString());
                dsTietHoc.Add(th);
            }
            return(dsTietHoc);
        }
コード例 #13
0
        public async Task <List <TietHoc> > GetTietTrungGiangVien(TietHoc tiet)
        {
            var path     = base_url + "/tiet-hocs/checktrunggiangvien";
            var json     = JsonConvert.SerializeObject(tiet);
            var data     = new StringContent(json, Encoding.UTF8, "application/json");
            var response = await client.PostAsync(path, data);

            List <TietHoc> tiets = null;

            if (response.IsSuccessStatusCode)
            {
                tiets = await response.Content.ReadAsAsync <List <TietHoc> >();
            }
            return(tiets);
        }
コード例 #14
0
        private int demSoTiet(TietHoc tiet)
        {
            string t = tiet.tiet;

            if (t == "Cả ngày")
            {
                return(11);
            }
            if ((t == "7 - 8 - 9" && tiet.hinhThuc != "TH") || t == "Đêm")
            {
                return(2);
            }
            string[] arr = t.Split(new char[] { '-', ' ' });
            return(Int32.Parse(arr[3]) - Int32.Parse(arr[0]) + 1);
        }
コード例 #15
0
        private void gridTietHoc_DoubleClick(object sender, EventArgs e)
        {
            ColumnView view  = gridTietHoc.MainView as ColumnView;
            int        index = view.GetSelectedRows()[0];

            typingTiet = tietHocs[index];

            //Set là đang sửa tiết để cbxTiet nó không check tiết
            isEditting = true;

            if (typingTiet.ngayNghi != null)
            {
                lblBaoLoi.Text     = "Ngày nghỉ phải sửa tại giao diện thiết lập ngày nghỉ!";
                lblBaoLoi.Visible  = true;
                btnCapNhat.Enabled = false;
                btnLamMoi.Visible  = false;
                btnNhapLai.Enabled = true;
                btnHuyBo.Visible   = false;
                btnThem.Enabled    = false;
                btnXoa.Enabled     = false;

                return;
            }
            else
            {
                cbxXem.Enabled      = false;
                gridTietHoc.Enabled = false;

                isEditting         = true;
                lblBaoLoi.Visible  = false;
                btnCapNhat.Enabled = true;
                btnLamMoi.Visible  = false;
                btnNhapLai.Enabled = false;
                btnHuyBo.Visible   = true;
                btnThem.Enabled    = false;
                btnXoa.Enabled     = true;
            }

            dateNgay.EditValue = typingTiet.ngay;
            cbxTietHoc.Text    = typingTiet.tiet;
            txtBaiBuoi.Text    = typingTiet.bai;
            cbxHinhThuc.Text   = typingTiet.hinhThuc;
            txtGiangVien.Text  = typingTiet.giangViens;
            txtDiaDiem.Text    = typingTiet.diaDiem;
            txtMonHoc.Text     = typingTiet.mon != null ? typingTiet.mon.ma : "";
            lblLoiMon.Visible  = false;
            cbxTietHoc.Focus();
        }
コード例 #16
0
        public async Task <TietHoc> KiemTraTrungTiet(TietHoc tiet)
        {
            bool chkConn = await this.checkConn();

            if (!chkConn)
            {
                return(null);
            }
            var path     = base_url + "/tiet-hocs/checktrungtiet";
            var json     = JsonConvert.SerializeObject(tiet);
            var data     = new StringContent(json, Encoding.UTF8, "application/json");
            var response = await client.PostAsync(path, data);

            string  result  = response.Content.ReadAsStringAsync().Result;
            JObject jObject = JObject.Parse(result);

            return(jObject.ToObject <TietHoc>());
        }
コード例 #17
0
        private async void btnThem_Click(object sender, EventArgs e)
        {
            object dateTime = dateNgay.EditValue;

            Ngay = (DateTime)dateTime;
            if (Ngay.DayOfWeek.ToString() == "Sunday")
            {
                DialogResult dal = MessageBox.Show("Chủ nhật không thể xếp thời khoá biểu", "Không thể xếp", MessageBoxButtons.OK);
                return;
            }

            bool hopLe = checkTiet(cbxTietHoc.Text) && typingTiet.mon != null && checkHT(typingTiet.hinhThuc);

            if (hopLe)
            {
                TietHoc test = await apis.KiemTraTrungTiet(typingTiet);

                if (test.bai == "false")
                {
                    DialogResult dal = MessageBox.Show("Tiết học này đã được xếp trước đó! Vui lòng kiểm tra lại.", "Không thể xếp", MessageBoxButtons.OK);
                    cbxTietHoc.Focus();
                    lblBaoLoi.Text     = "Tiết học này đã được xếp!";
                    lblLoiTiet.Visible = true;
                    toolTip.SetToolTip(cbxTietHoc, "Tiết học này đã được xếp!");
                    toolTip.SetToolTip(cbxTietHoc, "Tiết học này đã được xếp!");
                    return;
                }
                object obj = await apis.PostTietHoc(typingTiet);
                await LoadData();

                lblBaoLoi.Text = "";
            }
            else
            {
                DialogResult dialogResult = MessageBox.Show("Vui lòng kiểm tra lại các trường đã nhập", "Có lỗi", MessageBoxButtons.OK);
            }

            txtMonHoc.Text            = ""; txtBaiBuoi.Text = "";
            cbxHinhThuc.SelectedIndex = 0; txtDiaDiem.Text = ""; txtGiangVien.Text = "";

            lblBaoLoi.Text = "";
            refreshTypingTiet();
        }
コード例 #18
0
        private void btnHuyBo_Click(object sender, EventArgs e)
        {
            lblBaoLoi.Visible = true;

            btnHuyBo.Visible   = false;
            btnCapNhat.Enabled = false;
            btnNhapLai.Enabled = true;
            btnLamMoi.Visible  = true;
            btnThem.Enabled    = true;
            btnXoa.Enabled     = false;
            typingTiet         = new TietHoc();

            isEditting     = false;
            lblBaoLoi.Text = "";

            cbxXem.Enabled      = true;
            gridTietHoc.Enabled = true;

            lblLoiTiet.Visible = false; lblLoiMon.Visible = false;
            refreshTypingTiet();
        }
コード例 #19
0
        private async void dateNgay_EditValueChanged(object sender, EventArgs e)
        {
            object dateTime = dateNgay.EditValue;

            Ngay = (DateTime)dateTime;

            main.setDate(Ngay);

            if (typingTiet == null)
            {
                typingTiet = new TietHoc();
            }
            typingTiet.ngay = Ngay;

            lblThu.Text  = dateToThu(Ngay.DayOfWeek.ToString()) + ", ";
            lblNgay.Text = "ngày " + Ngay.ToString("dd/MM/yy");

            if (cbxXem.Text != "Học kỳ")
            {
                await LoadData();
            }
        }
コード例 #20
0
        //ngày học bắt đầu 15/1/2018 , 15 tuần chính thức , 2 tuần dự trữ soTietHoc = 15
        public void TaoTietHoc(LopHoc lh, int soBuoiHoc, DateTime ngayNhapHoc, DateTime ngayKetThuc, string tenPhong, int tietBatDau)
        {
            int thuNgayNhapHoc = LayThuNgayNhapHoc(ngayNhapHoc);


            if (lh.Thu < thuNgayNhapHoc)
            {
                ngayNhapHoc = ngayNhapHoc.AddDays(7 - lh.Thu);
            }
            else
            {
                ngayNhapHoc = ngayNhapHoc.AddDays(lh.Thu - thuNgayNhapHoc);
            }

            for (int i = 0; i < soBuoiHoc; i++)
            {
                TietHoc th = new TietHoc(lh, tenPhong, ngayNhapHoc, -1, "");
                this.themDuLieu(th);

                ngayNhapHoc = ngayNhapHoc.AddDays(7);
            }
        }
コード例 #21
0
 public int Insert(TietHoc entity)
 {
     db.TietHocs.Add(entity);
     db.SaveChanges();
     return(entity.ID);
 }
コード例 #22
0
        private void xlsxViewer_CellBeginEdit(object sender, DevExpress.XtraSpreadsheet.SpreadsheetCellCancelEventArgs e)
        {
            if (!isNewData)
            {
                return;
            }

            Cell cell = e.Cell;

            string sheetName = e.Worksheet.Name;
            Dictionary <string, TietHoc> map = (sheetName == "TKB d2,10,3") ? cellMap[0] : cellMap[1];

            if (!map.ContainsKey(cell.GetReferenceA1()))
            {
                return;
            }

            //Nạp xlsx để xem chi tiết
            using (FileStream stream = new FileStream(@"tietViewer.xlsx", FileMode.Open))
            {
                spreadsheetChiTiet.LoadDocument(stream, DocumentFormat.Xlsx);
                wbChiTiet = spreadsheetChiTiet.Document;
                wsChiTiet = wbChiTiet.Worksheets[0];
            }

            TietHoc          tiet   = map[cell.GetReferenceA1()];
            Lop              lop    = new Lop(); lop.giangDuong = "0";
            TietHocRendering render = new TietHocRendering(lop, 20);

            wsChiTiet["A1"].SetRichText(render.tietToRich(tiet, "hocKy", 12));

            wsChiTiet.FreezePanes(0, 0);   //Khoá ô hiển thị

            lblThu.Text  = dateToThu(tiet.ngay.DayOfWeek.ToString()) + ", ";
            lblNgay.Text = "ngày " + tiet.ngay.ToString("dd/MM/yyyy");

            int x = lblThu.Location.X + lblThu.Width - 10, y = lblNgay.Location.Y;

            lblNgay.Location = new Point(x, y);

            string lops  = "Lớp: " + tiet.lop.ten;
            int    count = cell.GetMergedRanges().Count > 0 ? cell.GetMergedRanges()[0].ColumnCount : 1;

            if (count > 1)
            {
                for (int i = cell.ColumnIndex + 1; i < cell.ColumnIndex + count; i++)
                {
                    lops += ", " + ws[6, i].Value;
                }
            }
            lblLop.Text = lops;

            lblTiet.Text = "Tiết: " + tiet.tiet;
            string[] arr = tiet.mon.ten.Split(new char[] { '|' });
            string   bai = tiet.bai == "" ? "Không nhập" : tiet.bai;

            lblMon.Text       = "Môn: " + arr[0]; lblBai.Text = "Bài: " + bai;
            lblHinhThuc.Text  = "Hình thức: " + tiet.hinhThuc; lblGiangDuong.Text = "Địa điểm: " + tiet.diaDiem;
            lblGiangVien.Text = tiet.giangViens == "" ? "Giảng viên: Không nhập" : "Giảng viên: " + tiet.giangViens;

            toolTip.RemoveAll();
            toolTip.ShowAlways = true;
            toolTip.SetToolTip(lblLop, lops);
            toolTip.SetToolTip(lblMon, "Môn học: " + arr[0]);
            toolTip.SetToolTip(lblGiangVien, lblGiangVien.Text);

            grpChiTiet.Visible = true;
        }
コード例 #23
0
        private void MergeSameCells()
        {
            List <int> rows = new List <int>(new int[] { 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38 });
            int        lim  = getLimOfSheet(ws);

            rows.ForEach(r =>
            {
                for (int c = 2; c < lim - 1; c++) //Kiểm từng ô trong hàng
                {
                    TietHoc tiet1 = GetTietByCell(ws[r, c].GetReferenceA1());
                    if (tiet1 == null)
                    {
                        continue;
                    }
                    if (tiet1.ngayNghi != null)
                    {
                        continue;
                    }

                    List <TietHoc> tiets = new List <TietHoc>();
                    tiets.Add(tiet1);
                    string value1 = tiet1.ToString();

                    bool khacNhau           = false;
                    bool trungGiangDuongGoc = true;
                    for (int cc = c + 1; cc <= lim; cc++)
                    {
                        TietHoc tietSoSanh = GetTietByCell(ws[r, cc].GetReferenceA1());
                        if (tietSoSanh != null)
                        {
                            if (value1 == tietSoSanh.ToString())
                            {
                                tiets.Add(tietSoSanh);
                            }
                            else
                            {
                                khacNhau = true;
                            }
                        }
                        else
                        {
                            khacNhau = true;
                        }
                        if (khacNhau)
                        {
                            if (tiets.Count > 0)
                            {
                                //Có tiết trùng liền kề
                                bool showGiangDuong = true;

                                //So sánh giảng đường gốc của từng lớp
                                string gd1 = tiets[0].lop.giangDuong;
                                tiets.ForEach(tiet =>
                                {
                                    string gd2 = tiet.lop.giangDuong;
                                    if (gd1 != gd2)
                                    {
                                        trungGiangDuongGoc = false;
                                    }
                                });
                                //nếu cả 3 cùng gđ gốc và giảng đường học = gđ gốc thì ko show. Còn lại các case khác thì show
                                if (trungGiangDuongGoc && tiets[0].diaDiem == tiets[0].lop.giangDuong)
                                {
                                    showGiangDuong = false;
                                }
                                TietHocRendering render;
                                if (showGiangDuong)
                                {
                                    Lop lopTemp        = new Lop();
                                    lopTemp.giangDuong = "0";
                                    render             = new TietHocRendering(lopTemp, main.sizeTuan);
                                }
                                else
                                {
                                    render = new TietHocRendering(tiets[0].lop, main.sizeTuan);
                                }
                                //Gán lại giá trị
                                ws[r, c].SetRichText(render.tietToRich(tiets[0], "tuan", main.sizeTuan));
                                //Merge
                                ws.MergeCells(ws[ws[r, c].GetReferenceA1() + ":" + ws[r, c + tiets.Count - 1].GetReferenceA1()]);
                            }
                            c = cc - 1;
                            break;
                        }
                    }
                }
            });
        }