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

📄 fypzdwh_ypmcwh.cs

📁 基于C/S的医疗卫生管理系统
💻 CS
字号:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

using Oracle.DataAccess.Client;
using Sybase.DataWindow;

using Qeb.Control;
using Qeb.DBProxy;
using Qeb.Support;
using Qeb.Support.Common;

namespace Qeb.YK
{
    public partial class FYpZdWh_YpMcWh : Qeb.Control.FBase
    {
        //药品ID  0 表示新增
        private string m_YpId = "";
        //药品分类ID
        private string m_YpFlId = "";
        //药品分类名称
        //private string m_YpFlMc = "";
        //药品类型 (新增时需传入)
        private string m_YpLx = "";

        public FYpZdWh_YpMcWh()
        {
            InitializeComponent();

            dwYpMc.LibraryList = PBL.YkPbl;
            dwYpMc.DataWindowObject = YkDataObjects.D_Yk_YpMcWh;
        }

        internal void SetId(string ypId,string ypFlId,string ypFlMc,string ypLx)
        {
            if (string.IsNullOrEmpty(ypId))
                throw new Exception("入参错误,药品ID不能为空");

            if (string.IsNullOrEmpty(ypFlId))
                throw new Exception("入参错误,药品分类ID不能为空");

            m_YpId = ypId;
            m_YpFlId = ypFlId;
            //m_YpFlMc = ypFlMc;
            m_YpLx = ypLx;

            if (m_YpId =="0")
            {
                this.Text = "药品名称维护 新增";
            }
            else
            {
                this.Text = "药品名称维护 修改";
            }
            labelYpFlMc.Text = "分类名称:"+ypFlMc;
        }

        private void RetrieveYpMc()
        {
            try
            {
                DbProxyClient proxy = App.DbProxy;
                proxy.Clear();
                proxy.AddRetrieveParam("p_ypid", m_YpId);
                proxy.Retrieve(dwYpMc);
            }
            catch(Exception ex)
            {
                MessageBox.Show("检索药品名称发生异常:"+ex.Message,MsgTitle.Error);
            }
        }

        private string GetBzBm(string ypFlId)
        {
            string sql = "SELECT MAX(BZBM) FROM GY_YPMCK WHERE YPFLID='" + ypFlId + "'";
            string bzBm = App.DbProxy.ExecuteScalar(sql);
            if (string.IsNullOrEmpty(bzBm))
            {
                sql = "SELECT BZBM FROM GY_YPFL WHERE YPFLID='" + ypFlId + "'";
                bzBm = App.DbProxy.ExecuteScalar(sql);
                if (bzBm == null || bzBm.Trim()=="")
                {
                    throw new Exception("取到的药品分类编码为空");
                }

                bzBm += "001";
            }
            else
            {
                int temp = int.Parse(bzBm.Substring(bzBm.Length - 3, 3)) + 1;

                bzBm = bzBm.Substring(0,bzBm.Length-3)+temp.ToString().PadLeft(3,'0');
            }

            return bzBm;  
        }

        private void FYpZdWh_YpMcWh_Load(object sender, EventArgs e)
        {
            if (m_YpId == "0")
            {
                int row = dwYpMc.InsertRow(0);
                //药品分类ID
                dwYpMc.SetItemString(row,"ypflid",m_YpFlId);
                //急诊用药标志
                dwYpMc.SetItemDecimal(row, "jzyybz", 0);
                //控制药量标志
                dwYpMc.SetItemDecimal(row, "kzylbz", 0);
                //作废标志
                dwYpMc.SetItemDecimal(row, "zfbz", 0);
                //药品类型
                dwYpMc.SetItemString(row, "yplx", m_YpLx);

                //取标准编码
                string bzBm = "";
                try
                {
                     bzBm = GetBzBm(m_YpFlId);
                }
                catch (System.Exception ex)
                {
                	MessageBox.Show("生成药品的标准编码发生异常:"+ex.Message,MsgTitle.Error);
                    this.Close();
                }

                dwYpMc.SetItemString(row, "bzbm", bzBm);
            }
            else
            {
                RetrieveYpMc();
            }

            //设置药品类型下拉框的项目
            string itemValue = YkGy.KfLx2DwDropDownItem(App.kfLx);
            dwYpMc.SetProperty("yplx.Values", itemValue);

            try
            {
                //价值分类
                DataWindowChild dwcJzFl = dwYpMc.GetChild("jzflid");
                DbProxyClient proxy = App.DbProxy;
                proxy.Clear();
                proxy.AddRetrieveParam("p_flid", GyDmDefine.DMFL_YPJZFL);
                proxy.Retrieve(dwcJzFl);

                //毒理分类
                DataWindowChild dwcDlFl = dwYpMc.GetChild("dlflid");
                proxy.Clear();
                proxy.AddRetrieveParam("p_flid", GyDmDefine.DMFL_DLFL);
                proxy.Retrieve(dwcDlFl);
            }
            catch(Exception ex)
            {
                MessageBox.Show("处理子数据窗口发生异常:" + ex.Message, MsgTitle.Error);
            }
        }

        

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

