4.5 代码(字典)管理

系统代码是平台内置的、通用的、统一的数据描述。

代码管理(数据字典)是整个平台中数据描述的有效机制。通过界面进行可视化的操作和维护,能快速录入和修改平台上统一的字典数据。有效提高了数据的重复利用率和产品、项目的开发效率。整个数据字典数据为框架平台所共享,用户可以更好地对系统进行自定义管理,以满足自己的个性化需求。

代码管理的功能作业区(用户操作)界面如下图4.5-1所示,通过主要的操作按钮和信息内容可知其功能有:

① 新增代码组、代码,编辑代码组、代码,
② 删除代码组、代码,移动代码,
③ 代码组、代码的唯一标识,排序功能和备注信息等。

其中功能操作按钮的状态会根据选择的左侧树型中不同节点和不同登录用户的动作权限而改变。

平台在目前仅支持二级深度的树型代码结构,可根据实际需要进行添加、修改、删除或移动等对平台代码进行分类和调整。

图4.5-1  代码管理界面

#region LoadCodeTypes, LoadCodesprivate void LoadCodeTypes(TreeNode currentNode, DMESYS_SYSCODE_TYPE currentCodeType){List<DMESYS_SYSCODE_TYPE> subCodeTypes = null;if (currentCodeType != null)subCodeTypes = DBOSYS_SYSCODE_TYPE.GetSubCodeTypes(currentCodeType);elsesubCodeTypes = DBOSYS_SYSCODE_TYPE.GetSYS_SYSCODE_TYPEEntities();foreach (DMESYS_SYSCODE_TYPE rt in subCodeTypes){TreeNode node = currentNode.ChildNodes.Add();node.Tag = rt;node.Text = rt.Name;node.CollapsedImageIndex = 1;node.ExpandedImageIndex = 2;LoadCodeTypes(node, rt);}}private void LoadCodes(){codes.Clear();codes = DBOSYS_SYSCODE.GetSYS_SYSCODEEntities();foreach (DMESYS_SYSCODE r in codes){TreeNode tn = CallFindNode(r.Syscode_Type_Id, tvCodes);if (tn != null){TreeNode node = tn.ChildNodes.Add();node.Tag = r;node.Text = r.Name;node.CollapsedImageIndex = 3;node.ExpandedImageIndex = 3;}}}private TreeNode FindTreeNode(string codeTypeId, TreeNode tnParent){if (tnParent == null || tnParent.Tag is DMESYS_SYSCODE)return null;if ((tnParent.Tag as DMESYS_SYSCODE_TYPE).Id == codeTypeId)return tnParent;TreeNode tnRet = null;foreach (TreeNode tn in tnParent.ChildNodes){tnRet = FindTreeNode(codeTypeId, tn);if (tnRet != null)break;}return tnRet;}private TreeNode CallFindNode(string codeTypeId, TreeControl treeView){TreeNodeCollection nodes = treeView.RootNodes[0].ChildNodes;foreach (TreeNode n in nodes){TreeNode temp = FindTreeNode(codeTypeId, n);if (temp != null)return temp;}return null;}#endregion

4.5.1 新增、编辑和删除

新增代码组和代码:点击展开树形菜单“系统代码”,可以看到平台内置的一部分代码组和代码。选择“系统代码”后点击“新增分类”按钮,可以添加代码组;选择已有的代码组,点击“新增代码”按钮,可以添加具体的代码。

在新增代码组或代码的过程中,其中带红色星号标记“*”的条目,标识、名称和排序ID是必须要填写的内容。平台会检测该代码组或代码的标识、名称在平台上的合法性,确保代码组或代码的标识、名称的唯一性和可用性。

具体添加代码组、代码的操作界面如下图4.5.1-1所示:

图4.5.1-1  新增代码组、代码

