Example #1
0
        /// <summary>
        /// 修改摆药单类别
        /// </summary>
        private void ModifyDrugBill( )
        {
            if (this.lvPutDrugBill1.SelectedItems.Count > 0)
            {
                if (this.drugBillClassInfo.ID == "" || this.drugBillClassInfo.ID == null)
                {
                    this.lvPutDrugBill1.ClearSelection();

                    MessageBox.Show(Neusoft.FrameWork.Management.Language.Msg("请选择要修改的摆药单"));
                    return;
                }

                //显示摆药单编辑信息
                this.neuTabControl1.TabPages.Add(this.tabPage2);
                this.neuTabControl1.SelectedIndex = 1;
            }
            else
            {
                MessageBox.Show(Neusoft.FrameWork.Management.Language.Msg("请选择要修改的摆药单"));
                //重新设置摆药单属性
                this.neuTabControl1.SelectedIndex = 1;
                this.ResetDrugBillAttribute( );
                this.drugBillClassInfo = new DrugBillClass( );
            }
        }
        /// <summary>
        /// 修改单条摆药单信息
        /// </summary>
        /// <param name="billClass">摆药单分类实体</param>
        /// <returns></returns>
        protected virtual int ModifyItem(DrugBillClass billClass, int index)
        {
            if (billClass != null && index >= 0)
            {
                //区别有效和无效的项目图标
                if (billClass.IsValid)
                {
                    this.Items[index].ImageIndex = 0;
                }
                else
                {
                    this.Items[index].ImageIndex = 1;
                }
                //如果是新增加的项目,显示特殊的图标
                if (billClass.ID == "")
                {
                    this.Items[index].ImageIndex = 2;
                }

                //Tag属性保存摆药单分类实体
                this.Items[index].Tag = billClass;
                //添加listView的子节点
                this.Items[index].SubItems[0].Text = billClass.Name;
                this.Items[index].SubItems[1].Text = billClass.PrintType.Name;
                this.Items[index].SubItems[2].Text = billClass.IsValid ? "有效" : "无效";
                this.Items[index].SubItems[3].Text = billClass.Memo;
                return(0);
            }
            else
            {
                return(-1);
            }
        }
Example #3
0
        /// <summary>
        /// 查找指定时间点打印的摆药单的节点
        /// </summary>
        /// <param name="strOperTime">指定的摆药时间点</param>
        private void FindNode(string strOperTime)
        {
            TreeView tvBill;

            if (this.neuTabControl1.SelectedTab == this.tpDrugBill)
            {
                tvBill = this.tvDrugBill;
            }
            else
            {
                tvBill = this.tvApproveBill;
            }

            foreach (TreeNode billClassNode in tvBill.Nodes)
            {
                foreach (TreeNode deptBillNode in billClassNode.Nodes)
                {
                    DrugBillClass drugBillClass = deptBillNode.Tag as DrugBillClass;

                    if (drugBillClass.Oper.OperTime.ToString("Hmmss") == strOperTime)
                    {
                        tvBill.SelectedNode = deptBillNode;
                        return;
                    }
                }
            }
        }
Example #4
0
 /// <summary>
 /// 选择摆药单信息
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void lvPutDrugBill1_SelectedIndexChanged(object sender, EventArgs e)
 {
     if (this.lvPutDrugBill1.SelectedItems.Count > 0)
     {
         //置所有的非当前摆药单为未选中状态
         foreach (ListViewItem lvi in this.lvPutDrugBill1.CheckedItems)
         {
             lvi.Checked = false;
         }
         this.lvPutDrugBill1.SelectedItems[0].Checked = true;
         //设置当前摆药单信息
         this.SetDrugBillItem(this.lvPutDrugBill1.SelectedItems[0].Tag as DrugBillClass);
         if (this.drugBillClassInfo.ID != null)
         {
             Neusoft.FrameWork.WinForms.Classes.Function.ShowWaitForm(Neusoft.FrameWork.Management.Language.Msg("正在生成预览信息..."));
             Application.DoEvents( );
             //根据摆药单编码初始化属性树
             this.ShowListByDrugBill(this.drugBillClassInfo.ID);
             Neusoft.FrameWork.WinForms.Classes.Function.HideWaitForm( );
         }
     }
     else
     {
         //重新设置摆药单属性
         this.ResetDrugBillAttribute( );
         this.drugBillClassInfo = new DrugBillClass( );
     }
 }
