Example #1
0
        /// <summary>
        /// 添加人员
        /// </summary>
        public void AddUser()
        {
            //不可以在大类下及根结点下增加人员
            if (this.tvDepartmentLevelTree1.SelectedNode.Parent == null)
            {
                return;
            }

            //取得当前TreeView中的科室信息
            Neusoft.HISFC.Models.Base.DepartmentStat dept = this.tvDepartmentLevelTree1.SelectedNode.Tag as Neusoft.HISFC.Models.Base.DepartmentStat;

            //取得当前ListView中要修改的人员数据
            //人员权限明细实体类
            Neusoft.HISFC.Models.Admin.UserPowerDetail userPower = new Neusoft.HISFC.Models.Admin.UserPowerDetail();

            userPower.Dept.ID    = dept.DeptCode;
            userPower.Dept.Name  = dept.DeptName;
            userPower.Class1Code = dept.StatCode;
            userPower.GrantDept  = dept.DeptCode;
            if (dept != null)
            {
                Manager.Controls.ucPrivUserManager userManager = new Manager.Controls.ucPrivUserManager(userPower);
                //创建临时窗口用来修改数据
                Neusoft.FrameWork.WinForms.Classes.Function.PopForm.Text = "人员属性";
                DialogResult dlg = Neusoft.FrameWork.WinForms.Classes.Function.PopShowControl(userManager);
                //取窗口返回参数
                if (dlg == DialogResult.OK)
                {
                    //显示当前TreeView中选中节点的下级内容
                    this.ShowList();
                }
            }
        }
Example #2
0
        /// <summary>
        /// 添加科室
        /// </summary>
        public void AddDepartment()
        {
            //创建新增科室
            Neusoft.HISFC.Models.Base.DepartmentStat dept = new Neusoft.HISFC.Models.Base.DepartmentStat();

            //取新增节点的统计大类编码、父级编码、父级名称
            ParentNodeStat(this.tvDepartmentLevelTree1.SelectedNode, ref dept);

            //新增节点为叶子节点。
            dept.NodeKind = 1;

            ucDepartmentStat deptLevel = new ucDepartmentStat(dept);

            //定义事件(用于判断是否增加的是本科室)路志鹏,2007-4-11
            ucDepartmentStat.DoCheckNode += new ucDepartmentStat.CheckHander(ucDepartmentStat_DoCheckNode);

            //创建临时窗口用来修改数据
            Neusoft.FrameWork.WinForms.Classes.Function.PopForm.Text = "科室属性";
            DialogResult dlg = Neusoft.FrameWork.WinForms.Classes.Function.PopShowControl(deptLevel);

            if (dlg == DialogResult.OK)
            {
                this.tvDepartmentLevelTree1.AddDepartment(this.tvDepartmentLevelTree1.SelectedNode, dept);
                //显示当前TreeView中选中节点的下级内容
                this.ShowList();
            }
            ucDepartmentStat.DoCheckNode -= new ucDepartmentStat.CheckHander(ucDepartmentStat_DoCheckNode);
        }
Example #3
0
 /// <summary>
 /// 人员属性
 /// </summary>
 public void UserProperty()
 {
     //取得当前TreeView中的科室信息
     Neusoft.HISFC.Models.Base.DepartmentStat dept = this.tvDepartmentLevelTree1.SelectedNode.Tag as Neusoft.HISFC.Models.Base.DepartmentStat;
     //取得当前ListView中要修改的人员数据
     Neusoft.HISFC.Models.Admin.UserPowerDetail userPower = this.neuListView1.SelectedItems[0].Tag as Neusoft.HISFC.Models.Admin.UserPowerDetail;
     userPower.Dept.ID   = dept.DeptCode; //科室编码
     userPower.Dept.Name = dept.DeptName; //科室名称
     userPower.GrantDept = dept.DeptCode;
     if (dept != null)
     {
         Manager.Controls.ucPrivUserManager userManager = new Manager.Controls.ucPrivUserManager(userPower);
         //创建临时窗口用来修改数据
         Neusoft.FrameWork.WinForms.Classes.Function.PopForm.Text = "人员属性";
         DialogResult dlg = Neusoft.FrameWork.WinForms.Classes.Function.PopShowControl(userManager);
         //取窗口返回参数
         if (dlg == DialogResult.OK)
         {
             //更新ListView中科室的名称
             //this.lvInfo.SelectedItems[0].Text = userPower.User.Name;
             //显示当前TreeView中选中节点的下级内容
             this.ShowList();
         }
     }
 }