private void InfoUpdatedADD(){if (dmeObj == null){lbInfo.Text = "在“系统代码”下新增如下代码分类";return;}if (dmeObj != null && dmeObj is DMESYS_SYSCODE_TYPE){dmeCodeType = dmeObj as DMESYS_SYSCODE_TYPE;lbInfo.Text = "在代码分类“" + dmeCodeType.Name + "”下新增如下代码";return;}}private bool InfoUpdatedEDIT(){if (dmeObj == null){lbInfo.Text = "加载代码类型信息时出错!";lbInfo.ForeColor = Color.Red;ucCodes.IsEnabled(false);return false;}if (dmeObj != null && dmeObj is DMESYS_SYSCODE_TYPE){dmeCodeType = dmeObj as DMESYS_SYSCODE_TYPE;lbInfo.Text = "编辑代码分类“" + dmeCodeType.Name + "”";return true;}if (dmeObj != null && dmeObj is DMESYS_SYSCODE){dmeCode = dmeObj as DMESYS_SYSCODE;lbInfo.Text = "编辑代码“" + dmeCode.Name + "”";return true;}return false;}private bool InsertorUpdateCodes(){if (dmeCode == null){dmeCode = new DMESYS_SYSCODE();}if (dmeCodeType == null){dmeCodeType = new DMESYS_SYSCODE_TYPE();}if (action == Action.ADD){if (dmeObj == null && DoValidatedCodes()){dmeCodeType.Id = FeiQing.DBO.DBOService.GetID();DBOSYS_SYSCODE_TYPE.InsertDMESYS_SYSCODE_TYPE(dmeCodeType);return true;}if (dmeObj is DMESYS_SYSCODE_TYPE && DoValidatedCodes()){dmeCode.Syscode_Type_Id = dmeCodeType.Id;dmeCode.Id = FeiQing.DBO.DBOService.GetID();DBOSYS_SYSCODE.InsertDMESYS_SYSCODE(dmeCode);return true;}return false;}if (action == Action.EDIT){if (dmeObj is DMESYS_SYSCODE_TYPE && DoValidatedCodes()){dmeCodeType.Id = (dmeObj as DMESYS_SYSCODE_TYPE).Id;DBOSYS_SYSCODE_TYPE.UpdateDMESYS_SYSCODE_TYPE(dmeCodeType);return true;}if (dmeObj is DMESYS_SYSCODE && DoValidatedCodes()){dmeCode.Id = (dmeCode as DMESYS_SYSCODE).Id;DBOSYS_SYSCODE.UpdateDMESYS_SYSCODE(dmeCode);return true;}return false;}return false;}private bool DoValidatedCodes(){if (String.IsNullOrEmpty(ucCodes.LbTxtTag)){lbTip.Text = "“标识”不能为空。";lbTip.ForeColor = Color.Red;return false;}if (String.IsNullOrEmpty(ucCodes.LbTxtName)){lbTip.Text = "“名称”不能为空。";lbTip.ForeColor = Color.Red;return false;}if (String.IsNullOrEmpty(ucCodes.LbTxtOrder)){lbTip.Text = "“排序ID”不能为空。";lbTip.ForeColor = Color.Red;return false;}if (!FeiQing.Util.DataValidator2.IsNumber(ucCodes.LbTxtOrder)){lbTip.Text = "“排序ID”必须为数值。";lbTip.ForeColor = Color.Red;return false;}if (dmeObj == null && dmeCodeType != null && action == Action.ADD){dmeCodeType.Tag = ucCodes.LbTxtTag;dmeCodeType.Name = ucCodes.LbTxtName;dmeCodeType.Order_Id = Int32.Parse(ucCodes.LbTxtOrder);dmeCodeType.Remark = ucCodes.LbTxtRemark;}if (dmeObj is DMESYS_SYSCODE_TYPE && dmeCode != null && action == Action.ADD){dmeCode.Tag = ucCodes.LbTxtTag;dmeCode.Name = ucCodes.LbTxtName;dmeCode.Order_Id = Int32.Parse(ucCodes.LbTxtOrder);dmeCode.Remark = ucCodes.LbTxtRemark;}if (dmeObj is DMESYS_SYSCODE_TYPE && dmeCodeType != null && action == Action.EDIT){dmeCodeType.Tag = ucCodes.LbTxtTag;dmeCodeType.Name = ucCodes.LbTxtName;dmeCodeType.Order_Id = Int32.Parse(ucCodes.LbTxtOrder);dmeCodeType.Remark = ucCodes.LbTxtRemark;}if (dmeObj is DMESYS_SYSCODE && dmeCode != null && action == Action.EDIT){dmeCode.Tag = ucCodes.LbTxtTag;dmeCode.Name = ucCodes.LbTxtName;dmeCode.Order_Id = Int32.Parse(ucCodes.LbTxtOrder);dmeCode.Remark = ucCodes.LbTxtRemark;}return true;}

编辑代码组和代码:主要是在代码组或代码的标识,名称,排序,备注等信息发生变更的情况时进行的编辑操作。点击展开树形菜单“系统代码”,在树型目录下选择一个代码组或者代码后点击“编辑”按钮,即完成对应代码组或代码信息的修改。具体编辑代码组、代码的操作界面如下图4.5.1-2中所示:

图4.5.1-2  编辑代码组、代码

删除代码组和代码:点击展开树形菜单“系统代码”,在树型目录下选择一个代码组或代码后点击“删除”按钮,图4.5.1-3显示了删除操作的提示对话框界面。

备注:对于拥有代码的代码组是无法直接删除的,首先需要删除其下属的代码。

图4.5.1-3  删除代码组或代码提示

private void btnDelete_Click(object sender, System.EventArgs e){if (IsCodeType()){if (selectedNode.ChildNodes.Count > 0){GUIHelper.MessageToUserInfo("提示:该代码分类包含代码,无法直接删除!");return;}if (GUIHelper.MessageQuestion("确定要删除代码分类“" + (selectedObj as DMESYS_SYSCODE_TYPE).Name + "”吗?", "删除代码分类")){DBOSYS_SYSCODE_TYPE.DeleteDMESYS_SYSCODE_TYPE(selectedObj as DMESYS_SYSCODE_TYPE);btnRefresh_Click(sender, e);return;}}if (IsCode()){if (GUIHelper.MessageQuestion("确定要删除代码“" + (selectedObj as DMESYS_SYSCODE).Name + "”吗?", "删除代码")){DBOSYS_SYSCODE.DeleteDMESYS_SYSCODE(selectedObj as DMESYS_SYSCODE);btnRefresh_Click(sender, e);return;}}}

4.5.2 移动代码

点击展开树形菜单“系统代码”,选择一个代码后点击“移动”按钮,如下图4.5.2-1中所示,选择需要移动到的目标代码组,点击确认,即可完成代码的调动。目前平台上只支持代码移动,代码组暂时不支持移动。

图4.5.2-1  移动代码

#region LoadCodeTypesprivate void LoadCodeTypes(TreeNode currentNode, DMESYS_SYSCODE_TYPE currentCodeType){List<DMESYS_SYSCODE_TYPE> subCodeTypes = null;if (currentCodeType != null)subCodeTypes = DBOSYS_SYSCODE_TYPE.GetSubCodeTypes(currentCodeType);elsesubCodeTypes = DBOSYS_SYSCODE_TYPE.GetSYS_SYSCODE_TYPEEntities();foreach (DMESYS_SYSCODE_TYPE rt in subCodeTypes){TreeNode node = currentNode.ChildNodes.Add();node.Tag = rt;node.Text = rt.Name;node.CollapsedImageIndex = 1;node.ExpandedImageIndex = 2;LoadCodeTypes(node, rt);}}#endregionprivate bool MoveCode(){if (destObj == null){lbTip.Visible = true;return false;}if (destObj is DMESYS_SYSCODE_TYPE){target.Syscode_Type_Id = (destObj as DMESYS_SYSCODE_TYPE).Id;DBOSYS_SYSCODE.UpdateDMESYS_SYSCODE(target);return true;}return false;}

转载于:https://www.cnblogs.com/iPragmatic/p/5829971.html