Example #5
0
        /// <summary>
        /// 取摆药单列表中,被选中的摆药单组合。并返回是否可以对摆药单进行核准
        /// </summary>
        /// <param name="tvBill">需判断是否选中的节点树</param>
        /// <param name="billCodes">选中的摆药单编码组合 由逗号间隔</param>
        /// <returns>返回是否允许进行核准操作 True 允许 Flase 不允许</returns>
        protected bool GetCheckBill(Neusoft.FrameWork.WinForms.Controls.NeuTreeView tvBill, ref string billCodes)
        {
            billCodes = "''";
            bool enabledApprove = false;        //是否允许对本组摆药单进行核准操作

            if (tvBill.Nodes.Count <= 0)
            {
                return(false);
            }

            foreach (TreeNode billClassNode in tvBill.Nodes)
            {
                foreach (TreeNode deptBillNode in billClassNode.Nodes)
                {
                    if (!deptBillNode.Checked)
                    {
                        continue;
                    }

                    DrugBillClass drugBillClass = deptBillNode.Tag as DrugBillClass;

                    billCodes = billCodes + string.Format(",'{0}'", drugBillClass.DrugBillNO);

                    if (drugBillClass.ApplyState == "1")
                    {
                        enabledApprove = true;
                    }
                }
            }

            if (billCodes == "" || billCodes == "''")
            {
                MessageBox.Show(Language.Msg("请选择待核准摆药单"));
                billCodes = null;
            }
            //为何增加此处代码?
            if (billCodes == "''" && tvBill.SelectedNode.Level == 1)
            {
                Neusoft.HISFC.Models.Pharmacy.DrugBillClass selectBillClass = tvBill.SelectedNode.Tag as Neusoft.HISFC.Models.Pharmacy.DrugBillClass;

                if (selectBillClass.DrugBillNO.IndexOf("'") == -1)
                {
                    billCodes = string.Format("'{0}'", selectBillClass.DrugBillNO);
                }
                else
                {
                    billCodes = selectBillClass.DrugBillNO;
                }

                if (selectBillClass.ApplyState == "1")
                {
                    enabledApprove = true;
                }
            }

            return(enabledApprove);
        }
Example #6
0
        /// <summary>
        /// 保存摆药单类别
        /// </summary>
        private void SaveDrugBill()
        {
            //获取当前摆药单最新的编辑信息
            this.GetDrugBillItem();
            //有效性判断
            if (!this.IsDrugBillDataValid(this.drugBillClassInfo))
            {
                return;
            }

            Neusoft.FrameWork.Management.PublicTrans.BeginTransaction();

            //Neusoft.FrameWork.Management.Transaction t = new Neusoft.FrameWork.Management.Transaction(Neusoft.FrameWork.Management.Connection.Instance);
            //t.BeginTransaction();

            drugStoreManager.SetTrans(Neusoft.FrameWork.Management.PublicTrans.Trans);

            bool isNewDrugBill = false;

            //保存操作
            if (this.drugBillClassInfo.ID == "")
            {
                isNewDrugBill = true;
            }

            int parm = drugStoreManager.SetDrugBillClass(this.drugBillClassInfo);

            if (parm == -1)
            {
                Neusoft.FrameWork.Management.PublicTrans.RollBack();
                MessageBox.Show(this.drugStoreManager.Err);
                return;
            }

            Neusoft.FrameWork.Management.PublicTrans.Commit();
            MessageBox.Show(Neusoft.FrameWork.Management.Language.Msg("保存成功"));

            if (isNewDrugBill)
            {
                this.lvPutDrugBill1.AddItem(this.drugBillClassInfo, true);

                this.drugBillClassInfo = new DrugBillClass();
            }
            else
            {
                //用更新后的节点信息修改ListView中对应的节点
                this.lvPutDrugBill1.ModifyItem(this.drugBillClassInfo, this.lvPutDrugBill1.SelectedIndices[0]);
            }

            this.neuTabControl1.SelectedIndex = 0;
        }