Example #4
0
        /// <summary>
        /// 药柜处理
        /// </summary>
        private void SetArkDept(ref Neusoft.FrameWork.Models.NeuObject operDept)
        {
            Neusoft.HISFC.BizLogic.Pharmacy.Constant   phaConsManager = new Neusoft.HISFC.BizLogic.Pharmacy.Constant();
            Neusoft.HISFC.Models.Pharmacy.DeptConstant deptCons       = phaConsManager.QueryDeptConstant(operDept.ID);
            if (deptCons == null)
            {
                MessageBox.Show(Language.Msg("根据科室编码获取科室常数信息发生错误") + phaConsManager.Err);
                return;
            }

            if (deptCons.IsArk)         //对药柜管理科室进行以下处理
            {
                Neusoft.HISFC.BizProcess.Integrate.Manager managerIntegrate = new Neusoft.HISFC.BizProcess.Integrate.Manager();
                ArrayList al = managerIntegrate.LoadPhaParentByChildren(operDept.ID);
                if (al == null || al.Count == 0)
                {
                    MessageBox.Show(Language.Msg("获取科室结构信息发生错误") + managerIntegrate.Err);
                    return;
                }

                Neusoft.HISFC.Models.Base.DepartmentStat deptStat = al[0] as Neusoft.HISFC.Models.Base.DepartmentStat;
                if (deptStat.PardepCode.Substring(0, 1) == "S")     //上级节点为分类编码 不进行处理
                {
                    return;
                }
                else
                {
                    operDept.ID   = deptStat.PardepCode;
                    operDept.Name = deptStat.PardepName;
                }
            }
        }
Example #5
0
        /// <summary>
        /// 修改科室属性
        /// </summary>
        public void DeptProperty()
        {
            //判断修改的科室是否是树上的
            //当ListView中选中项目时,查看其ListView中选中项目的属性
            Neusoft.HISFC.Models.Base.DepartmentStat dept = null;
            if (this.neuListView1.SelectedItems.Count > 0 && this.neuListView1.Focused)
            {
                //取得当前ListView中要修改的科室数据信息
                dept = ((TreeNode)this.neuListView1.SelectedItems[0].Tag).Tag as Neusoft.HISFC.Models.Base.DepartmentStat;
            }
            else
            {
                //当ListView中没有选中项目时,如果TreeView中选中了项目并且不是统计大类,则允许查看TreeView中节点的属性
                if (this.tvDepartmentLevelTree1.SelectedNode != null && this.tvDepartmentLevelTree1.SelectedNode.Parent != null)
                {
                    dept = this.tvDepartmentLevelTree1.SelectedNode.Tag as Neusoft.HISFC.Models.Base.DepartmentStat;
                }
            }
            if (dept != null)
            {
                string s = dept.StatCode.ToString();
                #region 麻烦,顺序号保存在COM_DEPTSTAT里的,不是com_department的,但是取呢却是取com_department里的,先这么简单的取取吧
                //{9E9F36B8-74B0-482b-A5D4-7E3C919EBAE1} wbo 2010-12-11
                if ("16" == s)//16是维护挂号科室顺序的
                {
                    string sql = @"select sort_id from com_deptstat d
where d.stat_code = '16'
and d.dept_code = '{0}'";
                    try
                    {
                        sql = string.Format(sql, dept.ID);
                        Neusoft.HISFC.BizLogic.Manager.Department deptManager = new Neusoft.HISFC.BizLogic.Manager.Department();
                        string result = deptManager.ExecSqlReturnOne(sql);
                        if (string.IsNullOrEmpty(result))
                        {
                            //取不出来就算了
                        }
                        else
                        {
                            //应该取得出来
                            dept.SortId = Neusoft.FrameWork.Function.NConvert.ToInt32(result);
                        }
                    }
                    catch (Exception ex)
                    { }
                }

                #endregion
                ucDepartmentStat deptLevel = new ucDepartmentStat(dept);
                //创建临时窗口用来修改数据
                Neusoft.FrameWork.WinForms.Classes.Function.PopForm.Text = "科室属性";
                DialogResult dialogResult = Neusoft.FrameWork.WinForms.Classes.Function.PopShowControl(deptLevel);
                if (dialogResult == DialogResult.OK)
                {
                    this.ShowList();
                }
            }
        }
        /// <summary>
        /// 药柜处理
        /// </summary>
        private void SetArkDept(ref Neusoft.FrameWork.Models.NeuObject operDept)
        {
            Neusoft.HISFC.BizLogic.Pharmacy.Constant   phaConsManager = new Neusoft.HISFC.BizLogic.Pharmacy.Constant();
            Neusoft.HISFC.Models.Pharmacy.DeptConstant deptCons       = phaConsManager.QueryDeptConstant(operDept.ID);
            if (deptCons == null)
            {
                MessageBox.Show(Language.Msg("根据科室编码获取科室常数信息发生错误") + phaConsManager.Err);
                return;
            }

            operDept.Memo = Neusoft.FrameWork.Function.NConvert.ToInt32(deptCons.IsArk).ToString();
            if (this.tvDrugMessage1.StockMarkDept == null || (this.tvDrugMessage1.StockMarkDept.ID != operDept.ID))
            {
                this.tvDrugMessage1.StockMarkDept = operDept.Clone();
            }

            if (deptCons.IsArk)         //对药柜管理科室进行以下处理
            {
                #region 药柜处理

                Neusoft.HISFC.BizProcess.Integrate.Manager managerIntegrate = new Neusoft.HISFC.BizProcess.Integrate.Manager();
                ArrayList al = managerIntegrate.LoadPhaParentByChildren(operDept.ID);
                if (al == null || al.Count == 0)
                {
                    MessageBox.Show(Language.Msg("获取科室结构信息发生错误") + managerIntegrate.Err);
                    return;
                }

                Neusoft.HISFC.Models.Base.DepartmentStat deptStat = al[0] as Neusoft.HISFC.Models.Base.DepartmentStat;
                if (deptStat.PardepCode.Substring(0, 1) == "S")     //上级节点为分类编码 不进行处理
                {
                    return;
                }
                else
                {
                    this.ucDrugDetail1.ArkDept  = operDept.Clone();
                    this.ucDrugMessage1.ArkDept = operDept.Clone();

                    //核准扣库科室为药柜所属药房
                    this.ucDrugDetail1.ApproveDept      = new Neusoft.FrameWork.Models.NeuObject();
                    this.ucDrugDetail1.ApproveDept.ID   = deptStat.PardepCode;
                    this.ucDrugDetail1.ApproveDept.Name = deptStat.PardepName;

                    this.ucDrugMessage1.ApproveDept      = new Neusoft.FrameWork.Models.NeuObject();
                    this.ucDrugMessage1.ApproveDept.ID   = deptStat.PardepCode;
                    this.ucDrugMessage1.ApproveDept.Name = deptStat.PardepName;

                    operDept.ID   = deptStat.PardepCode;
                    operDept.Name = deptStat.PardepName;
                }

                #endregion

                this.isArkDept = true;
            }
        }
 //{23016A93-22CE-4fe6-9CF4-1F9E90B3DD08}
 private bool IsExist(Neusoft.HISFC.Models.Terminal.TerminalConfirmDetail confirmDetail)
 {
     for (int i = 0; i < this.alTermalDept.Count; i++)
     {
         Neusoft.HISFC.Models.Base.DepartmentStat obj = alTermalDept[i] as Neusoft.HISFC.Models.Base.DepartmentStat;
         if (confirmDetail.Apply.ConfirmOperEnvironment.Dept.ID == obj.DeptCode)
         {
             return(true);
         }
     }
     return(false);
 }