权限管理系统之字典(代码)管理相关推荐

  1. 通用权限管理系统组件 中集成多个子系统的单点登录(网站入口方式)附源码

    通用权限管理系统组件 (GPM - General Permissions Manager) 中集成多个子系统的单点登录(网站入口方式)附源码 上文中实现了直接连接数据库的方式,通过配置文件,自定义的 ...

  2. 通用权限管理系统组件 (GPM - General Permissions Manager) 不改数据库、甚至不写代码就集成铜墙铁壁权限管理组件...

    为什么80%的码农都做不了架构师?>>>    越成熟的东西,越牛X的东西,越简单才对,简单才是硬道理,苹果的手机只有少数几个按键,苹果Ipad也很少的按钮,甚至连苹果的笔记本键盘都 ...

  3. java登录ssh没有权限管理_ssh2--login 是Java的权限管理系统,有完整的程序及代码,很全面的概括了 的功能。 Develop 238万源代码下载- www.pudn.com...

    文件名称: ssh2--login下载 收藏√  [ 5  4  3  2  1 ] 开发工具: Java 文件大小: 9083 KB 上传时间: 2013-03-18 下载次数: 105 提 供 者 ...

  4. 通用权限管理系统组件 (GPM - General Permissions Manager) 权限管理以前我们都是自己开发,可是到下一个系统又不适用,又改,加上人员流动大,管理很混乱...

    为什么80%的码农都做不了架构师?>>>    权限管理以前我们都是自己开发,可是到下一个系统又不适用,又改,加上人员流动大,管理很混乱 Ψ吉日嘎拉 采用通用权限管理系统,这些烦恼就 ...

  5. 权限管理系统之模块管理

    4.4 模块管理 模块是平台功能的单元,是源码和数据的集合体. 模块管理(菜单.动作.数据)是整个平台中框架功能体现的核心.整个平台内的各个功能模块都是在此进行配置的. 这个功能模块主要是面向于平台上 ...

  6. 通用权限管理系统组件中简易员工档案管理模块参考

    通用权限管理系统组件 (GPM - General Permissions Manager) 中简易员工档案管理模块参考 今天的努力决定未来的成败,其实这些年想想,都是靠那么执着的精神,把 通用权限管 ...

  7. 中国重汽微服务管理_干货 | 微服务架构下 Spring Cloud OAuth2 通用权限管理系统

    点击蓝色"泥瓦匠BYSocket",关注我哟 加个"星标",不忘文末签到哦 作者:王杰 项目地址 Gitee: https://gitee.com/log4j/ ...

  8. PHP:【商城后台管理系统】部署角色管理,角色添加,菜单权限,删除角色功能

    PHP:[商城后台管理系统]部署角色管理,角色添加,菜单权限,删除角色功能 一.角色管理界面 ①首页 ②角色添加 ③角色编辑 ④角色删除 二.部署流程 部署流程 后端采用thinkphp6.0框架,角 ...

  9. ABP module-zero +AdminLTE+Bootstrap Table+jQuery权限管理系统第十三节--RBAC模式及ABP权限管理(附赠福利)

    ABP+AdminLTE+Bootstrap Table权限管理系统一期 Github:https://github.com/Jimmey-Jiang/ABP-ASP.NET-Boilerplate- ...

  10. 会话管理 轻量php框架_SpringSecurity+JWT权限管理训练营-1基于RBAC模型的权限管理系统...

    1.什么是权限管理系统? 权限管理是一个几乎所有后台系统的都会涉及的一个重要组成部分,可以说是后台项目的基本功,主要目的是对整个后台管理系统进行权限的控制,而针对的对象是员工,避免因权限控制缺失或操作 ...

最新文章

  1. 差分优化算法(DE)matlb源码中文注解
  2. 10个迷惑新手的Cocoa,Objective-C开发难点和问题
  3. matlab修改矩阵元素,怎么修改矩阵中的某些元素 或者简单点说保留矩阵中的元素...
  4. spring-boot使用spring-security进行身份认证(1)
  5. 【UOJ 48】最大矩形面积(修正版)
  6. 亚马逊云服务(AWS)中国与毕马威中国建立战略合作伙伴关系
  7. 完全相同的4个小矩形如图所示放置_分享 | 你想知道的100个桥梁知识点!
  8. Python小白的数学建模课-06.固定费用问题
  9. linux通过iso安装php,linux系统下怎么安装iso文件?
  10. 有关reducer拆分的学习
  11. 计算机考研常考:广义表的定义以及数据结构,你都会了吗?
  12. mysql连接服务报错1058
  13. VS CODE Python 包路径报错解决方案could not be resolved
  14. Teamviewer 图文使用教程
  15. 【PHP MySQL】数据库专题 第八课 表连接
  16. Java黑皮书课后题第4章:4.4(几何:六边形面积)六边形面积可以通过下面公式计算(s是边长) 编写程序,提示用户输入六边形的边长,然后显示它的面积
  17. 清华大学(深圳)吕帅课题组招收计算机领域博士后
  18. 浅谈Openstack网络原理(openstack无法上网?)
  19. mySQL 2502 2503错误
  20. python凯撒密码e_凯撒密码python实现

热门文章

  1. 开发环境配置(netbeans+ant迁移到eclipse+maven)
  2. Flappy Bird 单机版
  3. Cisco路由重分发配置(引入路由)
  4. C语言实验六作业,C语言程序设计作业——实验六.doc
  5. ListT的RemoveAll方法
  6. mybatis两个内置参数
  7. Redis命令回溯方案
  8. 主题桌面 树莓派4b经典_用树莓派4b构建深度学习应用(一)硬件篇
  9. vue 第一天(基本的结构)
  10. idea查看多级父类,实现的接口和子类的层次结构图