Example #7
0
        /// <summary>
        /// 从tabpage2中中取数据,保存在myDrugBillClass中。
        /// </summary>
        private DrugBillClass GetDrugBillItem( )
        {
            if (this.drugBillClassInfo == null)
            {
                drugBillClassInfo = new DrugBillClass( );
            }

            this.drugBillClassInfo.Name             = this.txtName.Text;              //摆药分类名称
            this.drugBillClassInfo.PrintType.ID     = this.cbxPrinttype.Tag;          //打印类型
            this.drugBillClassInfo.DrugAttribute.ID = this.cbxPutType.Tag.ToString(); //摆药类型
            this.drugBillClassInfo.IsValid          = this.cbxIsValid.Checked;        //是否有效
            this.drugBillClassInfo.Memo             = this.txtMark.Text;              //备注
            return(this.drugBillClassInfo);
        }
        /// <summary>
        /// 增加单条摆药单信息
        /// </summary>
        /// <param name="billClass">摆药单分类实体</param>
        /// <param name="isAutoSelect">是否自动选中</param>
        /// <returns></returns>
        public virtual int AddItem(DrugBillClass billClass, bool isAutoSelect)
        {
            if (billClass != null)
            {
                //设置插入的节点信息
                ListViewItem lvi = new ListViewItem( );

                //区别有效和无效的项目图标
                if (billClass.IsValid)
                {
                    lvi.ImageIndex = 0;
                }
                else
                {
                    lvi.ImageIndex = 1;
                }
                //如果是新增加的项目,显示特殊的图标
                if (billClass.ID == "")
                {
                    lvi.ImageIndex = 2;
                }

                //Tag属性保存摆药单分类实体
                lvi.Tag = billClass;

                lvi.Text = billClass.Name;

                //添加listView的子节点
                lvi.SubItems.Add(billClass.PrintType.Name);
                lvi.SubItems.Add(billClass.IsValid ? "有效" : "无效");
                lvi.SubItems.Add(billClass.Memo);

                this.Items.Add(lvi);

                if (isAutoSelect)
                {
                    lvi.Selected = true;
                }

                return(0);
            }
            else
            {
                return(-1);
            }
        }
Example #9
0
        /// <summary>
        /// 判断传入摆药单信息是否有效
        /// </summary>
        /// <param name="drugBillClass">摆药单信息</param>
        /// <returns>成功返回True  失败返回False</returns>
        private bool IsDrugBillDataValid(DrugBillClass drugBillClass)
        {
            if (!Neusoft.FrameWork.Public.String.ValidMaxLengh(drugBillClass.Memo, 150))
            {
                MessageBox.Show(Neusoft.FrameWork.Management.Language.Msg("备注字段超长"));
                return(false);
            }
            if (!Neusoft.FrameWork.Public.String.ValidMaxLengh(drugBillClass.Name, 30))
            {
                MessageBox.Show(Neusoft.FrameWork.Management.Language.Msg("摆药单名称超长"));
                return(false);
            }

            foreach (ListViewItem lv in this.lvPutDrugBill1.Items)
            {
                DrugBillClass tempDrugBill = lv.Tag as DrugBillClass;
                if (tempDrugBill == null)
                {
                    continue;
                }

                if (!Neusoft.FrameWork.Public.String.ValidMaxLengh(tempDrugBill.Memo, 150))
                {
                    MessageBox.Show(Neusoft.FrameWork.Management.Language.Msg("备注字段超长"));
                    return(false);
                }
                if (!Neusoft.FrameWork.Public.String.ValidMaxLengh(tempDrugBill.Name, 30))
                {
                    MessageBox.Show(Neusoft.FrameWork.Management.Language.Msg("摆药单名称超长"));
                    return(false);
                }

                if (tempDrugBill.ID == drugBillClass.ID)
                {
                    continue;
                }

                if (lv.Text == drugBillClass.Name)
                {
                    MessageBox.Show(Neusoft.FrameWork.Management.Language.Msg(drugBillClass.Name + "摆药单名称重复 请重新维护"));
                    return(false);
                }
            }
            return(true);
        }
Example #10
0
 /// <summary>
 /// 删除单条摆药单信息
 /// </summary>
 /// <param name="billClass">摆药单分类实体</param>
 /// <returns></returns>
 protected virtual int DeleteItem(DrugBillClass billClass)
 {
     if (billClass != null)
     {
         foreach (ListViewItem item in this.Items)
         {
             if (item.Tag == billClass)
             {
                 this.Items.Remove(item);
             }
         }
         return(0);
     }
     else
     {
         return(-1);
     }
 }
