Example #1
0
        /// <summary>
        /// 获取库存明细数据
        /// </summary>
        /// <param name="objvalue_Param">查询条件</param>
        /// <param name="dtbResult">返回的结果集</param>
        /// <param name="m_objStatValue">统计数据</param>
        /// <param name="blnQueryFlag">查询标志</param>
        /// <returns></returns>
        public long m_mthGetStorageDetailData(ref clsStorageDetail_SqlConditionQueryParam_VO objvalue_Param, bool p_blnAccount, out DataTable dtbResult, ref clsStorageDetail_Stat_VO m_objStatValue, List <string> lstMedicineType, bool blnQueryFlag)
        {
            long lngRes = 0;

            try
            {
                //调用Com+服务端



                m_objStatValue.m_decCallSumTotal      = 0;
                m_objStatValue.m_decRetailSumTotal    = 0;
                m_objStatValue.m_decWholesaleSumTotal = 0;

                DataTable Query_dtbResult = new DataTable();//数据库返回的结果集


                clsDomainController_StorageDetailQuery objDomain = new clsDomainController_StorageDetailQuery();

                lngRes = objDomain.m_lngGetResultByConditionStorageDetail(ref objvalue_Param, p_blnAccount, lstMedicineType, ref Query_dtbResult);

                if (lngRes > 0)
                {
                    DataTable Stat_dtbResult = new DataTable();//处理后生成的统计表



                    //统计查询
                    if (blnQueryFlag == true)
                    {
                        m_GroupSum(objvalue_Param.m_strStorageName, ref Query_dtbResult, ref Stat_dtbResult, ref m_objStatValue);
                        dtbResult       = Stat_dtbResult;
                        Query_dtbResult = null;
                    }
                    else//明细查询
                    {
                        m_DetailQuery(objvalue_Param.m_strStorageName, ref Query_dtbResult, ref m_objStatValue);
                        dtbResult = Query_dtbResult;
                    }
                }
                else
                {
                    dtbResult = null;
                }

                return(lngRes);
            }//try
            catch (Exception objEx)
            {
                string strTmp = objEx.Message;
                com.digitalwave.Utility.clsLogText objLogger = new com.digitalwave.Utility.clsLogText();
                bool blnRes = objLogger.LogError(objEx);
                MessageBox.Show("查询失败!", "错误", MessageBoxButtons.OK, MessageBoxIcon.Stop);
            }
            dtbResult = null;
            return(lngRes);
        }
Example #2
0
        /// <summary>
        /// 查询库存明细信息
        /// </summary>
        /// <param name="objvalue_Param"></param>
        /// <param name="lstMedicineType"></param>
        /// <param name="dtbResult"></param>
        /// <param name="p_strProductor"></param>
        /// <param name="p_objPrepTypeArr"></param>
        /// <returns></returns>
        public long m_lngGetResultByConditionStorageDetail(ref clsStorageDetail_SqlConditionQueryParam_VO objvalue_Param, List <string> lstMedicineType, ref DataTable dtbResult, string p_strProductor, clsMEDICINEPREPTYPE_VO[] p_objPrepTypeArr)
        {
            long lngRes = 0;

            com.digitalwave.iCare.middletier.HIS.clsDrugStorageQuery_Supported_SVC objSvc =
                (com.digitalwave.iCare.middletier.HIS.clsDrugStorageQuery_Supported_SVC)com.digitalwave.iCare.common.clsObjectGenerator.objCreatorObjectByType(typeof(com.digitalwave.iCare.middletier.HIS.clsDrugStorageQuery_Supported_SVC));

            lngRes = objSvc.m_lngGetStorageDetailData(objPrincipal, ref objvalue_Param, lstMedicineType, ref dtbResult, p_strProductor, p_objPrepTypeArr);
            return(lngRes);
        }