        private YpMcWh_ReturnValue m_YpXx;
        internal YpMcWh_ReturnValue YpXx
        {
            get { return this.m_YpXx; }
        }

        #region 保存

        private bool CheckYpMcXx()
        {
            if (!dwYpMc.AcceptText())
                return false;

            //药品名称
            if (dwYpMc.IsItemNull(1, "ypmc") || dwYpMc.GetItemString(1, "ypmc") == "")
            {
                MessageBox.Show("药品名称不能为空,请输入!", MsgTitle.Prompt);
                dwYpMc.Focus();
                dwYpMc.SetColumn("ypmc");
                return false;
            }

            //药品类型
            if (dwYpMc.IsItemNull(1, "yplx") || dwYpMc.GetItemString(1, "yplx") == "")
            {
                MessageBox.Show("药品类型没有选择,请选择!", MsgTitle.Prompt);
                dwYpMc.Focus();
                dwYpMc.SetColumn("yplx");
                return false;
            }

            //药品价值分类
            if (dwYpMc.IsItemNull(1, "jzflid") || dwYpMc.GetItemString(1, "jzflid") == "")
            {
                MessageBox.Show("药品价值分类没有选择,请选择!", MsgTitle.Prompt);
                dwYpMc.Focus();
                dwYpMc.SetColumn("jzflid");
                return false;
            }

            //药品毒理分类
            if (dwYpMc.IsItemNull(1, "dlflid") || dwYpMc.GetItemString(1, "dlflid") == "")
            {
                MessageBox.Show("药品毒理分类没有选择,请选择!", MsgTitle.Prompt);
                dwYpMc.Focus();
                dwYpMc.SetColumn("dlflid");
                return false;
            }

            return true;
        }

        private void btnSave_Click(object sender, EventArgs e)
        {
            if (!CheckYpMcXx())
                return;

            if (m_YpId == "0")
            {
                //设置主键
                try
                {
                    string ypId = Sequence.GetXhByName("SEQ_GY_YPMCK_YPID",6);
                    if (string.IsNullOrEmpty(ypId))
                    {
                        MessageBox.Show("取药品ID不成功,取到的值为空!", MsgTitle.Error);
                        return;
                    }
                    dwYpMc.SetItemString(1, "ypId", ypId);
                }
                catch (Exception ex)
                {
                    MessageBox.Show("取药品ID发生异常:" + ex.Message, MsgTitle.Error);
                    return;
                }
            }

            //设置返回值
            try
            {
                //药品ID
                if (!dwYpMc.IsItemNull(1, "ypid"))
                    m_YpXx.ypId = dwYpMc.GetItemString(1, "ypid");

                //药品名称
                if (!dwYpMc.IsItemNull(1, "ypmc"))
                    m_YpXx.ypMc = dwYpMc.GetItemString(1, "ypmc");

                //药品分类ID
                if (!dwYpMc.IsItemNull(1, "ypflid"))
                    m_YpXx.ypFlId = dwYpMc.GetItemString(1, "ypflid");

                //标准编码
                if (!dwYpMc.IsItemNull(1, "bzbm"))
                    m_YpXx.bzBm = dwYpMc.GetItemString(1, "bzbm");

                //药品类型
                if (!dwYpMc.IsItemNull(1, "yplx"))
                    m_YpXx.ypLx = dwYpMc.GetItemString(1, "yplx");
            }
            catch(Exception ex)
            {
                MessageBox.Show("设置药品返回信息发生异常:"+ex.Message,MsgTitle.Error);
                return;
            }

            //保存
            try
            {
                DbProxyClient proxy = App.DbProxy;
                proxy.Clear();
                proxy.AddDataWindow(dwYpMc);
                if (m_YpId !="0")
                {
                    proxy.AddDbCommand(GetAfterUpdateYpMcCommand(), new VerifyInfo(VerifyModeEnum.OutputPara, ":p_appcode", LogicSymbolEnum.Equal, 1));
                }
                proxy.Update();
                this.DialogResult = DialogResult.OK;
                this.Close();
            }
            catch(Exception ex)
            {
                MessageBox.Show("保存药品名称信息时发生异常:"+ex.Message, MsgTitle.Error);
            }
        }