Example #11
0
        /// <summary>
        /// 从myDrugBillClass中取数据,显示在tabpage2中。
        /// </summary>
        private void SetDrugBillItem(DrugBillClass drugbill)
        {
            this.drugBillClassInfo = drugbill;

            this.txtName.Text       = this.drugBillClassInfo.Name;             //摆药分类名称
            this.cbxPrinttype.Tag   = this.drugBillClassInfo.PrintType.ID;     //打印类型
            this.cbxPutType.Tag     = this.drugBillClassInfo.DrugAttribute.ID; //摆药类型
            this.cbxIsValid.Checked = this.drugBillClassInfo.IsValid;          //是否有效
            this.txtMark.Text       = this.drugBillClassInfo.Memo;             //备注
            //手术室摆药单不能修改
            if (this.drugBillClassInfo.ID == "P" || this.drugBillClassInfo.ID == "R")
            {
                this.lvPutDrugBill1.AllowEdit = false;
            }
            else
            {
                this.lvPutDrugBill1.AllowEdit = true;
            }
        }
Example #12
0
        /// <summary>
        /// 默认摆药单保存
        /// </summary>
        protected virtual void SaveDefaultBill(bool isP, bool isR)
        {
            if (isR)            //设置退药摆药单
            {
                Neusoft.HISFC.Models.Pharmacy.DrugBillClass pDrugBill = new DrugBillClass();

                pDrugBill.ID               = "R";
                pDrugBill.Name             = "退药单";                            //摆药分类名称
                pDrugBill.PrintType.ID     = BillPrintType.enuBillPrintType.D; //打印类型
                pDrugBill.DrugAttribute.ID = DrugAttribute.enuDrugAttribute.T; //摆药类型
                pDrugBill.IsValid          = true;                             //是否有效
                pDrugBill.Memo             = "退药单不需维护明细";                      //备注

                Neusoft.HISFC.BizLogic.Pharmacy.DrugStore drugStoreManager = new Neusoft.HISFC.BizLogic.Pharmacy.DrugStore();

                if (drugStoreManager.InsertDrugBillClass(pDrugBill) == -1)
                {
                    MessageBox.Show(Neusoft.FrameWork.Management.Language.Msg("保存特殊摆药单失败"));
                    return;
                }
            }

            if (isP)            //设置非医嘱摆药单
            {
                Neusoft.HISFC.Models.Pharmacy.DrugBillClass pDrugBill = new DrugBillClass();

                pDrugBill.ID               = "P";
                pDrugBill.Name             = "非医嘱摆药单";                         //摆药分类名称
                pDrugBill.PrintType.ID     = BillPrintType.enuBillPrintType.D; //打印类型
                pDrugBill.DrugAttribute.ID = DrugAttribute.enuDrugAttribute.T; //摆药类型
                pDrugBill.IsValid          = true;                             //是否有效
                pDrugBill.Memo             = "非医嘱摆药单不需维护明细";                   //备注

                Neusoft.HISFC.BizLogic.Pharmacy.DrugStore drugStoreManager = new Neusoft.HISFC.BizLogic.Pharmacy.DrugStore();

                if (drugStoreManager.InsertDrugBillClass(pDrugBill) == -1)
                {
                    MessageBox.Show(Neusoft.FrameWork.Management.Language.Msg("保存特殊摆药单失败"));
                    return;
                }
            }
        }
