/// <summary>
        /// 获取仓库可见药品类型
        /// </summary>
        internal void m_mthGetMedicineType()
        {
            com.digitalwave.iCare.ValueObject.clsMS_MedicineType_VO[] objMTVO = null;
            m_objDomain.m_lngGetStorageMedicineType(out objMTVO);

            if (objMTVO != null && objMTVO.Length > 0)
            {
                m_objViewer.m_cboMedicineType.Items.Clear();
                com.digitalwave.iCare.ValueObject.clsMS_MedicineType_VO objAll = new com.digitalwave.iCare.ValueObject.clsMS_MedicineType_VO();
                objAll.m_strMedicineTypeID_CHR    = string.Empty;
                objAll.m_strMedicineTypeName_VCHR = "全部";
                m_objViewer.m_cboMedicineType.Items.Add(objAll);
                m_objViewer.m_cboMedicineType.Items.AddRange(objMTVO);
            }
        }
        /// <summary>
        /// 检查漏盘药品

        /// </summary>
        internal void m_mthCheckMedicine()
        {
            m_objViewer.m_dtbMissMedicine.Rows.Clear();

            DataTable dtbStorageMedicine = null;
            long      lngRes             = 0;

            if (m_objViewer.m_rdbMedicineCode.Checked)
            {
                if (string.IsNullOrEmpty(m_objViewer.m_txtMedicineCode1.Text) || string.IsNullOrEmpty(m_objViewer.m_txtMedicineCode2.Text))
                {
                    MessageBox.Show("请先输入完整查询条件", "药品盘点", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    m_objViewer.m_txtMedicineCode1.Focus();
                    return;
                }

                lngRes = m_objDomain.m_lngGetMedicineByMedicineCode(m_objViewer.m_txtMedicineCode1.Text, m_objViewer.m_txtMedicineCode2.Text, m_objViewer.m_strDeptID, m_objViewer.m_blnIsHospital, out dtbStorageMedicine);
            }
            else if (m_objViewer.m_rdbMedicinePreptype.Checked)
            {
                if (m_objViewer.m_cboMediciePreptype.SelectedIndex == -1 || m_objViewer.m_cboMediciePreptype.SelectedItem == null)
                {
                    MessageBox.Show("请先选择药品剂型", "药品盘点", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    m_objViewer.m_cboMediciePreptype.Focus();
                    return;
                }

                com.digitalwave.iCare.ValueObject.clsMEDICINEPREPTYPE_VO objTypeVO = m_objViewer.m_cboMediciePreptype.SelectedItem as com.digitalwave.iCare.ValueObject.clsMEDICINEPREPTYPE_VO;
                lngRes = m_objDomain.m_lngGetMedicineByMedicinePreptype(objTypeVO.m_strMEDICINEPREPTYPE_CHR, m_objViewer.m_strDeptID, m_objViewer.m_blnIsHospital, out dtbStorageMedicine);
            }
            else if (m_objViewer.m_rdbMedicineType.Checked)
            {
                if (m_objViewer.m_cboMedicineType.SelectedIndex == -1 || m_objViewer.m_cboMedicineType.SelectedItem == null)
                {
                    MessageBox.Show("请先选择药品类型", "药品盘点", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    m_objViewer.m_cboMedicineType.Focus();
                    return;
                }

                com.digitalwave.iCare.ValueObject.clsMS_MedicineType_VO objTypeVO = m_objViewer.m_cboMedicineType.SelectedItem as com.digitalwave.iCare.ValueObject.clsMS_MedicineType_VO;
                lngRes = m_objDomain.m_lngGetMedicineByMedicineType(objTypeVO.m_strMedicineTypeID_CHR, m_objViewer.m_strDeptID, m_objViewer.m_blnIsHospital, out dtbStorageMedicine);
            }
            else
            {
                MessageBox.Show("请先选择查询条件", "药品盘点", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }

            if (dtbStorageMedicine == null || dtbStorageMedicine.Rows.Count == 0)
            {
                return;
            }
            //if (m_objViewer.m_intCheckMode == 1)
            //{
            DataTable m_dtResult        = null;
            DataTable m_dtbResultDetail = null;

            m_mthChangeToTotal(dtbStorageMedicine, out m_dtResult, out m_dtbResultDetail);
            if (m_objViewer.m_dtbMissDetail == null)
            {
                m_objViewer.m_dtbMissDetail = m_dtbResultDetail.Clone();
            }
            if (m_objViewer.m_dtbHasCheckMedicine == null || m_objViewer.m_dtbHasCheckMedicine.Rows.Count == 0)
            {
                m_objViewer.m_dtbMissMedicine.Merge(m_dtResult, true);
                m_objViewer.m_dtbMissDetail.Merge(m_dtbResultDetail, true);
                return;
            }
            DataTable m_dtbHasCheckCopy = m_objViewer.m_dtbHasCheckMedicineFixed.Copy();

            DataRow[] m_drNull = m_dtbHasCheckCopy.Select("medicineid_chr is null");
            if (m_drNull != null && m_drNull.Length > 0)
            {
                foreach (DataRow dr in m_drNull)
                {
                    m_dtbHasCheckCopy.Rows.Remove(dr);
                }
            }
            if (m_dtbHasCheckCopy.Rows.Count == 0)
            {
                m_objViewer.m_dtbMissMedicine.Merge(m_dtResult, true);
                m_objViewer.m_dtbMissDetail.Merge(m_dtbResultDetail, true);
                return;
            }

            m_dtbHasCheckCopy.PrimaryKey = new DataColumn[] { m_dtbHasCheckCopy.Columns["medicineid_chr"], m_dtbHasCheckCopy.Columns["opretailprice_int"] };
            DataRow drDelete       = null;
            DataRow drDeleteDetail = null;

            object[] objParamArr = new object[2];

            for (int i1 = 0; i1 < m_dtbHasCheckCopy.Rows.Count; i1++)
            {
                objParamArr[0] = m_dtbHasCheckCopy.Rows[i1]["medicineid_chr"];
                objParamArr[1] = m_dtbHasCheckCopy.Rows[i1]["opretailprice_int"];
                if (m_dtResult.Rows.Contains(objParamArr))
                {
                    drDelete = m_dtResult.Rows.Find(objParamArr);
                    m_dtResult.Rows.Remove(drDelete);
                    for (int i2 = 0; i2 < m_dtbResultDetail.Rows.Count; i2++)
                    {
                        drDeleteDetail = m_dtbResultDetail.Rows[i2];
                        if (drDeleteDetail["medicineid_chr"].ToString() == objParamArr[0].ToString() &&
                            Convert.ToDouble(drDeleteDetail["medicineid_chr"]).ToString("F4") == Convert.ToDouble(objParamArr[1]).ToString("F4"))
                        {
                            m_dtbResultDetail.Rows.Remove(drDeleteDetail);
                        }
                    }
                }
            }
            DataRow[] m_drNewArr = m_dtResult.Select("medicinename_vchr is not null");

            if (m_drNewArr != null && m_drNewArr.Length > 0)
            {
                DataRow m_drTemp   = null;
                DataRow m_drNewRow = null;
                m_objViewer.m_dtbMissMedicine.BeginLoadData();
                for (int iRow = 0; iRow < m_drNewArr.Length; iRow++)
                {
                    m_drTemp = m_drNewArr[iRow];
                    if (Convert.ToString(m_drTemp["retailprice_int"]) == string.Empty)
                    {
                        continue;
                    }
                    m_drNewRow = m_objViewer.m_dtbMissMedicine.NewRow();
                    m_drNewRow["checkmedicineorder_chr"] = m_drTemp["checkmedicineorder_chr"].ToString();
                    m_drNewRow["assistcode_chr"]         = m_drTemp["assistcode_chr"].ToString();
                    m_drNewRow["medicineid_chr"]         = m_drTemp["medicineid_chr"].ToString();
                    m_drNewRow["medicinename_vchr"]      = m_drTemp["medicinename_vchr"].ToString();
                    m_drNewRow["medspec_vchr"]           = m_drTemp["MEDSPEC_VCHR"].ToString();
                    m_drNewRow["unit_chr"]        = m_drTemp["unit_chr"].ToString();
                    m_drNewRow["opunit_chr"]      = m_drTemp["opunit_chr"].ToString();
                    m_drNewRow["ipunit_chr"]      = m_drTemp["ipunit_chr"].ToString();
                    m_drNewRow["packqty_dec"]     = Convert.ToDouble(m_drTemp["packqty_dec"]);
                    m_drNewRow["opchargeflg_int"] = Convert.ToDouble(m_drTemp["opchargeflg_int"]);
                    m_drNewRow["ipchargeflg_int"] = Convert.ToDouble(m_drTemp["ipchargeflg_int"]);
                    m_drNewRow["realgross_int"]   = m_drTemp["realgross_int"].ToString();
                    //m_drNewRow["callprice_int"] = m_drTemp["CALLPRICE_INT"].ToString();
                    //m_drNewRow["wholesaleprice_int"] = m_drTemp["WHOLESALEPRICE_INT"].ToString();
                    m_drNewRow["retailprice_int"]           = m_drTemp["RETAILPRICE_INT"].ToString();
                    m_drNewRow["lotno_vchr"]                = m_drTemp["lotno_vchr"].ToString();
                    m_drNewRow["indrugstoreid_vchr"]        = m_drTemp["indrugstoreid_vchr"].ToString();
                    m_drNewRow["validperiod_dat"]           = m_drTemp["validperiod_dat"].ToString();
                    m_drNewRow["productorid_chr"]           = m_drTemp["PRODUCTORID_CHR"].ToString();
                    m_drNewRow["medicinepreptype_chr"]      = m_drTemp["medicinepreptype_chr"].ToString();
                    m_drNewRow["medicinepreptypename_vchr"] = m_drTemp["medicinepreptypename_vchr"].ToString();
                    m_drNewRow["storagerackcode_vchr"]      = m_drTemp["storagerackcode_vchr"].ToString();
                    m_drNewRow["checkgross_int"]            = m_drTemp["checkgross_int"].ToString();
                    m_drNewRow["retailmoney"]               = m_drTemp["retailmoney"].ToString();
                    m_drNewRow["realmoney"]           = m_drTemp["retailmoney"].ToString();
                    m_drNewRow["iprealgross_int"]     = Convert.ToDouble(m_drTemp["iprealgross_int"]);
                    m_drNewRow["oprealgross_int"]     = Convert.ToDouble(m_drTemp["oprealgross_int"]);
                    m_drNewRow["ipretailprice_int"]   = Convert.ToDouble(m_drTemp["ipretailprice_int"]);
                    m_drNewRow["opretailprice_int"]   = Convert.ToDouble(m_drTemp["opretailprice_int"]);
                    m_drNewRow["ipcallprice_int"]     = Convert.ToDouble(m_drTemp["ipcallprice_int"]);
                    m_drNewRow["opcallprice_int"]     = Convert.ToDouble(m_drTemp["opcallprice_int"]);
                    m_drNewRow["dsinstoragedate_dat"] = Convert.ToDateTime(m_drTemp["dsinstoragedate_dat"]);
                    m_drNewRow["checkreason_vchr"]    = m_drTemp["checkreason_vchr"].ToString();
                    m_objViewer.m_dtbMissMedicine.LoadDataRow(m_drNewRow.ItemArray, true);
                }
                m_objViewer.m_dtbMissMedicine.EndLoadData();
            }
            DataRow[] m_drNewDetail = m_dtbResultDetail.Select("retailprice_int is not null");
            if (m_drNewDetail != null && m_drNewDetail.Length > 0)
            {
                m_objViewer.m_dtbMissDetail.BeginLoadData();
                for (int i3 = 0; i3 < m_drNewDetail.Length; i3++)
                {
                    m_objViewer.m_dtbMissDetail.LoadDataRow(m_drNewDetail[i3].ItemArray, true);
                }
                m_objViewer.m_dtbMissDetail.EndLoadData();
            }

            //}
            //}
            //else
            //{
            //    if (m_objViewer.m_dtbHasCheckMedicine == null || m_objViewer.m_dtbHasCheckMedicine.Rows.Count == 0)
            //    {
            //        m_objViewer.m_dtbMissMedicine.Merge(dtbStorageMedicine, true);
            //        for (int i1 = 1; i1 < m_objViewer.m_dtbMissMedicine.Rows.Count; i1++)
            //        {
            //            if (Convert.ToDouble(m_objViewer.m_dtbMissMedicine.Rows[i1]["opchargeflg_int"]) == 1)
            //            {
            //                m_objViewer.m_dtbMissMedicine.Rows[i1]["realgross_int"] = Convert.ToDouble(m_objViewer.m_dtbMissMedicine.Rows[i1]["realgross_int"]) * Convert.ToDouble(m_objViewer.m_dtbMissMedicine.Rows[i1]["packqty_dec"]);
            //                //m_objViewer.m_dtbMissMedicine.Rows[i1]["callprice_int"] = Convert.ToDouble(Convert.ToDouble(m_objViewer.m_dtbMissMedicine.Rows[i1]["CALLPRICE_INT"]) / Convert.ToDouble(m_objViewer.m_dtbMissMedicine.Rows[i1]["packqty_dec"])).ToString("F4");
            //                //m_objViewer.m_dtbMissMedicine.Rows[i1]["wholesaleprice_int"] = Convert.ToDouble(Convert.ToDouble(m_objViewer.m_dtbMissMedicine.Rows[i1]["WHOLESALEPRICE_INT"]) / Convert.ToDouble(m_objViewer.m_dtbMissMedicine.Rows[i1]["packqty_dec"])).ToString("F4");
            //                m_objViewer.m_dtbMissMedicine.Rows[i1]["retailprice_int"] = Convert.ToDouble(Convert.ToDouble(m_objViewer.m_dtbMissMedicine.Rows[i1]["RETAILPRICE_INT"]) / Convert.ToDouble(m_objViewer.m_dtbMissMedicine.Rows[i1]["packqty_dec"])).ToString("F4");
            //            }
            //        }
            //        return;
            //    }

            //    DataTable dtbHasCheckCopy = m_objViewer.m_dtbHasCheckMedicineFixed.Copy();
            //    DataRow[] drNull = dtbHasCheckCopy.Select("medicineid_chr is null");
            //    if (drNull != null && drNull.Length > 0)
            //    {
            //        foreach (DataRow dr in drNull)
            //        {
            //            dtbHasCheckCopy.Rows.Remove(dr);
            //        }
            //    }

            //    if (dtbHasCheckCopy.Rows.Count == 0)
            //    {
            //        m_objViewer.m_dtbMissMedicine.Merge(dtbStorageMedicine, true);
            //        for (int i1 = 1; i1 < m_objViewer.m_dtbMissMedicine.Rows.Count; i1++)
            //        {
            //            if (Convert.ToDouble(m_objViewer.m_dtbMissMedicine.Rows[i1]["opchargeflg_int"]) == 1)
            //            {
            //                m_objViewer.m_dtbMissMedicine.Rows[i1]["realgross_int"] = Convert.ToDouble(m_objViewer.m_dtbMissMedicine.Rows[i1]["realgross_int"]) * Convert.ToDouble(m_objViewer.m_dtbMissMedicine.Rows[i1]["packqty_dec"]);
            //                //m_objViewer.m_dtbMissMedicine.Rows[i1]["callprice_int"] = Convert.ToDouble(Convert.ToDouble(m_objViewer.m_dtbMissMedicine.Rows[i1]["CALLPRICE_INT"]) / Convert.ToDouble(m_objViewer.m_dtbMissMedicine.Rows[i1]["packqty_dec"])).ToString("F4");
            //                //m_objViewer.m_dtbMissMedicine.Rows[i1]["wholesaleprice_int"] = Convert.ToDouble(Convert.ToDouble(m_objViewer.m_dtbMissMedicine.Rows[i1]["WHOLESALEPRICE_INT"]) / Convert.ToDouble(m_objViewer.m_dtbMissMedicine.Rows[i1]["packqty_dec"])).ToString("F4");
            //                m_objViewer.m_dtbMissMedicine.Rows[i1]["retailprice_int"] = Convert.ToDouble(Convert.ToDouble(m_objViewer.m_dtbMissMedicine.Rows[i1]["RETAILPRICE_INT"]) / Convert.ToDouble(m_objViewer.m_dtbMissMedicine.Rows[i1]["packqty_dec"])).ToString("F4");
            //            }
            //        }
            //        return;
            //    }

            //dtbHasCheckCopy.PrimaryKey = new DataColumn[] { dtbHasCheckCopy.Columns["medicineid_chr"], dtbHasCheckCopy.Columns["lotno_vchr"], dtbHasCheckCopy.Columns["indrugstoreid_vchr"] };

            //dtbHasCheckCopy.Merge(dtbStorageMedicine, true);

            //DataRow[] drNewArr = dtbHasCheckCopy.Select("medicinename_vchr is not null");

            //dtbHasCheckCopy = null;

            //if (drNewArr != null && drNewArr.Length > 0)
            //{
            //    DataRow drTemp = null;
            //    DataRow drNewRow = null;
            //    m_objViewer.m_dtbMissMedicine.BeginLoadData();
            //    for (int iRow = 0; iRow < drNewArr.Length; iRow++)
            //    {
            //        drTemp = drNewArr[iRow];
            //        if (Convert.ToString(drTemp["CALLPRICE_INT"]) == string.Empty)
            //            continue;
            //        drNewRow = m_objViewer.m_dtbMissMedicine.NewRow();
            //        drNewRow["checkmedicineorder_chr"] = drTemp["checkmedicineorder_chr"].ToString();
            //        drNewRow["assistcode_chr"] = drTemp["assistcode_chr"].ToString();
            //        drNewRow["medicineid_chr"] = drTemp["medicineid_chr"].ToString();
            //        drNewRow["medicinename_vchr"] = drTemp["medicinename_vchr"].ToString();
            //        drNewRow["medspec_vchr"] = drTemp["MEDSPEC_VCHR"].ToString();
            //        drNewRow["unit_chr"] = drTemp["unit_chr"].ToString();
            //        drNewRow["opunit_chr"] = drTemp["opunit_chr"].ToString();
            //        drNewRow["ipunit_chr"] = drTemp["ipunit_chr"].ToString();
            //        drNewRow["packqty_dec"] = Convert.ToDouble(drTemp["packqty_dec"]);
            //        drNewRow["opchargeflg_int"] = Convert.ToDouble(drTemp["opchargeflg_int"]);
            //        //if (Convert.ToDouble(drTemp["opchargeflg_int"]) == 1)//最小单位
            //        //{
            //        //    drNewRow["realgross_int"] = Convert.ToDouble(drTemp["realgross_int"]) * Convert.ToDouble(drTemp["packqty_dec"]);
            //        //    //drNewRow["callprice_int"] = Convert.ToDouble(Convert.ToDouble(drTemp["CALLPRICE_INT"]) / Convert.ToDouble(drTemp["packqty_dec"])).ToString("F4");
            //        //    //drNewRow["wholesaleprice_int"] = Convert.ToDouble(Convert.ToDouble(drTemp["WHOLESALEPRICE_INT"]) / Convert.ToDouble(drTemp["packqty_dec"])).ToString("F4");
            //        //    drNewRow["retailprice_int"] = Convert.ToDouble(Convert.ToDouble(drTemp["RETAILPRICE_INT"]) / Convert.ToDouble(drTemp["packqty_dec"])).ToString("F4");
            //        //}
            //        //else//基本单位
            //        //{
            //            drNewRow["realgross_int"] = drTemp["realgross_int"].ToString();
            //            //drNewRow["callprice_int"] = drTemp["CALLPRICE_INT"].ToString();
            //            //drNewRow["wholesaleprice_int"] = drTemp["WHOLESALEPRICE_INT"].ToString();
            //            drNewRow["retailprice_int"] = drTemp["RETAILPRICE_INT"].ToString();
            //        //}

            //        drNewRow["lotno_vchr"] = drTemp["lotno_vchr"].ToString();
            //        drNewRow["indrugstoreid_vchr"] = drTemp["indrugstoreid_vchr"].ToString();
            //        drNewRow["validperiod_dat"] = drTemp["validperiod_dat"].ToString();
            //        drNewRow["productorid_chr"] = drTemp["PRODUCTORID_CHR"].ToString();
            //        drNewRow["medicinepreptype_chr"] = drTemp["medicinepreptype_chr"].ToString();
            //        drNewRow["medicinepreptypename_vchr"] = drTemp["medicinepreptypename_vchr"].ToString();
            //        drNewRow["storagerackcode_vchr"] = drTemp["storagerackcode_vchr"].ToString();

            //        m_objViewer.m_dtbMissMedicine.LoadDataRow(drNewRow.ItemArray, true);
            //    }
            //    m_objViewer.m_dtbMissMedicine.EndLoadData();
            //}
        }