/// <summary>
        /// hàm thực hiện in phiếu báo cáo
        /// thông tin
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void cmdBaoCao_Click(object sender, EventArgs e)
        {
            try
            {
                string nhomthuoc = "-1";

                nhomthuoc = txtLoaithuoc.MyID.ToString();
                string fromdate       = "01/01/2000";
                string todate         = "01/01/2000";
                string _value         = "1";
                string _tondau        = "Tồn đầu";
                string _toncuoi       = "Tồn cuối";
                string FromDateToDate = Utility.FromToDateTime(dtFromDate.Text, dtToDate.Text);
                if (optThang.Checked)
                {
                    if (cboThang.SelectedIndex < 0)
                    {
                        Utility.ShowMsg("Bạn phải chọn Tháng báo cáo");
                        cboThang.Focus();
                        return;
                    }
                    _value         = cboThang.SelectedValue.ToString();
                    _tondau        = "Tồn đầu tháng " + _value;
                    _toncuoi       = "Tồn cuối tháng " + _value;
                    FromDateToDate = "Tháng " + _value;
                    switch (_value)
                    {
                    case "2":
                        fromdate = new DateTime(dtpNam.Value.Year, Utility.Int32Dbnull(_value, 2), 1).ToString("dd/MM/yyyy");
                        todate   = new DateTime(dtpNam.Value.Year, Utility.Int32Dbnull(_value, 2), 29).ToString("dd/MM/yyyy");
                        break;

                    case "4":
                    case "6":
                    case "9":
                    case "11":
                        fromdate = new DateTime(dtpNam.Value.Year, Utility.Int32Dbnull(_value, 2), 1).ToString("dd/MM/yyyy");
                        todate   = new DateTime(dtpNam.Value.Year, Utility.Int32Dbnull(_value, 2), 30).ToString("dd/MM/yyyy");
                        break;

                    default:
                        fromdate = new DateTime(dtpNam.Value.Year, Utility.Int32Dbnull(_value, 2), 1).ToString("dd/MM/yyyy");
                        todate   = new DateTime(dtpNam.Value.Year, Utility.Int32Dbnull(_value, 2), 31).ToString("dd/MM/yyyy");
                        break;
                    }
                }
                else if (optQuy.Checked)
                {
                    if (cboQuy.SelectedIndex < 0)
                    {
                        Utility.ShowMsg("Bạn phải chọn Quý báo cáo");
                        cboQuy.Focus();
                        return;
                    }
                    _value         = cboQuy.SelectedValue.ToString();
                    _tondau        = "Tồn đầu quý " + _value;
                    _toncuoi       = "Tồn cuối quý " + _value;
                    FromDateToDate = "Quý " + _value;
                    switch (_value)
                    {
                    case "1":
                        fromdate = new DateTime(dtpNam.Value.Year, 1, 1).ToString("dd/MM/yyyy");
                        todate   = new DateTime(dtpNam.Value.Year, 3, 31).ToString("dd/MM/yyyy");
                        break;

                    case "2":
                        fromdate = new DateTime(dtpNam.Value.Year, 4, 1).ToString("dd/MM/yyyy");
                        todate   = new DateTime(dtpNam.Value.Year, 6, 30).ToString("dd/MM/yyyy");
                        break;

                    case "3":
                        fromdate = new DateTime(dtpNam.Value.Year, 7, 1).ToString("dd/MM/yyyy");
                        todate   = new DateTime(dtpNam.Value.Year, 9, 30).ToString("dd/MM/yyyy");
                        break;

                    case "4":
                        fromdate = new DateTime(dtpNam.Value.Year, 10, 1).ToString("dd/MM/yyyy");
                        todate   = new DateTime(dtpNam.Value.Year, 12, 31).ToString("dd/MM/yyyy");
                        break;

                    default:
                        fromdate = new DateTime(dtpNam.Value.Year, 1, 1).ToString("dd/MM/yyyy");
                        todate   = new DateTime(dtpNam.Value.Year, 12, 31).ToString("dd/MM/yyyy");
                        break;
                    }
                }
                else if (optNam.Checked)
                {
                    FromDateToDate = "Năm " + dtpNam.Value.Year.ToString();
                    _tondau        = "Tồn " + dtpNam.Value.AddYears(-1).Year.ToString();
                    _toncuoi       = "Tồn " + dtpNam.Value.Year.ToString();
                    fromdate       = new DateTime(dtpNam.Value.Year, 1, 1).ToString("dd/MM/yyyy");
                    todate         = new DateTime(dtpNam.Value.Year, 12, 31).ToString("dd/MM/yyyy");
                }
                else
                {
                    _tondau  = "Tồn đầu " + dtFromDate.Value.ToString("dd/MM/yyyy");
                    _toncuoi = "Tồn cuối " + dtToDate.Value.ToString("dd/MM/yyyy");
                    fromdate = dtFromDate.Value.ToString("dd/MM/yyyy");
                    todate   = dtToDate.Value.ToString("dd/MM/yyyy");
                }
                DataTable m_dtReport = null;
                if (radCandoikho.Checked)
                {
                    m_dtReport = BAOCAO_THUOC.ThuocBaocaonhapxuattontheokho(fromdate,
                                                                            todate,
                                                                            lstStockID, nhomthuoc, Utility.Int32Dbnull(txtthuoc.MyID, -1), chkBiendong.Checked ? 1 : 0);
                    Utility.SetDataSourceForDataGridEx(grdbangcandoi, m_dtReport, true, true, "1=1", "");
                    THU_VIEN_CHUNG.CreateXML(m_dtReport, "thuoc_baocao_bangcandoi.xml");
                    if (m_dtReport.Rows.Count <= 0)
                    {
                        Utility.ShowMsg("Không tìm thấy dữ liệu", "Thông báo", MessageBoxIcon.Warning);
                        return;
                    }
                    thuoc_baocao.Baocao_thuoc_bangcandoi(m_dtReport, cboReportType.SelectedValue.ToString(), KIEU_THUOC_VT, baocaO_TIEUDE1.TIEUDE, _tondau, _toncuoi,
                                                         dtNgayIn.Value, FromDateToDate,
                                                         Utility.sDbnull(cboKho.Text), chkTheoNhomThuoc.Checked);
                }

                if (radXuatnhapton.Checked)
                {
                    m_dtReport = BAOCAO_THUOC.ThuocBaocaonhapxuatton(fromdate,
                                                                     todate,
                                                                     lstStockID, nhomthuoc, Utility.Int32Dbnull(txtthuoc.MyID, -1), chkBiendong.Checked ? 1 : 0);


                    Utility.SetDataSourceForDataGridEx(grdList, m_dtReport, true, true, "1=1", "");
                    THU_VIEN_CHUNG.CreateXML(m_dtReport, "baocao_xuatnhapton_theoquy.xml");
                    if (m_dtReport.Rows.Count <= 0)
                    {
                        Utility.ShowMsg("Không tìm thấy dữ liệu", "Thông báo", MessageBoxIcon.Warning);
                        return;
                    }

                    thuoc_baocao.BaocaoNhapxuattonTheoquy(m_dtReport, cboReportType.SelectedValue.ToString(), KIEU_THUOC_VT, baocaO_TIEUDE1.TIEUDE, _tondau, _toncuoi,
                                                          dtNgayIn.Value, FromDateToDate,
                                                          Utility.sDbnull(cboKho.Text), chkTheoNhomThuoc.Checked);
                }
                if (radBienbankiemke.Checked)
                {
                    m_dtReport = BAOCAO_THUOC.ThuocBaocaonhapxuatton(fromdate,
                                                                     todate,
                                                                     lstStockID, nhomthuoc, Utility.Int32Dbnull(txtthuoc.MyID, -1), chkBiendong.Checked ? 1 : 0);


                    Utility.SetDataSourceForDataGridEx(grdList, m_dtReport, true, true, "1=1", "");
                    THU_VIEN_CHUNG.CreateXML(m_dtReport, "thuoc_bienban_kiemkethuoc.xml");
                    if (m_dtReport.Rows.Count <= 0)
                    {
                        Utility.ShowMsg("Không tìm thấy dữ liệu", "Thông báo", MessageBoxIcon.Warning);
                        return;
                    }
                    string Condition = string.Format("Thuộc kho :{0} - Thuốc: {1}", string.IsNullOrEmpty(cboKho.Text) ? "Tất cả" : cboKho.Text,
                                                     string.IsNullOrEmpty(txtthuoc.Text) ? "Tất cả" : txtthuoc.Text);

                    thuoc_baocao.Bienbankiemkethuoc(m_dtReport, KIEU_THUOC_VT,
                                                    baocaO_TIEUDE1.TIEUDE, dtNgayIn.Value, Condition, cboKho.Text, 30);
                }
            }
            catch (Exception ex)
            {
                Utility.ShowMsg("Lỗi:" + ex.Message);
            }
        }