有不少园友经常问我程序有没有更新,真的很抱歉,最近因为工作原因一直很忙,导致程序有很长时间都没有更新了,首先在这里感谢关心俺的朋友们。

  这几天好好看了一下原来的程序,还有很多地方需要改进,比如操作数据库的方式、权限、报表等等,数据库与报表下一步逐步进行更新,先将权限再细化一点儿,精确到操作按钮上面,本来想在菜单下面跟着添加按钮权限的,这样的话看上去直观一些,如下图所示:

但是在开发过程中遇到了几个比较棘手的问题,如果要整理出来的话改动的地方会很多,所以暂时我将按钮权限提出来了,当然这个功能是一模一样的,数据也都是从数据库提取出来的,只是在视觉上面感觉有点遗憾。
下图所示:当前用户对“菜单信息设置”只有查看的权限,没有其它操作权限,

现在给它分配操作的权限,如下图:

然后在页面的Load里面增加了以下代码:

/// <summary>
/// 根据权限列表里面的信息,来决定用户具体有哪些操作权限。
/// </summary>
void SetButton()
{
DataTable dt_SetButton = new DataTable();
dt_SetButton = new sys_RoleManager().GetUserRoleByUserID("", allenSingleton.UserID);
if (dt_SetButton.Rows.Count > )
{
DataTable dt_New = new DataTable();
dt_New = dt_SetButton.Clone();
//这一步其实可以直接从数据库查询出来,如果放在存储里面完成的话也需要另外添加一个FunctionName的参数
//所以就在程序里面从Table里面Select一下。
DataRow[] dr = dt_SetButton.Select("FunctionName='菜单资料设置'");
for (int i = ; i < dr.Length; i++)
{
dt_New.ImportRow((DataRow)dr[i]);
} if (dt_New.Rows[]["AddID"].ToString() != "")
{
this.tsCreate.Enabled = true;
}
if (dt_New.Rows[]["DeleteID"].ToString() != "")
{
this.tsDelete.Enabled = true;
}
if (dt_New.Rows[]["UpdateID"].ToString() != "")
{
this.tsChange.Enabled = true;
}
if (dt_New.Rows[]["PrintID"].ToString() != "")
{
this.tsPrint.Enabled = true;
}
}
}

从下图可以看到当前用户已经可以对“菜单信息设置”进行删除和打印了

对应的操作ID都是保存在数据库,操作类型也是动态从数据库读取的。

最近事情太多了,等没这么忙了之后好好整理一下。