Example #13
0
        /// <summary>
        /// 增加摆药单
        /// </summary>
        private void AddDrugBill()
        {
            if (this.neuTabControl1.TabPages.ContainsKey(tabPage2.Name))
            {
                this.neuTabControl1.TabPages.Remove(this.tabPage2);
            }
            //设置要插入的节点
            DrugBillClass info = new DrugBillClass( );

            info.Name    = "新建摆药单";
            info.IsValid = true;

            //在详细信息中显示新增加的摆药单
            this.SetDrugBillItem(info);

            //重置摆药单属性树未选中状态
            this.ResetDrugBillAttribute( );

            this.neuTabControl1.TabPages.Add(this.tabPage2);
            this.neuTabControl1.SelectedIndex = 1;
        }
        /// <summary>
        /// 保存控件中的摆药单分类明细
        /// </summary>
        public int Save(DrugBillClass info, bool IsDelete)
        {
            //判断传入参数是否有效
            if (info.ID == "")
            {
                MessageBox.Show("请在摆药单分类列表中选择要维护的记录并保存");
                return(-1);
            }

            //非医嘱摆药单和退药单不允许设置明细信息
            if (info.ID == "R" || info.ID == "P")
            {
                MessageBox.Show("手术室摆药单不需要保存明细信息。");
                return(-1);
            }

            #region 取树型列表中被选中的项,并检测是否漏选
            //医嘱类型
            ArrayList alOrderType = this.GetSelectedItems(tvOrderType);
            if (alOrderType.Count == 0)
            {
                MessageBox.Show("请选择医嘱类型");
                return(-1);
            }
            //药品用法
            ArrayList alUsage = this.GetSelectedItems(tvUsage);
            if (alUsage.Count == 0)
            {
                MessageBox.Show("请选择药品用法");
                return(-1);
            }
            //药品剂型
            ArrayList alDosageForm = this.GetSelectedItems(tvDosageForm);
            if (alDosageForm.Count == 0)
            {
                MessageBox.Show("请选择药品剂型");
                return(-1);
            }
            //药品性质
            ArrayList alDrugQuality = this.GetSelectedItems(tvDrugQuality);
            if (alDrugQuality.Count == 0)
            {
                MessageBox.Show("请选择药品性质");
                return(-1);
            }
            //药品类型
            ArrayList alDrugType = this.GetSelectedItems(tvDrugType);
            if (alDrugType.Count == 0)
            {
                MessageBox.Show("请选择药品类型");
                return(-1);
            }
            #endregion

            int parm;
            neusoft.neuFC.Management.Transaction t = new neusoft.neuFC.Management.Transaction(neusoft.neuFC.Management.Connection.Instance);
            t.BeginTransaction();
            myDrugStore.SetTrans(t.Trans);

            //根据参数判断是否需要先删除后增加。
            if (IsDelete)
            {
                //先删除旧摆药单分类明细中的所有数据,然后插入新的数据。
                parm = myDrugStore.DeleteDrugBillList(info.ID);
                if (parm == -1)
                {
                    t.RollBack();
                    MessageBox.Show(this.myDrugStore.Err);
                    return(-1);
                }
            }

            //插入新数据,用医嘱类型,用法,剂型,药品性质,药铺类型的全排列分别插入明细表。
            DrugBillList myList = new DrugBillList();
            myList.DrugBillClass.ID = info.ID;
            int pro = 0;             //进度条上显示的数据
            int max = alOrderType.Count * alUsage.Count * alDosageForm.Count * alDrugQuality.Count * alDrugType.Count;
            foreach (neuObject OrderType in alOrderType)
            {
                foreach (neuObject Usage in alUsage)
                {
                    foreach (neuObject DosageForm in alDosageForm)
                    {
                        foreach (neuObject DrugQuality in alDrugQuality)
                        {
                            foreach (neuObject DrugType in alDrugType)
                            {
                                //为摆药单明细实例赋值
                                myList.TypeCode       = OrderType.ID;
                                myList.UsageCode      = Usage.ID;
                                myList.DosageFormCode = DosageForm.ID;
                                myList.DrugQuality    = DrugQuality.ID;
                                myList.DrugType       = DrugType.ID;

                                //插入摆药单分类明细表
                                parm = this.myDrugStore.InsertDrugBillList(myList);
                                if (parm != 1)
                                {
                                    t.RollBack();
                                    if (this.myDrugStore.DBErrCode == 1)
                                    {
                                        MessageBox.Show("数据已经存在,不能重复维护!\n" +
                                                        " 医嘱类型;" + OrderType.ID + OrderType.Name +
                                                        " 用法:" + Usage.ID + Usage.Name +
                                                        " 剂型:" + DosageForm.ID + DosageForm.Name +
                                                        " 药品性质:" + DrugQuality.ID + DrugQuality.Name +
                                                        " 药品类型:" + DrugType.ID + DrugType.Name);
                                    }
                                    else
                                    {
                                        MessageBox.Show(this.myDrugStore.Err);
                                    }
                                    return(-1);
                                }
                                neusoft.neuFC.Interface.Classes.Function.ShowWaitForm(pro++, max);
                                Application.DoEvents();
                            }
                        }
                    }
                }
            }
            //提交数据库
            t.Commit();

            return(1);
        }