        private OracleCommand GetAfterUpdateYpMcCommand()
        {
            if (dwYpMc.IsItemNull(1, "ypid"))
                throw new Exception("数据窗口中药品ID没有设置值。");

            string ypId = dwYpMc.GetItemString(1, "ypid");

            OracleCommand command = new OracleCommand();
            command.CommandText = "PKG_GY_YPZD.Prc_AfterUpdateYpMcXx";
            command.CommandType = CommandType.StoredProcedure;

            //药品ID
            OracleParameter p_YpId = new OracleParameter();
            p_YpId.ParameterName = ":p_ypid";
            p_YpId.Value = ypId;
            p_YpId.DbType = DbType.String;
            p_YpId.Direction = ParameterDirection.Input;

            OracleParameter p_AppCode = new OracleParameter();
            p_AppCode.ParameterName = ":p_appcode";
            p_AppCode.DbType = DbType.Int32;
            p_AppCode.Direction = ParameterDirection.Output;

            OracleParameter p_OutBuffer = new OracleParameter();
            p_OutBuffer.ParameterName = ":p_outbuffer";
            p_OutBuffer.DbType = DbType.String;
            p_OutBuffer.Size = 600;
            p_OutBuffer.Direction = ParameterDirection.Output;

            command.Parameters.Add(p_YpId);
            command.Parameters.Add(p_AppCode);
            command.Parameters.Add(p_OutBuffer);

            return command;
        }
        #endregion

        #region DW事件处理
        private void dwYpMc_ItemError(object sender, ItemErrorEventArgs e)
        {
            e.Action = ItemErrorAction.RejectWithNoMessage;
        }

        private void dwYpMc_ItemChanged(object sender, Sybase.DataWindow.ItemChangedEventArgs e)
        {
            if (e.ColumnName == "ypmc")
            {
                if (e.Data == null || e.Data.Trim() == "")
                {
                    e.Action = ItemChangedAction.Reject;
                    dwYpMc.SetItemNull(e.RowNumber, "ypmc");
                    dwYpMc.SetItemNull(e.RowNumber, "srm1");
                    dwYpMc.SetItemNull(e.RowNumber, "srm2");
                    dwYpMc.SetItemNull(e.RowNumber, "srm3");
                }
                string srm1 = "";
                string srm2 = "";
                string srm3 = "";
                
                string errMsg = StringHelper.GetSrm(e.Data, true, ref srm1, ref srm2, ref srm3);
                if (errMsg =="")
                {
                    dwYpMc.SetItemString(e.RowNumber, "srm1",srm1);
                    dwYpMc.SetItemString(e.RowNumber, "srm2", srm2);
                    dwYpMc.SetItemString(e.RowNumber, "srm3", srm3);
                }
                else
                {
                    MessageBox.Show(errMsg, MsgTitle.Error);
                }
            }
        }

        private void dwYpMc_ItemFocusChanged(object sender, Sybase.DataWindow.ItemFocusChangedEventArgs e)
        {
            if (e.ColumnName == "ypmc")
                dwYpMc.SetIME(true);
            else
                dwYpMc.SetIME(false);
        }
        #endregion

        
    }
}

⌨️ 快捷键说明

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