WinForm开发框架【细化权限至操作按钮】的更多相关文章

  1. Winform开发框架之权限管理系统改进的经验总结(4)-一行代码实现表操作日志记录

    在前面介绍了几篇关于我的权限系统改进的一些经验总结,本篇继续这一系列主体,介绍如何一行代码实现重要表的操作日志记录.我们知道,在很多业务系统里面,数据是很敏感的,特别对于一些增加.修改.删除等关键的操 ...

  2. Winform开发框架之权限管理系统改进的经验总结(2)-用户选择界面的设计

    在上篇总结随笔<Winform开发框架之权限管理系统改进的经验总结(1)-TreeListLookupEdit控件的使用>介绍了权限管理模块的用户管理部分,其中主要介绍了其中的用户所属公司 ...

  3. Winform开发框架之权限管理系统改进的经验总结(1)-TreeListLookupEdit控件的使用

    最近一直在做一些技术性的研究和框架改进工作,博客也落下好几天没有更新了,也该是时候静下心来,总结这段时间的一些技术改进的经验了.和上一阶段的CRM系统开发和技术研究一样,我都喜欢在一个项目或者模块完成 ...

  4. Winform开发框架之权限管理系统的改进

    权限管理系统,一直是很多Mis系统和一些常见的管理系统所需要的,所以一般可以作为独立的模块进行开发,需要的时候进行整合即可,不需要每次从头开发,除非特殊的系统需求.我在Winform开发框架介绍中的随 ...

  5. Winform开发框架之权限管理系统功能介绍

    权限管理系统的重要特性总结: 1) 高度集成的权限系统.独立模块,能快速整合使用.2) 符合权限的国际通用标准,基于RBAC(基于角色的访问控制)的角色权限控制.3) 多数据库架构支持,内置支持Sql ...

  6. Winform开发框架之权限管理系统改进的经验总结(4)--用户分级管理

    在实际的系统应用环境中,用户的分级管理一般也是比较常见的功能,小的业务系统可以不需要,但是一般涉及到集团.分子公司.或者是事业单位里面的各个处室或者某某局的人员管理,这些分级管理就显得比较必要,否则单 ...

  7. Winform开发框架之权限管理系统改进的经验总结(3)-系统登录黑白名单的实现

    在一般的权限系统里面,可能经常会看到系统的黑名单或者白名单的拦截功能.在一般权限系统里面,常见的黑名单就是禁止用户在某些IP上登录系统,白名单就是允许用户只在某些IP上登录系统.本随笔主要介绍在我的权 ...

  8. Winform开发框架之权限管理系统

    本文章转载:http://www.cnblogs.com/wuhuacong/archive/2011/05/08/2040620.html 至此,权限管理模块介绍已经完毕,下面给出一个调用例子Dem ...

  9. Winform开发框架之字段权限控制

    在我的很多Winform开发项目中(包括混合框架的项目),统一采用了权限管理模块来进行各种权限的控制,包括常规的功能权限(按钮.菜单权限).数据权限(记录的权限),另外还可以进行字段级别的字段权限控制 ...

随机推荐

  1. 遇到 Line 21: StartTag: invalid element name ios

    打开这个的storyboard 文本编辑打开修改里面有冲突的部分

  2. css元素排列

    有时候元素的排列没有预想的效果,考虑是不是margin和padding的影响

  3. linux scp 远程复制文件

    1.从本机复制文件到远程scp 文件名 远程计算机用户名@远程计算机的ip:远程计算机存放该文件的路径2.从远程复制文件到本机:scp 远程计算机用户名@远程计算机ip:文件名 存放该文件的本机路径3 ...

  4. hashmap的底层实现

    HashMap的底层实现都是数组+链表结构实现的,添加.删除.获取元素都是先计算hash值,根据hash值和table.length计算出index也就是table的数组的下标,然后进行相应的操作. ...

  5. Tomcat 常用配置及网站部署

    一.同一Tomcat  多个端口部署不同的项目       在tomcat 安装目录下C:/Program Files/apache-tomcat-6.0.29/conf找到server.xml (1 ...

  6. iOS 开发:TCP三次握手连接

    在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接. 第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认: 第二次握 ...

  7. STL—Vector简介

    有关C++ STL 中的vector向量的用法(代码示例) 一. 简介 Vector是一个称为向量的顺序容器(不明白顺序容器与关联容器的可以Google). 二. 特点 1. 动态(相当于一个动态数组 ...

  8. Python快速建站系列-Part.Five.3-个人主页及资料页面

    |版权声明:本文为博主原创文章,未经博主允许不得转载. 第五部分最后一节,完成个人主页里资料页面的个人资料的展示和修改功能,不过毕竟功能比较少,个人资料其实只有昵称一项,手动滑稽. 一如既往先写出来u ...

  9. 大规模web 服务开发技术

    <大规模web 服务开发技术> 是一本讲解大型Web 应用的入门级书籍,能够让我们接触到大应用的知识点. 目录如下: 第1章  大规模Web服务的开发定位——掌握整体第2章  大规模数据处 ...

  10. JavaScript随笔目录

    DOM DOM节点 浏览器环境 遍历节点 DOM的基本属性 Attribute和自定义Property 在DOM中搜索元素 对文档进行操作