Example #15
0
        /// <summary>
        /// 删除一条摆药单分类数据
        /// </summary>
        private void DeleteDrugBill( )
        {
            //判断是否选中一个摆药单
            if (this.lvPutDrugBill1.SelectedItems.Count > 0)
            {
                //获取当前摆药单信息
                this.GetDrugBillItem( );
            }
            else
            {
                MessageBox.Show(Neusoft.FrameWork.Management.Language.Msg("请选择您要删除的摆药单!"));

                return;
            }

            if (this.drugBillClassInfo.ID == "P" || this.drugBillClassInfo.ID == "R")
            {
                MessageBox.Show(Neusoft.FrameWork.Management.Language.Msg("退药单及非医嘱摆药单不允许删除"), "", MessageBoxButtons.OK, MessageBoxIcon.Information);
                return;
            }

            if (this.drugBillClassInfo.ID != "")
            {
                //弹出提示窗口
                System.Windows.Forms.DialogResult result;
                result = MessageBox.Show(Neusoft.FrameWork.Management.Language.Msg("摆药单删除后将不可恢复,您确定要删除【" + drugBillClassInfo.Name + "】摆药单吗?"), Neusoft.FrameWork.Management.Language.Msg("删除提示"), System.Windows.Forms.MessageBoxButtons.OKCancel);
                if (result == DialogResult.Cancel)
                {
                    return;
                }

                Neusoft.FrameWork.WinForms.Classes.Function.ShowWaitForm(Neusoft.FrameWork.Management.Language.Msg("正在删除摆药单及其明细信息,请稍等..."));
                Application.DoEvents( );

                //删除事务
                int parmClass;
                int parmList;

                Neusoft.FrameWork.Management.PublicTrans.BeginTransaction();

                //Neusoft.FrameWork.Management.Transaction t = new Neusoft.FrameWork.Management.Transaction( Neusoft.FrameWork.Management.Connection.Instance );

                drugStoreManager.SetTrans(Neusoft.FrameWork.Management.PublicTrans.Trans);
                //先删除摆药单属性信息
                parmList = drugStoreManager.DeleteDrugBillList(this.drugBillClassInfo.ID);
                //再删除摆药单信息
                parmClass = drugStoreManager.DeleteDrugBillClass(this.drugBillClassInfo.ID);

                if (parmList == -1 || parmClass == -1)
                {
                    Neusoft.FrameWork.Management.PublicTrans.RollBack();
                    MessageBox.Show(this.drugStoreManager.Err, Neusoft.FrameWork.Management.Language.Msg("Neusoft.FrameWork.Management.Language.Msg( 提示"));
                    Neusoft.FrameWork.WinForms.Classes.Function.HideWaitForm( );
                    return;
                }
                else
                {
                    Neusoft.FrameWork.Management.PublicTrans.Commit();
                    MessageBox.Show(Neusoft.FrameWork.Management.Language.Msg("删除成功!"));
                }
            }
            //重置摆药单属性树未未选中状态
            this.ResetDrugBillAttribute( );
            //删除节点
            this.lvPutDrugBill1.DeleteItem(this.lvPutDrugBill1.SelectedIndices[0]);
            this.lvPutDrugBill1.Focus( );
            this.neuTabControl1.SelectedIndex = 0;
            this.drugBillClassInfo            = new DrugBillClass( );
            Neusoft.FrameWork.WinForms.Classes.Function.HideWaitForm( );
        }