Example #3
0
        public long m_lngGetResultByConditionStorageDetail(ref clsStorageDetail_SqlConditionQueryParam_VO objvalue_Param, bool p_blnAccount, List <string> lstMedicineType, ref DataTable dtbResult)
        {
            long lngRes = 0;

            //com.digitalwave.iCare.middletier.HIS.clsDemoMiddleTierSVC objSvc =(com.digitalwave.iCare.middletier.HIS.clsDemoMiddleTierSVC)clsObjectGenerator.objCreatorObjectByType(typeof(com.digitalwave.iCare.middletier.HIS.clsDemoMiddleTierSVC));

            //创建中间件COM对象
            com.digitalwave.iCare.middletier.MedicineStoreService.clsMiddleTier_StorageDetailQuerySVC objSvc =
                (com.digitalwave.iCare.middletier.MedicineStoreService.clsMiddleTier_StorageDetailQuerySVC)com.digitalwave.iCare.common.clsObjectGenerator.objCreatorObjectByType(typeof(com.digitalwave.iCare.middletier.MedicineStoreService.clsMiddleTier_StorageDetailQuerySVC));

            lngRes = objSvc.m_lngGetStorageDetailData(objPrincipal, p_blnAccount, ref objvalue_Param, lstMedicineType, ref dtbResult);
            return(lngRes);
        }
        public long m_lngGetStorageDetailData(System.Security.Principal.IPrincipal p_objPrincipal, bool p_blnAccount, ref clsStorageDetail_SqlConditionQueryParam_VO objvalue_Param, List <string> p_lstMedicineType, ref DataTable dtbResult)
        {
            long   lngRes       = 0;
            string strAccountId = "";

            if (!p_blnAccount)
            {
                m_lngGetMaxAccountId(null, out strAccountId);
            }

            //权限控制,clsPrivilegeHandleService为权限处理服务类
            com.digitalwave.security.clsPrivilegeHandleService objHandle = new clsPrivilegeHandleService();
            lngRes = objHandle.m_lngCheckCallPrivilege(p_objPrincipal, "com.digitalwave.iCare.middletier.MedicineStoreService.clsMiddleTier_StorageDetailQuerySVC", "m_lngGetStorageDetailData");
            if (lngRes < 0)
            {
                dtbResult = null;
                return(-1);
            }

            //创建COM对象
            com.digitalwave.iCare.middletier.HRPService.clsHRPTableService objHRPSvc = new clsHRPTableService();

            StringBuilder strSQL = new StringBuilder(@"select b.canprovide,b.storagerackid_chr,b.medicineid_chr,
       c.assistcode_chr,
       b.medicinename_vchr,
       b.medspec_vchr,
       case
         when b.lotno_vchr = 'UNKNOWN' then
          ''
         else
          b.lotno_vchr
       end lotno_vchr,
       d.medicinetypename_vchr,
       realgross_int,
       availagross_int,
       b.opunit_vchr,       
       b.callprice_int,
       b.retailprice_int,
       b.wholesaleprice_int,
       b.validperiod_dat,
       e.medicinepreptypename_vchr,   
       b.productorid_chr,
       v.vendorname_vchr,
       f.endamount_int
	from t_ms_storage_detail b
 inner join t_bse_medicine c on b.medicineid_chr = c.medicineid_chr

	left join t_bse_storage h on h.storageid_chr = b.storageid_chr
 inner join t_aid_medicinetype d on c.medicinetypeid_chr =
																		d.medicinetypeid_chr
	left outer join t_aid_medicinepreptype e on c.medicinepreptype_chr =
																							e.medicinepreptype_chr
	left outer join t_bse_vendor v on b.vendorid_chr = v.vendorid_chr
	left outer join t_ms_account_detail f on b.medicineid_chr =
																					 f.medicineid_chr
																			 and f.accountid_chr like ?
																			 and f.lotno_vchr = b.lotno_vchr
																			 and b.instorageid_vchr =
																					 f.instorageid_vchr
																			 and b.callprice_int =
																					 f.callprice_int
																			 and b.validperiod_dat =
																					 f.validperiod_dat
																			 and f.isend_int = 1
																			 and f.state_int > 0
																			 and f.storageid_chr =
																					 b.storageid_chr
	left join t_ms_storagerackset g on g.storagerackid_chr =
																		 b.storagerackid_chr"                                                                        );

            //g.storagerackname_vchr,
            try
            {
                int m_intParamCount = 1;

                StringBuilder m_strbCondition = new StringBuilder("");

                clsHRPTableService objHRPServ   = new clsHRPTableService();
                IDataParameter[]   objDPArr     = null;
                IDataParameter[]   tmp_objDPArr = null;
                objHRPServ.CreateDatabaseParameter(13 + p_lstMedicineType.Count, out tmp_objDPArr);
                tmp_objDPArr[0].Value = strAccountId + "%";
                strSQL.Append(@" where (b.storageid_chr = ?)");
                tmp_objDPArr[1].Value = objvalue_Param.m_strStorageID;
                ++m_intParamCount;
                if (objvalue_Param.m_strValidBeginDate.Trim().Length == 10)
                {
                    strSQL.Append(@" and (b.validperiod_dat>=?)");
                    ++m_intParamCount;
                    tmp_objDPArr[m_intParamCount - 1].Value  = Convert.ToDateTime(objvalue_Param.m_strValidBeginDate);
                    tmp_objDPArr[m_intParamCount - 1].DbType = DbType.Date;
                }

                if (objvalue_Param.m_strValidEndDate.Trim().Length == 10)
                {
                    strSQL.Append(@" and  (b.validperiod_dat<=?)");
                    ++m_intParamCount;
                    tmp_objDPArr[m_intParamCount - 1].Value  = Convert.ToDateTime(objvalue_Param.m_strValidEndDate);
                    tmp_objDPArr[m_intParamCount - 1].DbType = DbType.Date;
                }


                if (objvalue_Param.m_strMedicineID.Trim().Length > 0)
                {
                    strSQL.Append(@" and (b.medicineid_chr = ?)");
                    ++m_intParamCount;
                    tmp_objDPArr[m_intParamCount - 1].Value = objvalue_Param.m_strMedicineID;
                }
                else
                {
                    if (objvalue_Param.m_strAssistCode.Length > 0)
                    {
                        strSQL.Append(@" and ((b.medicineid_chr like ?)
                                       or (c.assistcode_chr like ?) 
                                       or (b.medicinename_vchr like ?)
                                       or (c.pycode_chr like ?) 
                                       or (c.wbcode_chr like ?))");
                        for (int i1 = 0; i1 < 5; i1++)
                        {
                            tmp_objDPArr[m_intParamCount + i1].Value = objvalue_Param.m_strAssistCode;
                        }
                        m_intParamCount = m_intParamCount + 5;
                    }
                }

                if (p_lstMedicineType.Count > 0)
                {
                    strSQL.Append(@" and ((c.medicinetypeid_chr=?)");
                    ++m_intParamCount;
                    tmp_objDPArr[m_intParamCount - 1].Value = p_lstMedicineType[0].ToString();

                    for (int i1 = 1; i1 < p_lstMedicineType.Count; i1++)
                    {
                        strSQL.Append(@" or (c.medicinetypeid_chr=?)");
                        ++m_intParamCount;
                        tmp_objDPArr[m_intParamCount - 1].Value = p_lstMedicineType[i1].ToString();
                    }
                    strSQL.Append(@")");
                }

                if (objvalue_Param.m_blnZeroGross == false)
                {
                    strSQL.Append(@" and (b.realgross_int<>?)");
                    ++m_intParamCount;
                    tmp_objDPArr[m_intParamCount - 1].Value = 0;
                }

                strSQL.Append(@" and (b.status=?)");
                ++m_intParamCount;
                tmp_objDPArr[m_intParamCount - 1].Value = 1;


                //strSQL.Append(@" ORDER BY B.MEDICINEID_CHR ASC");
                strSQL.Append(@" order by  c.assistcode_chr asc");


                objHRPServ.CreateDatabaseParameter(m_intParamCount, out objDPArr);

                for (int i1 = 0; i1 < m_intParamCount; i1++)
                {
                    objDPArr[i1].Value  = tmp_objDPArr[i1].Value;
                    objDPArr[i1].DbType = tmp_objDPArr[i1].DbType;
                }


                lngRes = objHRPServ.lngGetDataTableWithParameters(strSQL.ToString(), ref dtbResult, objDPArr);

                //合拼药品 只分药品ID和批号,不管入库单据号

                double intRealGross   = 0;
                double intAvailaGross = 0;
                double intEndamount   = 0;
                double intTemA;
                double intTemR;
                double intTemE;

                DataTable dtbTemp = dtbResult.Clone();
                for (int intRow = 0; intRow < dtbResult.Rows.Count; intRow++)
                {
                    DataRow dtrTemp = dtbResult.Rows[intRow];
                    if (dtbResult.Rows[intRow]["Endamount_int"] == DBNull.Value)
                    {
                        dtbResult.Rows[intRow]["Endamount_int"] = 0;
                    }
                    if ((intRow + 1 >= dtbResult.Rows.Count) || (dtbResult.Rows[intRow]["assistcode_chr"].ToString() != dtbResult.Rows[intRow + 1]["assistcode_chr"].ToString() ||
                                                                 dtbResult.Rows[intRow]["lotno_vchr"].ToString() != dtbResult.Rows[intRow + 1]["lotno_vchr"].ToString() ||
                                                                 Convert.ToDouble(dtbResult.Rows[intRow]["callprice_int"]) != Convert.ToDouble(dtbResult.Rows[intRow + 1]["callprice_int"]) ||
                                                                 Convert.ToDouble(dtbResult.Rows[intRow]["retailprice_int"]) != Convert.ToDouble(dtbResult.Rows[intRow + 1]["retailprice_int"])))
                    {
                        if (intRealGross > 0)
                        {
                            intTemR = Convert.ToDouble(dtbResult.Rows[intRow]["realgross_int"]);
                            intTemA = Convert.ToDouble(dtbResult.Rows[intRow]["availagross_int"]);
                            intTemE = Convert.ToDouble(dtbResult.Rows[intRow]["Endamount_int"]);
                            dtrTemp["realgross_int"]   = intTemR + intRealGross;
                            dtrTemp["availagross_int"] = intTemA + intAvailaGross;
                            dtrTemp["Endamount_int"]   = intTemE + intEndamount;
                        }
                        dtbTemp.Rows.Add(dtrTemp.ItemArray);
                        intRealGross   = 0;
                        intAvailaGross = 0;
                        intEndamount   = 0;
                    }
                    else
                    {
                        intRealGross   += Convert.ToDouble(dtrTemp["realgross_int"]);
                        intAvailaGross += Convert.ToDouble(dtrTemp["availagross_int"]);
                        intEndamount   += Convert.ToDouble(dtrTemp["Endamount_int"]);
                    }
                }
                dtbResult = dtbTemp;
                objHRPSvc.Dispose();
            }
            catch (Exception objEx)
            {
                string strTmp = objEx.Message;
                com.digitalwave.Utility.clsLogText objLogger = new clsLogText();
                bool blnRes = objLogger.LogError(objEx);
                dtbResult = null;
            }
            objHRPSvc.Dispose();
            return(lngRes);
        }
Example #5
0
        public long m_lngGetStorageDetailData(System.Security.Principal.IPrincipal p_objPrincipal, ref clsStorageDetail_SqlConditionQueryParam_VO objvalue_Param, List <string> p_lstMedicineType, ref DataTable dtbResult, string p_strProductor, clsMEDICINEPREPTYPE_VO[] p_objPrepTypeArr)
        {
            long lngRes = 0;

            //权限控制,clsPrivilegeHandleService为权限处理服务类
            com.digitalwave.security.clsPrivilegeHandleService objHandle = new clsPrivilegeHandleService();
            lngRes = objHandle.m_lngCheckCallPrivilege(p_objPrincipal, "com.digitalwave.iCare.middletier.HIS.clsDrugStorageQuery_SVC", "m_lngGetStorageDetailData");
            if (lngRes < 0)
            {
                dtbResult = null;
                return(-1);
            }
            bool m_blnIsHospital = false;

            m_lngCheckIsHospital(p_objPrincipal, objvalue_Param.m_strStorageID, out m_blnIsHospital);
            StringBuilder strSQL = new StringBuilder();

            if (m_blnIsHospital)
            {
                strSQL.Append(@"select b.medicineid_chr,
			 c.assistcode_chr,
			 c.medicinename_vchr,
			 b.medspec_vchr,
			 case
				 when b.lotno_vchr = 'UNKNOWN' then
					''
				 else
					b.lotno_vchr
			 end lotno_vchr,
			 d.medicinetypename_vchr,
			 decode(c.ipchargeflg_int,
              0,
              round(b.iprealgross_int / b.packqty_dec, 2),
              b.iprealgross_int) realgross_int,
       decode(c.ipchargeflg_int,
              0,
              round(b.ipavailablegross_num / b.packqty_dec, 2),
              b.ipavailablegross_num) availagross_int,
       b.opunit_chr,
       decode(c.ipchargeflg_int,
              0,
              b.opretailprice_int,
              round(b.opretailprice_int / b.packqty_dec, 4)) retailprice_int,
       decode(c.ipchargeflg_int,
              0,
              b.opwholesaleprice_int,
              round(b.opwholesaleprice_int / b.packqty_dec, 4)) wholesaleprice_int,
			 b.validperiod_dat,
			 e.medicinepreptypename_vchr,
			 c.productorid_chr,
			 b.storagerackid_chr,
			 f.storagerackname_vchr,
             b.canprovide_int,
			 b.oprealgross_int,
			 b.opavailablegross_num opavailagross_int,
			 b.opretailprice_int,
			 b.opwholesaleprice_int,
			 b.iprealgross_int,
			 b.ipavailablegross_num ipavailagross_int,
			 b.ipunit_chr,
			 b.ipretailprice_int,
			 b.ipwholesaleprice_int,
			 decode(c.ipchargeflg_int, 0, b.opunit_chr, b.ipunit_chr) unit_chr,
			 b.packqty_dec,
			 h.ifstop_int,
			 h.noqtyflag_int,
			 c.pycode_chr,
			 c.wbcode_chr,
			 b.seriesid_int,c.opchargeflg_int,c.ipchargeflg_int
	from t_ds_storage_detail b
 left join t_ds_storage h on b.medicineid_chr = h.medicineid_chr
													and b.drugstoreid_chr = h.drugstoreid_chr
 left join t_bse_medicine c on b.medicineid_chr = c.medicineid_chr
 left join t_aid_medicinetype d on c.medicinetypeid_chr =
																		d.medicinetypeid_chr
	left outer join t_aid_medicinepreptype e on c.medicinepreptype_chr =
																							e.medicinepreptype_chr
	left join t_ms_storagerackset f on f.storagerackid_chr =
																		 b.storagerackid_chr
	left join t_bse_medstore g on g.deptid_chr = b.drugstoreid_chr"    );
            }
            else
            {
                strSQL.Append(@"select b.medicineid_chr,
			 c.assistcode_chr,
			 c.medicinename_vchr,
			 b.medspec_vchr,
			 case
				 when b.lotno_vchr = 'UNKNOWN' then
					''
				 else
					b.lotno_vchr
			 end lotno_vchr,
			 d.medicinetypename_vchr,
			 decode(c.opchargeflg_int,
              0,
              round(b.iprealgross_int / b.packqty_dec, 2),
              b.iprealgross_int) realgross_int,
       decode(c.opchargeflg_int,
              0,
              round(b.ipavailablegross_num / b.packqty_dec, 2),
              b.ipavailablegross_num) availagross_int,
       b.opunit_chr,
       decode(c.opchargeflg_int,
              0,
              b.opretailprice_int,
              round(b.opretailprice_int / b.packqty_dec, 4)) retailprice_int,
       decode(c.opchargeflg_int,
              0,
              b.opwholesaleprice_int,
              round(b.opwholesaleprice_int / b.packqty_dec, 4)) wholesaleprice_int,
			 b.validperiod_dat,
			 e.medicinepreptypename_vchr,
			 c.productorid_chr,
			 b.storagerackid_chr,
			 f.storagerackname_vchr,
             b.canprovide_int,
			 b.oprealgross_int,
			 b.opavailablegross_num opavailagross_int,
			 b.opretailprice_int,
			 b.opwholesaleprice_int,
			 b.iprealgross_int,
			 b.ipavailablegross_num ipavailagross_int,
			 b.ipunit_chr,
			 b.ipretailprice_int,
			 b.ipwholesaleprice_int,
			 decode(c.opchargeflg_int, 0, b.opunit_chr, b.ipunit_chr) unit_chr,
			 b.packqty_dec,
			 h.ifstop_int,
			 h.noqtyflag_int,
			 c.pycode_chr,
			 c.wbcode_chr,
			 b.seriesid_int,c.opchargeflg_int,c.ipchargeflg_int
	from t_ds_storage_detail b
 left join t_ds_storage h on b.medicineid_chr = h.medicineid_chr
													and b.drugstoreid_chr = h.drugstoreid_chr
 left join t_bse_medicine c on b.medicineid_chr = c.medicineid_chr
 left join t_aid_medicinetype d on c.medicinetypeid_chr =
																		d.medicinetypeid_chr
	left outer join t_aid_medicinepreptype e on c.medicinepreptype_chr =
																							e.medicinepreptype_chr
	left join t_ms_storagerackset f on f.storagerackid_chr =
																		 b.storagerackid_chr
	left join t_bse_medstore g on g.deptid_chr = b.drugstoreid_chr"    );
            }

            try
            {
                int m_intParamCount = 1;

                StringBuilder m_strbCondition = new StringBuilder("");

                clsHRPTableService objHRPServ   = new clsHRPTableService();
                IDataParameter[]   objDPArr     = null;
                IDataParameter[]   tmp_objDPArr = null;
                objHRPServ.CreateDatabaseParameter(12 + p_lstMedicineType.Count, out tmp_objDPArr);
                strSQL.Append(@" where b.status=1 and (g.medstoreid_chr = ?) and h.ifstop_int = 0");
                tmp_objDPArr[0].Value = objvalue_Param.m_strStorageID;
                if (objvalue_Param.m_strValidBeginDate.Trim().Length == 10 && objvalue_Param.m_strValidEndDate.Trim().Length != 10)
                {
                    strSQL.Append(@" and (b.validperiod_dat>=?)");
                    ++m_intParamCount;
                    tmp_objDPArr[m_intParamCount - 1].Value  = Convert.ToDateTime(objvalue_Param.m_strValidBeginDate);
                    tmp_objDPArr[m_intParamCount - 1].DbType = DbType.Date;
                }

                if (objvalue_Param.m_strValidEndDate.Trim().Length == 10 && objvalue_Param.m_strValidBeginDate.Trim().Length != 10)
                {
                    strSQL.Append(@" and  (b.validperiod_dat<=?)");
                    ++m_intParamCount;
                    tmp_objDPArr[m_intParamCount - 1].Value  = Convert.ToDateTime(objvalue_Param.m_strValidEndDate);
                    tmp_objDPArr[m_intParamCount - 1].DbType = DbType.Date;
                }

                if (objvalue_Param.m_strValidBeginDate.Trim().Length == 10 && objvalue_Param.m_strValidEndDate.Trim().Length == 10)
                {
                    strSQL.Append(@" and (b.validperiod_dat between ? and ?)");
                    ++m_intParamCount;
                    tmp_objDPArr[m_intParamCount - 1].Value  = Convert.ToDateTime(objvalue_Param.m_strValidBeginDate);
                    tmp_objDPArr[m_intParamCount - 1].DbType = DbType.Date;

                    ++m_intParamCount;
                    tmp_objDPArr[m_intParamCount - 1].Value  = Convert.ToDateTime(objvalue_Param.m_strValidEndDate);
                    tmp_objDPArr[m_intParamCount - 1].DbType = DbType.Date;
                }

                if (objvalue_Param.m_strMedicineID.Trim().Length > 0)
                {
                    strSQL.Append(@" and (b.medicineid_chr = ?)");
                    ++m_intParamCount;
                    tmp_objDPArr[m_intParamCount - 1].Value = objvalue_Param.m_strMedicineID;
                }
                else
                {
                    if (objvalue_Param.m_strAssistCode.Length > 0)
                    {
                        strSQL.Append(@" and ((b.medicineid_chr like ?)
                                       or (c.assistcode_chr like ?) 
                                       or (c.medicinename_vchr like ?)
                                       or (c.pycode_chr like ?) 
                                       or (c.wbcode_chr like ?))");
                        for (int i1 = 0; i1 < 5; i1++)
                        {
                            tmp_objDPArr[m_intParamCount + i1].Value = objvalue_Param.m_strAssistCode;
                        }
                        m_intParamCount = m_intParamCount + 5;
                    }
                }

                if (p_lstMedicineType.Count > 0)
                {
                    strSQL.Append(@" and ((c.medicinetypeid_chr=?)");
                    ++m_intParamCount;
                    tmp_objDPArr[m_intParamCount - 1].Value = p_lstMedicineType[0].ToString();

                    for (int i1 = 1; i1 < p_lstMedicineType.Count; i1++)
                    {
                        strSQL.Append(@" or (c.medicinetypeid_chr=?)");
                        ++m_intParamCount;
                        tmp_objDPArr[m_intParamCount - 1].Value = p_lstMedicineType[i1].ToString();
                    }
                    strSQL.Append(@")");
                }

                if (objvalue_Param.m_blnZeroGross == false)
                {
                    strSQL.Append(@" and (b.oprealgross_int<>?)");
                    ++m_intParamCount;
                    tmp_objDPArr[m_intParamCount - 1].Value = 0;
                }

                if (p_strProductor.Length > 0)
                {
                    strSQL.Append(@" and c.productorid_chr like ? ");
                    ++m_intParamCount;
                    tmp_objDPArr[m_intParamCount - 1].Value = p_strProductor + "%";
                }

                //if (p_strPrepType.Length > 0)
                //{
                //    strSQL.Append(@" and c.medicinepreptype_chr = ? ");
                //    ++m_intParamCount;
                //    tmp_objDPArr[m_intParamCount - 1].Value = p_strPrepType;
                //}

                string strType     = string.Empty;
                string strPrepType = string.Empty;
                bool   blnAll      = false;
                if (p_objPrepTypeArr != null && p_objPrepTypeArr.Length > 0)
                {
                    for (int i1 = 0; i1 < p_objPrepTypeArr.Length; i1++)
                    {
                        if (p_objPrepTypeArr[i1].m_strMEDICINEPREPTYPE_CHR.Length == 0)
                        {
                            blnAll = true;
                            break;
                        }
                        else
                        {
                            strPrepType += p_objPrepTypeArr[i1].m_strMEDICINEPREPTYPE_CHR + ",";
                        }
                    }
                    if (!blnAll)
                    {
                        strType = " and c.medicinepreptype_chr in (" + strPrepType.Substring(0, strPrepType.Length - 1) + ")";
                        strSQL.Append(strType);
                    }
                }

                strSQL.Append(@" order by  c.medicineid_chr,c.assistcode_chr,lotno_vchr");


                objHRPServ.CreateDatabaseParameter(m_intParamCount, out objDPArr);

                for (int i1 = 0; i1 < m_intParamCount; i1++)
                {
                    objDPArr[i1].Value  = tmp_objDPArr[i1].Value;
                    objDPArr[i1].DbType = tmp_objDPArr[i1].DbType;
                }


                lngRes = objHRPServ.lngGetDataTableWithParameters(strSQL.ToString(), ref dtbResult, objDPArr);
                objHRPServ.Dispose();
                objHRPServ = null;
                //合并药品 20080116 暂取消合并功能(考虑到可修改库存量的功能及此需求尚未有客户提出) by shaowei.zheng
                //double intRealGross = 0;
                //double intAvailaGross = 0;
                //double intTemA;
                //double intTemR;
                //double intIPRealGross = 0;
                //double intIPAvailaGross = 0;
                //double intIPTemA;
                //double intIPTemR;

                //DataTable dtbTemp = dtbResult.Clone();
                //for (int intRow = 0; intRow < dtbResult.Rows.Count; intRow++)
                //{
                //    DataRow dtrTemp = dtbResult.Rows[intRow];
                //    if ((intRow + 1 >= dtbResult.Rows.Count) || (dtbResult.Rows[intRow]["assistcode_chr"].ToString() != dtbResult.Rows[intRow + 1]["assistcode_chr"].ToString()
                //        || dtbResult.Rows[intRow]["lotno_vchr"].ToString() != dtbResult.Rows[intRow + 1]["lotno_vchr"].ToString()
                //        || Convert.ToDouble(dtbResult.Rows[intRow]["wholesaleprice_int"]) != Convert.ToDouble(dtbResult.Rows[intRow + 1]["wholesaleprice_int"])
                //        || Convert.ToDouble(dtbResult.Rows[intRow]["retailprice_int"]) != Convert.ToDouble(dtbResult.Rows[intRow + 1]["retailprice_int"])))
                //    {
                //        if (intRealGross > 0)
                //        {
                //            double.TryParse(Convert.ToString(dtbResult.Rows[intRow]["realgross_int"]),out intTemR);
                //            double.TryParse(Convert.ToString(dtbResult.Rows[intRow]["availagross_int"]),out intTemA);
                //            double.TryParse(Convert.ToString(dtbResult.Rows[intRow]["iprealgross_int"]), out intIPTemR);
                //            double.TryParse(Convert.ToString(dtbResult.Rows[intRow]["ipavailagross_int"]), out intIPTemA);
                //            dtrTemp["realgross_int"] = intTemR + intRealGross;
                //            dtrTemp["availagross_int"] = intTemA + intAvailaGross;
                //            dtrTemp["iprealgross_int"] = intIPTemR + intIPRealGross;
                //            dtrTemp["ipavailagross_int"] = intIPTemA + intIPAvailaGross;
                //        }
                //        dtbTemp.Rows.Add(dtrTemp.ItemArray);
                //        intRealGross = 0;
                //        intAvailaGross = 0;
                //        intIPRealGross = 0;
                //        intIPAvailaGross = 0;
                //    }
                //    else
                //    {
                //        double.TryParse(Convert.ToString(dtrTemp["realgross_int"]), out intTemR);
                //        double.TryParse(Convert.ToString(dtrTemp["availagross_int"]), out intTemA);
                //        double.TryParse(Convert.ToString(dtrTemp["iprealgross_int"]), out intIPTemR);
                //        double.TryParse(Convert.ToString(dtrTemp["ipavailagross_int"]), out intIPTemA);
                //        intRealGross += intTemR;
                //        intAvailaGross += intTemA;
                //        intIPRealGross += intIPTemR;
                //        intIPAvailaGross += intIPTemA;
                //    }
                //}
                //dtbResult = dtbTemp;
            }
            catch (Exception objEx)
            {
                string strTmp = objEx.Message;
                com.digitalwave.Utility.clsLogText objLogger = new clsLogText();
                bool blnRes = objLogger.LogError(objEx);
                dtbResult = null;
            }
            return(lngRes);
        }