Example #8
0
 private void tvDepartmentLevelTree1_ItemDrag(object sender, ItemDragEventArgs e)
 {
     if (e.Button != MouseButtons.Left || this.tvDepartmentLevelTree1.SelectedNode == null)
     {
         return;
     }
     Neusoft.HISFC.Models.Base.DepartmentStat dept = new Neusoft.HISFC.Models.Base.DepartmentStat();
     if (dept == null)
     {
         return;
     }
     //Control下的开始拖放操作
     DoDragDrop(e.Item, DragDropEffects.Move);
 }
Example #9
0
 /// <summary>
 /// 将树型控件当前被选中节点的儿子节点(科室)显示在listView中
 /// </summary>
 private void ShowListDept()
 {
     this.neuListView1.Items.Clear();
     if (this.tvDepartmentLevelTree1.SelectedNode.Nodes.Count > 0)
     {
         foreach (TreeNode node in this.tvDepartmentLevelTree1.SelectedNode.Nodes)
         {
             ListViewItem item = this.neuListView1.Items.Add(node.Text);
             item.Tag = node;
             //根据科室节点类型,显示不同的图片
             Neusoft.HISFC.Models.Base.DepartmentStat dept = node.Tag as Neusoft.HISFC.Models.Base.DepartmentStat;
             if (dept != null)
             {
                 item.ImageIndex = dept.NodeKind;
             }
         }
     }
 }
Example #10
0
        /// <summary>
        /// 根据传入的节点,查找其根节点的所属大类编码
        /// </summary>
        /// <param name="node"></param>
        /// <returns></returns>
        private void ParentNodeStat(TreeNode node, ref Neusoft.HISFC.Models.Base.DepartmentStat dept)
        {
            if (dept == null)
            {
                dept = new Neusoft.HISFC.Models.Base.DepartmentStat();
            }
            if (node.Parent == null)
            {
                //父级节点是统计大类时,直接取其编码
                dept.StatCode   = node.Tag.ToString(); //取统计大类编码
                dept.PardepCode = "AAAA";              //取父级编码
                dept.PardepName = node.Text;           //取父级名称
                dept.GradeCode  = 1;                   //取节点等级
            }
            else
            {
                //父级节点不是统计大类时,查找所属统计大类编码
                TreeNode thisNode = node;
                //找到根节点
                while (thisNode.Parent != null)
                {
                    thisNode = thisNode.Parent;
                }
                if (thisNode != null)
                {
                    dept.StatCode = thisNode.Tag.ToString();
                }
                else
                {
                    dept.StatCode = "0000";
                }

                Neusoft.HISFC.Models.Base.DepartmentStat parentStat = node.Tag as Neusoft.HISFC.Models.Base.DepartmentStat;
                if (parentStat == null)
                {
                    MessageBox.Show("取科室" + dept.DeptName + "的父级科室时出错。", "保存失败");
                    return;
                }
                dept.PardepCode = parentStat.DeptCode;      //取父级编码
                dept.PardepName = parentStat.DeptName;      //取父级名称
                dept.GradeCode  = parentStat.GradeCode + 1; //取节点等级
            }
        }
Example #11
0
 /// <summary>
 /// 将树型控件当前被选中节点的儿子节点(用户)显示在listView中
 /// </summary>
 private void ShowListUser()
 {
     Neusoft.HISFC.BizLogic.Manager.UserPowerDetailManager userManager = new Neusoft.HISFC.BizLogic.Manager.UserPowerDetailManager();
     Neusoft.HISFC.Models.Base.DepartmentStat dept = new Neusoft.HISFC.Models.Base.DepartmentStat();
     ParentNodeStat(this.tvDepartmentLevelTree1.SelectedNode, ref dept);
     System.Collections.ArrayList al = userManager.LoadUser(dept.StatCode, dept.PardepCode);
     foreach (Neusoft.HISFC.Models.Admin.UserPowerDetail info in al)
     {
         ListViewItem item = this.neuListView1.Items.Add(info.User.Name);
         item.Tag = info;
         if (info.User01 == "F")
         {
             item.ImageIndex      = 3;
             item.StateImageIndex = 3;
         }
         else
         {
             item.ImageIndex      = 2;
             item.StateImageIndex = 2;
         }
     }
 }
 /// <summary>
 /// 构造函数,传入科室信息
 /// </summary>
 /// <param name="dept"></param>
 public ucDepartmentStat(Neusoft.HISFC.Models.Base.DepartmentStat dept)
 {
     InitializeComponent();
     this.departmentStat = dept;
     Init();
 }
        /// <summary>
        /// 保存
        /// </summary>
        private void Save()
        {
            //判断输入有效性
            if (!ValidateValue())
            {
                return;
            }

            //取控件中的科室数据信息
            if (this.departmentStat == null)
            {
                this.departmentStat = new Neusoft.HISFC.Models.Base.DepartmentStat();
            }

            //如果是科室分类,则取科室分类的最大编码。
            if (this.chbClass.Checked)
            {
                this.departmentStat.NodeKind = 0;

                //如果是新增科室分类,则取
                if (this.departmentStat.DeptCode == "")
                {
                    this.GetMaxCode();
                }
            }
            else
            {
                this.departmentStat.NodeKind = 1;
            }

            Neusoft.HISFC.Models.Base.Department deptment = new Neusoft.HISFC.Models.Base.Department();

            //在增加科室时判断该科室是否已经存在

            if (!this.DoEvent(this.txtDeptCode.Text.Trim()))
            {
                MessageBox.Show("该科室在本科室结构中已存在,请重新选择!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
                return;
            }

            #region 科室基本信息
            if (!this.chbClass.Checked)                                  //不是科室分类
            {
                deptment.ID        = this.txtDeptCode.Text.Trim();       //科室编码
                deptment.Name      = this.comboDeptName.Text.Trim();     //科室名称
                deptment.SpellCode = this.txtSpellCode.Text.Trim();      //拼音码
                deptment.WBCode    = this.txtWbCode.Text.Trim();         //五笔码
                deptment.UserCode  = this.txtUserCode.Text.Trim();       //自定义码
                deptment.ShortName = this.txtDeptSimpleName.Text.Trim(); //科室简称

                //如果英文名称不为空
                if (this.txtDeptEnglish.Text != "")
                {
                    deptment.EnglishName = this.txtDeptEnglish.Text.Trim();//科室英文名称
                }

                if (this.comboDeptType.SelectedIndex != -1)
                {
                    deptment.DeptType.ID = this.comboDeptType.Tag;//科室类型ID
                }
                //停用
                if (this.chbStop.Checked)
                {
                    deptment.ValidState = Neusoft.HISFC.Models.Base.EnumValidState.Valid;//有效性状态
                }
                else
                {
                    deptment.ValidState = Neusoft.HISFC.Models.Base.EnumValidState.Invalid;
                }
                //排序ID
                if (txtSortID.Text != "")
                {
                    deptment.SortID = Neusoft.FrameWork.Function.NConvert.ToInt32(txtSortID.Text.Trim()); //排序ID
                }
                deptment.SpecialFlag = this.comboDeptPro.SelectedIndex.ToString();                        //特殊科室标识
                deptment.IsRegDept   = this.chbReg.Checked;                                               //是否挂号科室
                deptment.IsStatDept  = this.chbTat.Checked;                                               //是否统计科室
                deptment.Memo        = this.txtMark.Text.Trim();                                          //备注

                #region  是否已经存在编码相同但名称不同的科室
                Neusoft.HISFC.Models.Base.Department depttempt = deptMgr.GetDeptmentById(deptment.ID);
                if (depttempt == null)
                {
                    MessageBox.Show("该科室编码没有与之相对应的科室" + deptMgr.Err);
                    return;
                }
                if ((depttempt.ID == deptment.ID) && (depttempt.Name != deptment.Name))
                {
                    if (MessageBox.Show("已经存在编码为" + depttempt.ID + "的记录" + depttempt.Name + "是否要替换为:" + deptment.Name + "吗", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == System.Windows.Forms.DialogResult.No)
                    {
                        return;
                    }
                }
            }
            #endregion

            //将控件中的数据保存到实体中
            this.departmentStat.DeptCode   = this.txtDeptCode.Text.Trim();                                            //科室编码
            this.departmentStat.DeptName   = this.comboDeptName.Text.Trim();                                          //科室名称
            this.departmentStat.SpellCode  = this.txtSpellCode.Text.Trim();                                           //拼音码
            this.departmentStat.WBCode     = this.txtWbCode.Text.Trim();                                              //五笔码
            this.departmentStat.ValidState = Neusoft.HISFC.Models.Base.EnumValidState.Valid;                          //有效标志。0 在用。1停用
            this.departmentStat.SortId     = Neusoft.FrameWork.Function.NConvert.ToInt32(this.txtSortID.Text.Trim()); //排序号
            this.departmentStat.Memo       = this.txtMark.Text.Trim();                                                //备注

            //保存时,如果没有拼音码或者五笔码,则自动生成
            if (this.txtSpellCode.Text.Trim() == "" || this.txtWbCode.Text.Trim() == "")
            {
                CreateSpell();    //产生拼音码和五笔码
            }
            //定义科室分类表管理类

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

            Neusoft.HISFC.BizLogic.Manager.DepartmentStatManager deptStatManager = new Neusoft.HISFC.BizLogic.Manager.DepartmentStatManager();
            ////定义事务
            //Neusoft.FrameWork.Management.Transaction trans = new Neusoft.FrameWork.Management.Transaction(deptStatManager.Connection);
            //trans.BeginTransaction();

            ////管理类设置当前事务
            //deptStatManager.SetTrans(trans.Trans);

            deptMgr.SetTrans(Neusoft.FrameWork.Management.PublicTrans.Trans);
            try
            {
                //Do科室分类表,先保存,如果不存在则插入一条记录
                int parm = deptStatManager.UpdateDepartmentStat(this.departmentStat);

                if (parm == 0)
                {
                    parm = deptStatManager.InsertDepartmentStat(this.departmentStat);
                }

                if (parm != 1)
                {
                    Neusoft.FrameWork.Management.PublicTrans.RollBack();
                    MessageBox.Show("数据保存失败:" + deptStatManager.Err);
                    return;
                }
                #region 基础数据维护
                if (!this.chbClass.Checked)
                {
                    if (deptMgr.Insert(deptment) == -1)
                    {
                        if (deptMgr.DBErrCode == 1)
                        {
                            if (deptMgr.Update(deptment) == -1 || deptMgr.Update(deptment) == 0)
                            {
                                Neusoft.FrameWork.Management.PublicTrans.RollBack();
                                MessageBox.Show("保存科室信息失败" + deptMgr.Err);
                                return;
                            }
                        }
                        else
                        {
                            Neusoft.FrameWork.Management.PublicTrans.RollBack();
                            MessageBox.Show("保存科室信息失败" + deptMgr.Err);
                            return;
                        }
                    }
                }
                #endregion
            }
            catch (Exception a)
            {
                Neusoft.FrameWork.Management.PublicTrans.RollBack();
                MessageBox.Show(a.Message);
                return;
            }
            Neusoft.FrameWork.Management.PublicTrans.Commit();
            this.FindForm().DialogResult = DialogResult.OK;



            #endregion
        }
Example #14
0
        private void tvDepartmentLevelTree1_DragDrop(object sender, DragEventArgs e)
        {
            /*该程序段变量注释!
             * dragNode为【拖动】节点
             * objectNode为【目标】节点
             * */
            try
            {
                //获得进行"Drag"操作中【拖动】的节点
                TreeNode     dragNode = null;
                ListViewItem item     = null;

                //是在内部拖动
                dragNode = e.Data.GetData("System.Windows.Forms.TreeNode") as TreeNode;

                //是从ListView拖动
                if (dragNode == null)
                {
                    item     = e.Data.GetData("System.Windows.Forms.ListViewItem") as ListViewItem;
                    dragNode = (item.Tag) as TreeNode;
                }
                if (dragNode != null)
                {
                    //根据窗口位置转换成TreeView位置
                    Point position = this.tvDepartmentLevelTree1.PointToClient(new Point(e.X, e.Y));
                    //根据TreeView位置取当前【目标】节点
                    TreeNode objectNode = this.tvDepartmentLevelTree1.GetNodeAt(position);

                    //在目标组件中加入拖入的项目
                    if (objectNode != null)
                    {
                        //如果拖动后的位置跟拖动前的位置没变,则提示不能拖动
                        if (dragNode.Parent == objectNode)
                        {
                            MessageBox.Show("无法移动科室:源科室与目标科室相同!", "提示");
                            return;
                        }

                        //如果目标节点是拖动节点的子节点,则不允许拖动
                        if (objectNode.FullPath.IndexOf(dragNode.FullPath) > 0)
                        {
                            MessageBox.Show("无法移动科室:不能将科室移动到其下级科室中!", "提示");
                            return;
                        }

                        //更改拖动科室的父级科室编码和名称
                        Neusoft.HISFC.BizLogic.Manager.DepartmentStatManager deptMgr    = new Neusoft.HISFC.BizLogic.Manager.DepartmentStatManager();
                        Neusoft.HISFC.Models.Base.DepartmentStat             parentDept = objectNode.Tag as Neusoft.HISFC.Models.Base.DepartmentStat;
                        Neusoft.HISFC.Models.Base.DepartmentStat             dept       = dragNode.Tag as Neusoft.HISFC.Models.Base.DepartmentStat;

                        //目标节点的统计大类编码,用于比较拖动的科室是否在同一个统计大类中
                        string statCode = "";

                        //如果目标节点是统计大类(一级节点),则将大类付与拖动科室的父级
                        if (parentDept == null)
                        {
                            //取目标节点统计大类的编码
                            statCode = objectNode.Tag.ToString();

                            //只能在同一大类下进行拖动
                            if (statCode != dept.StatCode)
                            {
                                MessageBox.Show("无法移动科室:不能将科室移动到另一个科室分类中。", "提示");
                                return;
                            }
                            if (MessageBox.Show("确定要把科室" + dept.DeptName + "转到" + objectNode.Text + "下吗?", "科室转移提示", MessageBoxButtons.OKCancel) == DialogResult.OK)
                            {
                                dept.PardepCode = "AAAA";
                                dept.PardepName = objectNode.Text;
                            }
                        }
                        else
                        {
                            //取目标节点的统计大类编码
                            statCode = parentDept.StatCode;

                            //只能在同一大类下进行拖动
                            if (statCode != dept.StatCode)
                            {
                                MessageBox.Show("无法移动科室:不能将科室移动到另一个科室分类中。", "提示");
                                return;
                            }

                            if (MessageBox.Show("确定要把科室“" + dept.DeptName + "”转到“" + parentDept.DeptName + "”下吗?", "科室转移提示", MessageBoxButtons.OKCancel) == DialogResult.Cancel)
                            {
                                return;
                            }

                            //如果目标节点是科室,则将科室信息付与拖动科室的父级
                            dept.PardepCode = parentDept.DeptCode;
                            dept.PardepName = parentDept.DeptName;
                        }

                        if (deptMgr.UpdateDepartmentStat(dept) != 1)
                        {
                            MessageBox.Show("更新科室信息时出错:" + deptMgr.Err);
                            return;
                        }
                        //删除拖动的节点以前的位置
                        this.tvDepartmentLevelTree1.DelDepartment(dragNode);
                        //在新的位置插入拖动的节点
                        this.tvDepartmentLevelTree1.AddDepartment(objectNode, dragNode);
                    }
                }
            }
            catch
            {
            }
        }
Example #15
0
        /// <summary>
        /// 设置菜单和工具栏中的项目是否可用
        /// </summary>
        private void SetEnable()
        {
            //取当前TreeView中选中的节点
            Neusoft.HISFC.Models.Base.DepartmentStat departmentStat = this.tvDepartmentLevelTree1.SelectedNode.Tag as Neusoft.HISFC.Models.Base.DepartmentStat;

            //如果当前的TreeView选中的节点不是统计大类(一级节点),则根据属性判断是否可以增加人,否则不允许增加人员
            if (departmentStat != null)
            {
                Neusoft.HISFC.BizLogic.Manager.DepartmentStatManager deptStatMgr = new Neusoft.HISFC.BizLogic.Manager.DepartmentStatManager();

                #region 根据大类权限数量来判断是否可以增加人员(路志鹏、2007-6-15)
                int resultValue = deptStatMgr.DepartMentClassCount(departmentStat.StatCode);
                if (resultValue <= 0)
                {
                    this.menuItemAddUser.Enabled = false;
                }
                else
                {
                    this.menuItemAddUser.Enabled = true;
                }
                #endregion
            }
            else
            {
                this.menuItemAddUser.Enabled = false;
            }

            //如果当前的ListView中选中了项目,则属性菜单项可用,否则不可用
            if (this.neuListView1.SelectedItems.Count > 0 && this.neuListView1.Focused)
            {
                //当ListView中选中项目时,允许查看其属性
                this.menuItemProperty.Enabled = true;
                this.toolBarService.SetToolButtonEnabled("属性", true);

                //如果当前的ListView中选中了科室,则删除菜单项可用,否则不可用。人员不能在此处删除。
                Neusoft.HISFC.Models.Admin.UserPowerDetail userPower = this.neuListView1.SelectedItems[0].Tag as Neusoft.HISFC.Models.Admin.UserPowerDetail;
                if (userPower == null)
                {
                    this.menuItemDelete.Enabled = true;
                    this.toolBarService.SetToolButtonEnabled("删除", true);
                }
                else
                {
                    this.menuItemDelete.Enabled = false;
                    this.toolBarService.SetToolButtonEnabled("删除", false);
                }
            }
            else
            {
                //当ListView中没有选中项目时,如果TreeView中选中了项目则允许查看TreeView中节点的属性
                if (this.tvDepartmentLevelTree1.SelectedNode != null && this.tvDepartmentLevelTree1.SelectedNode.Parent != null)
                {
                    this.menuItemProperty.Enabled = true;
                    this.toolBarService.SetToolButtonEnabled("属性", true);
                }
                else
                {
                    this.menuItemProperty.Enabled = false;
                    this.toolBarService.SetToolButtonEnabled("属性", false);
                }
                this.menuItemDelete.Enabled = false;
                this.toolBarService.SetToolButtonEnabled("删除", false);
            }
        }
        /// <summary>
        /// 设置目标科室
        /// </summary>
        /// <param name="isCompany">目标单位是否为供货公司 True 供货公司 False 院内科室 设为True时剩余参数无意义</param>
        /// <param name="isPrivInOut">是否维护的入出库科室列表 设为True时 科室类型参数无意义</param>
        /// <param name="companyType">供货公司类型 物资/药品/设备</param>
        /// <param name="deptType">院内科室类型</param>
        /// <returns>成功返回1 失败返回-1</returns>
        public int SetTargetDept(bool isCompany, bool isPrivInOut, Neusoft.HISFC.Models.IMA.EnumModuelType companyType, string deptType)
        {
            this.alTargetDept.Clear();

            this.lnbTarget.Visible     = true;
            this.cmbTargetDept.Visible = true;

            if (isCompany)
            {
                #region 加载供货公司  物资暂时使用药品的供货单位进行测试

                switch (companyType)
                {
                case Neusoft.HISFC.Models.IMA.EnumModuelType.Equipment:             //设备
                    break;

                case Neusoft.HISFC.Models.IMA.EnumModuelType.Material:              //物资
                    Neusoft.HISFC.BizLogic.Material.ComCompany matCompany = new Neusoft.HISFC.BizLogic.Material.ComCompany();
                    this.alTargetDept = matCompany.QueryCompany("1", "A");
                    if (this.alTargetDept == null)
                    {
                        MessageBox.Show("加载物资供货公司列表失败" + matCompany.Err);
                        return(-1);
                    }
                    break;
                    //case Neusoft.HISFC.Models.IMA.EnumModuelType.Phamacy:			 //药品
                    //    Neusoft.HISFC.BizLogic.Pharmacy.Constant phaConstantManager = new Neusoft.HISFC.BizLogic.Pharmacy.Constant();
                    //    this.alTargetDept = phaConstantManager.GetCompany("1");
                    //    if (this.alTargetDept == null)
                    //    {
                    //        MessageBox.Show("加载药品供货公司列表失败" + phaConstantManager.Err);
                    //        return -1;
                    //    }
                    //    break;
                }

                foreach (Neusoft.FrameWork.Models.NeuObject info in this.alTargetDept)
                {
                    info.Memo = "1";
                }

                #endregion
            }
            else
            {
                if (isPrivInOut)        //权限科室
                {
                    #region 取入出权限科室

                    ArrayList tempAl;
                    Neusoft.HISFC.BizLogic.Material.Plan privInOutManager = new Neusoft.HISFC.BizLogic.Material.Plan();
                    tempAl = privInOutManager.GetPrivInOutDeptList(this.deptInfo.ID, this.class2Priv.ID);
                    if (tempAl == null)
                    {
                        MessageBox.Show(privInOutManager.Err);
                        return(-1);
                    }
                    //由privInOutDept转换为neuobject存储
                    //Neusoft.FrameWork.Models.NeuObject offerInfo;
                    Neusoft.HISFC.Models.Base.DepartmentStat offerInfo;
                    Neusoft.HISFC.Models.Base.PrivInOutDept  privInOutDept;
                    for (int i = 0; i < tempAl.Count; i++)
                    {
                        privInOutDept       = tempAl[i] as Neusoft.HISFC.Models.Base.PrivInOutDept;
                        offerInfo           = new Neusoft.HISFC.Models.Base.DepartmentStat();
                        offerInfo.ID        = privInOutDept.Dept.ID;        //供货单位编码
                        offerInfo.Name      = privInOutDept.Dept.Name;      //供货单位名称
                        offerInfo.Memo      = privInOutDept.Memo;           //备注
                        offerInfo.SpellCode = privInOutDept.User01;
                        offerInfo.WBCode    = privInOutDept.User02;
                        offerInfo.UserCode  = privInOutDept.User03;
                        this.alTargetDept.Add(offerInfo);
                    }

                    #endregion
                }
                else
                {
                    #region 根据科室类别获取院内科室

                    Neusoft.HISFC.BizLogic.Manager.Department managerIntegrate = new Neusoft.HISFC.BizLogic.Manager.Department();
                    this.alTargetDept = managerIntegrate.GetDeptment(deptType);
                    if (this.alTargetDept == null)
                    {
                        MessageBox.Show("根据科室类别获取科室列表发生错误" + managerIntegrate.Err);
                        return(-1);
                    }
                    foreach (Neusoft.FrameWork.Models.NeuObject info in this.alTargetDept)
                    {
                        info.Memo = "0";
                        //info.User01 = mySpell.Get(info.Name).SpellCode;
                    }

                    #endregion
                }
            }

            if (this.isSetDefaultTargetDept)
            {
                if (this.targetDept.ID == "")
                {
                    if (this.alTargetDept.Count > 0)
                    {
                        if (this.localTargetDept != null && this.localTargetDept.ID != "")
                        {
                            this.TargetDept      = this.localTargetDept;
                            this.localTargetDept = null;
                        }
                        else
                        {
                            this.TargetDept = this.alTargetDept[0] as Neusoft.FrameWork.Models.NeuObject;
                        }
                    }
                }
            }

            return(1);
        }
Example #17
0
        /// <summary>
        /// 删除当前ListView中选中的科室
        /// </summary>
        public void DelDepartment()
        {
            //取得当前ListView中要修改的科室数据信息
            TreeNode node = this.neuListView1.SelectedItems[0].Tag as TreeNode;

            //只能删除科室数据
            if (node == null)
            {
                return;
            }

            //取要删除的科室信息
            Neusoft.HISFC.Models.Base.DepartmentStat dept = node.Tag as Neusoft.HISFC.Models.Base.DepartmentStat;
            if (dept != null)
            {
                if (dept.Childs.Count > 0)
                {
                    MessageBox.Show("此科室有下级科室,不允许删除。\n请先删除下级科室。", "删除无法进行", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return;
                }
                //取此科室下级人员信息,如果存在人员则不允许删除。
                Neusoft.HISFC.BizLogic.Manager.UserPowerDetailManager userMgr = new Neusoft.HISFC.BizLogic.Manager.UserPowerDetailManager();
                ArrayList al = userMgr.LoadUser(dept.StatCode, dept.DeptCode);
                if (al == null)
                {
                    MessageBox.Show("取人员信息时出错:" + userMgr.Err);
                    return;
                }

                if (al.Count > 0)
                {
                    MessageBox.Show("此科室有下级人员,不允许删除。\n请先删除下级人员。", "删除无法进行", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return;
                }

                if (MessageBox.Show("确定要把科室“" + dept.DeptName + "”删除吗?", "确认科室删除", MessageBoxButtons.YesNo) == DialogResult.No)
                {
                    return;
                }

                //定义管理类,删除科室

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

                Neusoft.HISFC.BizLogic.Manager.DepartmentStatManager deptStatMgr = new Neusoft.HISFC.BizLogic.Manager.DepartmentStatManager();
                //Neusoft.FrameWork.Management.Transaction trans = new Neusoft.FrameWork.Management.Transaction(deptStatMgr.Connection);
                //trans.BeginTransaction();
                //deptStatMgr.SetTrans(trans.Trans);
                try
                {
                    //删除一个科室数据
                    int parm = deptStatMgr.Delete(dept.StatCode, dept.DeptCode);
                    if (parm != 1)
                    {
                        Neusoft.FrameWork.Management.PublicTrans.RollBack();;
                        MessageBox.Show("数据保存失败:" + deptStatMgr.Err);
                        return;
                    }
                }
                catch (Exception e)
                {
                    Neusoft.FrameWork.Management.PublicTrans.RollBack();;
                    MessageBox.Show("数据保存失败!" + e.Message, "提示");
                    return;
                }
                Neusoft.FrameWork.Management.PublicTrans.Commit();
                //MessageBox.Show("数据保存失败!" + e.Message,"提示");
            }

            //在TreeView中移除被删掉的节点
            this.tvDepartmentLevelTree1.DelDepartment(node);

            //显示当前TreeView中选中节点的下级内容
            this.ShowList();
        }