Example #16
0
        /// <summary>
        /// 保存摆药单信息
        /// </summary>
        private void SaveDrugControl( )
        {
            //判断是否选择摆药单
            if (this.lvPutDrugBill1.CheckedItems.Count == 0)
            {
                MessageBox.Show("请为摆药台添加摆药单。");
                return;
            }

            //判断是否选中一个摆药台
            if (this.lvDrugControlList.SelectedItems.Count > 0)
            {
                //获取当前摆药台最新的编辑信息myDrugControlInfo
                this.GetNewDrugControlInfo( );
            }
            else
            {
                MessageBox.Show("请选择一个摆药台。");
                return;
            }
            //如果是新增加的摆药台,则取此摆药台的流水号
            if (currentDrugControlInfo.ID == "")
            {
                currentDrugControlInfo.ID = this.drugStore.GetDrugControlNO( );
                if (currentDrugControlInfo.ID == "-1")
                {
                    MessageBox.Show("取摆药台流水号时失败:" + this.drugStore.Err);
                    return;
                }
            }

            int parm;

            Neusoft.NFC.Management.Transaction t = new Neusoft.NFC.Management.Transaction(Neusoft.NFC.Management.Connection.Instance);
            t.BeginTransaction( );
            drugStore.SetTrans(t.Trans);

            try
            {
                //先删除旧摆药台摆药明细中的所有数据,然后插入新的数据。
                parm = drugStore.DeleteDrugControl(currentDrugControlInfo.ID);
                if (parm == -1)
                {
                    t.RollBack( );
                    MessageBox.Show(this.drugStore.Err);
                    return;
                }
                else
                {
                    //插入摆药台数据
                    foreach (ListViewItem lvi in this.lvPutDrugBill1.CheckedItems)
                    {
                        DrugBillClass info = lvi.Tag as DrugBillClass;
                        //为摆药台明细赋值
                        currentDrugControlInfo.DrugBillClass.ID   = info.ID;
                        currentDrugControlInfo.DrugBillClass.Name = info.Name;

                        //插入摆药台明细数据
                        parm = this.drugStore.InsertDrugControl(currentDrugControlInfo);
                        if (parm != 1)
                        {
                            t.RollBack( );
                            MessageBox.Show(this.drugStore.Err);
                            return;
                        }
                    }
                }
                //提交数据库
                t.Commit( );
                this.neuTabControl1.TabPages.Remove(this.tabPage2);
                this.neuTabControl1.SelectedIndex = 0;
                MessageBox.Show("摆药台设置成功!");
            }
            catch (Exception ex)
            {
                t.RollBack( );
                MessageBox.Show("保存摆药台数据时出错:" + ex.Message);
                return;
            }

            //更新listView上节点
            this.lvDrugControlList.SelectedItems[0].Tag  = currentDrugControlInfo;
            this.lvDrugControlList.SelectedItems[0].Text = currentDrugControlInfo.Name;
            //区别新增加和已保存的图标
            if (currentDrugControlInfo.ID != "")
            {
                this.lvDrugControlList.SelectedItems[0].ImageIndex = 0;
            }
            else
            {
                this.lvDrugControlList.SelectedItems[0].ImageIndex = 1;
            }
            //设置listView的子节点


            this.lvDrugControlList.SelectedItems[0].SubItems[1].Text = currentDrugControlInfo.DrugAttribute.Name;
            this.lvDrugControlList.SelectedItems[0].SubItems[2].Text = currentDrugControlInfo.SendType == 0 ? "全部" : (currentDrugControlInfo.SendType == 1 ? "集中" : "临时");
            this.lvDrugControlList.SelectedItems[0].SubItems[3].Text = this.GetShowTypeName(currentDrugControlInfo.SendType);
            this.lvDrugControlList.SelectedItems[0].SubItems[4].Text = this.currentDept.Name;
            this.lvDrugControlList.SelectedItems[0].SubItems[5].Text = currentDrugControlInfo.Memo;
        }
