⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fypzdwh.cs

📁 基于C/S的医疗卫生管理系统
💻 CS
📖 第 1 页 / 共 5 页
字号:
                //增加节点
                string flId = m_DsTemp_YpFl.GetItemString(1, "ypflid");
                string flMc = "";
                if (!m_DsTemp_YpFl.IsItemNull(1, "ypflmc"))
                    flMc = m_DsTemp_YpFl.GetItemString(1, "ypflmc");

                TreeNode node = parentNode.Nodes.Add(flId, flMc);
                if (node.Level == 1)
                {
                    node.ImageKey = QTreeView.ImageKeyEnum.Level2_Close.ToString();
                    node.SelectedImageKey = QTreeView.ImageKeyEnum.Level2_Open.ToString();
                }
                else
                {
                    node.ImageKey = QTreeView.ImageKeyEnum.Level3_Close.ToString();
                    node.SelectedImageKey = QTreeView.ImageKeyEnum.Level3_Open.ToString();
                }

                node.Tag = flId;
                m_DsTemp_YpFl.RowsMove(1, 1, Sybase.DataWindow.DataBuffer.Primary, m_DsYpFl, 1, Sybase.DataWindow.DataBuffer.Primary);

            }
            catch (Exception ex)
            {
                this.btnAddYpFl.Enabled = false;
                MessageBox.Show("增加药品分类成功,刷新界面发生异常,请退出重试!\r\n" + ex.Message);
            }

        }
        #endregion

        #region Form_Load
        private void FYpZdWh_Load(object sender, EventArgs e)
        {
            this.Init();
        }
        #endregion

        #region 关闭按钮
        private void btnClose_Click(object sender, EventArgs e)
        {
            this.Close();
        }
        #endregion

        #region 药品名称 查、增、删、改

        #region 检索药品名称
        private void RetrieveYpMc(string ypFlId)
        {
            try
            {
                DbProxyClient proxy = App.DbProxy;
                proxy.Clear();
                proxy.AddRetrieveParam("p_ypflid", ypFlId);
                //药品分类已经用库房类型过滤过,根据分类ID检索时不需要再使用库房类型
                //proxy.AddRetrieveParam("p_kflx", App.kfLx);                 
                proxy.Retrieve(dwYpMc);

                //排序
                dwYpMc.SetSort("ypid,ypbmid");
                dwYpMc.Sort();
            }
            catch (Exception ex)
            {
                AppError error = new AppError("药品字表维护:检索药品名称发生异常", this.GetType(), ex);
                AppLog.Add(error);
                MessageBox.Show("检索药品名称发生异常:" + ex.Message, MsgTitle.Error);
            }
        }
        #endregion

        #region 增加药品
        private void AddYpMc(string ypFlId, string ypFlMc)
        {
            if (ypFlId == null || ypFlId.Trim() == "")
            {
                MessageBox.Show("参数错误,药品分类ID为空!", MsgTitle.Error);
                return;
            }
            //取药品分类的药品类型
            m_DsYpFl.SetFilter("");
            m_DsYpFl.Filter();
            string ypLx = "";
            int row = m_DsYpFl.FindRow("ypflid='" + ypFlId + "'", 1, m_DsYpFl.RowCount);
            if (row > 0)
            {
                if (!m_DsYpFl.IsItemNull(row, "yplx"))
                    ypLx = m_DsYpFl.GetItemString(row, "yplx");
            }
            if (ypLx.Trim() == "")
            {
                MessageBox.Show("没有取到药品分类的药品类型,无法新增药品!", MsgTitle.Error);
                return;
            }

            FYpZdWh_YpMcWh fYpMcWh = new FYpZdWh_YpMcWh();
            try
            {
                string ypId = "0"; //0表示新增
                fYpMcWh.SetId(ypId, ypFlId, ypFlMc, ypLx);
                DialogResult dResult = fYpMcWh.ShowDialog(this);
                if (dResult == DialogResult.OK)
                {
                    AddYpMcRecord(fYpMcWh.YpXx);
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("调用药品名称维护窗口发生异常:" + ex.Message, MsgTitle.Error);
            }
            finally
            {
                fYpMcWh.Dispose();
                tvYpFl.Focus();
            }

        }

        private void AddYpMcRecord(YpMcWh_ReturnValue ypXx)
        {
            try
            {
                if (dwYpMc.RowCount == 0)
                {
                    RetrieveYpMc(ypXx.ypFlId);
                }
                else
                {
                    int row = dwYpMc.InsertRow();

                    //药品ID
                    dwYpMc.SetItemString(row, "ypid", ypXx.ypId);
                    //药品名称
                    dwYpMc.SetItemString(row, "ypmc", ypXx.ypMc);
                    //药品分类ID
                    dwYpMc.SetItemString(row, "ypflid", ypXx.ypFlId);
                    //标准编码
                    dwYpMc.SetItemString(row, "bzbm", ypXx.bzBm);
                    //药品类型
                    dwYpMc.SetItemString(row, "yplx", ypXx.ypLx);

                    //排序
                    dwYpMc.SetSort("ypid,ypbmid");
                    dwYpMc.Sort();

                    ////定位到新增的记录
                    row = dwYpMc.FindRow("ypid='" + ypXx.ypId + "' and isnull(ypbmid)", 1, dwYpMc.RowCount);
                    if (row > 0)
                    {
                        dwYpMc.SetRow(row);
                        dwYpMc.ScrollToRow(row);
                    }
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("药品名称已成功增加,刷新界面发生异常,请退出重试!\r\n" + ex.Message, MsgTitle.Error);
                btnAddYpFl.Enabled = false;
            }

        }
        #endregion

        #region 修改药品名称
        private void ModifyYpMc(string ypId,string ypFlId,string ypFlMc,string ypBmId)
        {
            FYpZdWh_YpMcWh fYpMcWh = new FYpZdWh_YpMcWh();
            try
            {
                string ypLx = "";   //修改可不传值
                fYpMcWh.SetId(ypId, ypFlId, ypFlMc, ypLx);
                DialogResult dResult = fYpMcWh.ShowDialog(this);
                if (dResult == DialogResult.OK)
                {
                    RetrieveYpMc(ypFlId);
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("调用药品名称维护窗口发生异常:" + ex.Message, MsgTitle.Error);
                return;
            }
            finally
            {
                fYpMcWh.Dispose();
            }

            //定位到修改的行
            string expression ="";
            if (string.IsNullOrEmpty(ypBmId))
                expression = "ypid='"+ypId+"' and (ypbmid='' or isnull(ypbmid))";
            else
                expression = "ypid='"+ypId+"' and ypbmid='"+ypBmId+"'";

            int row = dwYpMc.FindRow(expression, 1, dwYpMc.RowCount);
            if (row>0)
            {
                dwYpMc.ScrollToRow(row);
                dwYpMc.SetRow(row);
            }
        }
        #endregion

        #region 删除药品名称
        private void DelYpMc()
        {
            int row = dwYpMc.CurrentRow;
            if (row == 0)
                return;

            string ypId = dwYpMc.GetItemString(row, "ypid");
                        
            DbProxyClient proxy = App.DbProxy;
            //检查是否有未作废的别名
            try
            {
                string sql = "SELECT COUNT(*) FROM GY_YPBMK WHERE YPID='"+ypId+"' AND NVL(ZFBZ,0)=0";
                proxy.Clear();
                string ret = proxy.ExecuteScalar(sql);
                if (!string.IsNullOrEmpty(ret) && int.Parse(ret)>0)
                {
                    MessageBox.Show("该药品还有未删除的别名,请先删除别名再删除主名!",MsgTitle.Prompt);
                    return;
                }
            }
            catch(Exception ex)
            {
                MessageBox.Show("检查药品是否有未作废的别名时发生异常:"+ex.Message, MsgTitle.Error);
                return;
            }

            //检查是否有未作废的规格
            try
            {
                string sql = "SELECT COUNT(*) FROM GY_YPGGK WHERE YPID='" + ypId + "' AND NVL(ZFBZ,0)=0";
                proxy.Clear();
                string ret = proxy.ExecuteScalar(sql);
                if (!string.IsNullOrEmpty(ret) && int.Parse(ret) > 0)
                {
                    MessageBox.Show("该药品还有未删除的规格,请先删除规格再删除主名!", MsgTitle.Prompt);
                    return;
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("检查药品是否有未作废的别名时发生异常:" + ex.Message, MsgTitle.Error);
                return;
            }

            string ypMc = "";
            if (!dwYpMc.IsItemNull(row,"ypmc"))
                ypMc = dwYpMc.GetItemString(row, "ypmc");

            DialogResult dResult = MessageBox.Show("您确定要删除药名【" + ypMc + "】吗?", MsgTitle.Prompt, MessageBoxButtons.YesNo, MessageBoxIcon.Question);
            if (dResult == DialogResult.No)
                return;

            OracleCommand command = new OracleCommand();
            command.CommandText = "UPDATE GY_YPMCK SET ZFBZ=1 WHERE YPID=:p_ypid";
            command.CommandType = CommandType.Text;
            OracleParameter p_YpId = new OracleParameter();
            p_YpId.ParameterName = ":p_ypid";
            p_YpId.DbType = DbType.String;
            p_YpId.Value = ypId;
            command.Parameters.Add(p_YpId);

            try
            {
                proxy.Clear();
                proxy.AddDbCommand(command,new VerifyInfo(VerifyModeEnum.AffectRows,LogicSymbolEnum.Equal,1));
                proxy.Update();
            }
            catch(Exception ex)
            {
                MessageBox.Show("删除药品名称发生异常:"+ex.Message,MsgTitle.Error);
                return;
            }
            
            string ypLx = "";
            if (!dwYpMc.IsItemNull(row,"ypmc"))
                ypLx= dwYpMc.GetItemString(row, "ypmc");

            dwYpMc.DeleteRow(dwYpMc.CurrentRow);

            RetrieveYpGg(ypId, ypLx);
        }
        #endregion

        #endregion

        #region 药品别名 增、删、改

        #region 增加药品别名
        private void btnAddOtherName_Click(object sender, EventArgs e)
        {
            AddYpBm();
        }

        private void AddYpBm()
        {
            int row = dwYpMc.CurrentRow;
            if (row == 0)
                return;

            if (dwYpMc.IsItemNull(row, "ypid"))
                return;

            string ypId = dwYpMc.GetItemString(row, "ypid");
            string ypmc = "";
            if (!dwYpMc.IsItemNull(row, "ypmc"))
                ypmc = dwYpMc.GetItemString(row, "ypmc");

            FYpZdWh_YpBmWh fYpBmWh = null;
            try
            {
                string ypBmId = "0"; //0表示新增
                fYpBmWh = new FYpZdWh_YpBmWh();
                fYpBmWh.SetId(ypBmId, ypId, ypmc);
                DialogResult dResult = fYpBmWh.ShowDialog(this);
                if (dResult == DialogResult.OK)
                {
                    AddYpBmRecord(row, fYpBmWh.YpBmXx);

                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("调用药品别名维护窗口发生异常:" + ex.Message, MsgTitle.Error);
            }
            finally
            {
                if (fYpBmWh != null)
                    fYpBmWh.Dispose();
            }
        }

        private void AddYpBmRecord(int ypRow, YpBmWh_ReturnValue ypBmXx)
        {
            try
            {
                if (dwYpMc.IsItemNull(ypRow, "ypbmid"))
                {
                    //药品别名ID
                    dwYpMc.SetItemString(ypRow, "ypbmid", ypBmXx.ypBmId);

                    //药品别名名称
                    dwYpMc.SetItemString(ypRow, "ypbmmc", ypBmXx.ypBmMc);

                    return;
                }

                int row = dwYpMc.InsertRow(ypRow + 1);
                //药品别名ID
                dwYpMc.SetItemString(row, "ypbmid", ypBmXx.ypBmId);

                //药品别名名称
                dwYpMc.SetItemString(row, "ypbmmc", ypBmXx.ypBmMc);

                //药品ID
                dwYpMc.SetItemString(row, "ypid", dwYpMc.GetItemString(ypRow, "ypid"));

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -