/// <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(); } } }
/// <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); }
/// <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(); } } }
/// <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; } } }
/// <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); }
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); }
/// <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; } } } }
/// <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; //取节点等级 } }
/// <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 }
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 { } }
/// <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); }
/// <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(); }