Example #17
0
        /// <summary>
        /// 保存摆药台信息
        /// </summary>
        private void SaveDrugControl( )
        {
            if (currentDept.ID == "")
            {
                MessageBox.Show(Neusoft.FrameWork.Management.Language.Msg("请选择具体的科室"));
                return;
            }
            //判断是否选择摆药单
            if (this.lvPutDrugBill1.CheckedItems.Count == 0)
            {
                MessageBox.Show(Neusoft.FrameWork.Management.Language.Msg("请为摆药台添加摆药单!"));
                return;
            }

            //判断是否选中一个摆药台
            if (this.lvDrugControlList.SelectedItems.Count > 0)
            {
                //获取当前摆药台最新的编辑信息myDrugControlInfo
                this.GetNewDrugControlInfo( );
            }
            else
            {
                MessageBox.Show(Neusoft.FrameWork.Management.Language.Msg("请选择一个摆药台。"));
                return;
            }

            if (!this.IsSaveDrugControlValid(this.currentDrugControlInfo))
            {
                return;
            }

            if (this.currentDrugControlInfo.Name.Length > 16)
            {
                MessageBox.Show(Neusoft.FrameWork.Management.Language.Msg("摆药台名称超长,请适当简略"));
                return;
            }
            if (this.currentDrugControlInfo.Memo.Length > 30)
            {
                MessageBox.Show(Neusoft.FrameWork.Management.Language.Msg("备注超长,请适当简略"));
                return;
            }

            //如果是新增加的摆药台,则取此摆药台的流水号
            if (currentDrugControlInfo.ID == "")
            {
                currentDrugControlInfo.ID = this.drugStore.GetDrugControlNO( );
                if (currentDrugControlInfo.ID == "-1")
                {
                    MessageBox.Show(Neusoft.FrameWork.Management.Language.Msg("取摆药台流水号时失败:") + this.drugStore.Err);
                    return;
                }
            }

            int parm;

            Neusoft.FrameWork.Management.PublicTrans.BeginTransaction();

            //Neusoft.FrameWork.Management.Transaction t = new Neusoft.FrameWork.Management.Transaction( Neusoft.FrameWork.Management.Connection.Instance );
            //t.BeginTransaction( );

            drugStore.SetTrans(Neusoft.FrameWork.Management.PublicTrans.Trans);

            try
            {
                //先删除旧摆药台摆药明细中的所有数据,然后插入新的数据。
                parm = drugStore.DeleteDrugControl(currentDrugControlInfo.ID);
                if (parm == -1)
                {
                    Neusoft.FrameWork.Management.PublicTrans.RollBack();
                    MessageBox.Show(this.drugStore.Err);
                    return;
                }
                else
                {
                    //插入摆药台数据
                    foreach (ListViewItem lvi in this.lvPutDrugBill1.CheckedItems)
                    {
                        DrugBillClass info = lvi.Tag as DrugBillClass;
                        //为摆药台明细赋值
                        currentDrugControlInfo.DrugBillClass.ID   = info.ID;
                        currentDrugControlInfo.DrugBillClass.Name = info.Name;

                        //插入摆药台明细数据
                        parm = this.drugStore.InsertDrugControl(currentDrugControlInfo);
                        if (parm != 1)
                        {
                            Neusoft.FrameWork.Management.PublicTrans.RollBack();
                            MessageBox.Show(this.drugStore.Err);
                            return;
                        }
                    }
                }
                //提交数据库
                Neusoft.FrameWork.Management.PublicTrans.Commit();
                this.neuTabControl1.SelectedIndex = 0;
                MessageBox.Show(Neusoft.FrameWork.Management.Language.Msg("摆药台设置成功!"));
            }
            catch (Exception ex)
            {
                Neusoft.FrameWork.Management.PublicTrans.RollBack();
                MessageBox.Show(Neusoft.FrameWork.Management.Language.Msg("保存摆药台数据时出错:" + ex.Message));
                return;
            }

            //更新listView上节点
            this.lvDrugControlList.SelectedItems[0].Tag  = currentDrugControlInfo;
            this.lvDrugControlList.SelectedItems[0].Text = currentDrugControlInfo.Name;
            //区别新增加和已保存的图标
            if (currentDrugControlInfo.ID != "")
            {
                this.lvDrugControlList.SelectedItems[0].ImageIndex = 0;
            }
            else
            {
                this.lvDrugControlList.SelectedItems[0].ImageIndex = 1;
            }
            //设置listView的子节点

            this.lvDrugControlList.SelectedItems[0].SubItems[1].Text = currentDrugControlInfo.DrugAttribute.Name;
            this.lvDrugControlList.SelectedItems[0].SubItems[2].Text = currentDrugControlInfo.SendType == 0 ? "全部" : (currentDrugControlInfo.SendType == 1 ? "集中" : "临时");

            //{9738B143-F85C-4255-8C5B-FD3EA729FE32}
            //currentDrugControlInfo.SendType 改为 currentDrugControlInfo.ShowLevel
            this.lvDrugControlList.SelectedItems[0].SubItems[3].Text = this.GetShowTypeName(currentDrugControlInfo.ShowLevel);

            //this.lvDrugControlList.SelectedItems[ 0 ].SubItems[ 4 ].Text = this.currentDept.Name;
            //this.lvDrugControlList.SelectedItems[ 0 ].SubItems[ 5 ].Text = currentDrugControlInfo.Memo;

            this.lvDrugControlList.SelectedItems[0].SubItems[4].Text = currentDrugControlInfo.IsAutoPrint ? "是" : "否";
            this.lvDrugControlList.SelectedItems[0].SubItems[5].Text = currentDrugControlInfo.IsBillPreview ? "是" : "否";
            this.lvDrugControlList.SelectedItems[0].SubItems[6].Text = currentDrugControlInfo.IsPrintLabel ? "是" : "否";

            this.lvDrugControlList.SelectedItems[0].SubItems[8].Text = currentDrugControlInfo.Memo;
        }