OA办公自动化系统设计与实现

摘要

OA(Office Automation)办公自动化系统是利用计算机技术实现有纸化办公向无纸化办公的转变,人工向自动化的转变。本系统命名为Office Easy Now,意为即刻起办公更加简单,使用者可以充分发挥网络的便捷性,提高工作效率!

本次毕业设计在Windows XP Professional环境下采用Visual Studio 2005 +SQL Sever 2005开发。本系统采用B/S(Browser/Server)构架,利用网络将服务器端与客户端在物理上分开,并将数据库置于服务器上,使数据逻辑上分开,不仅方便系统维护,且数据更具有安全性。整个系统目前已经实现的模块有:机构管理、部门管理、文件柜橱、日程管理、便笺管理、消息管理、角色管理、菜单管理、用户管理、日志管理等模块,另外本系统在设计时充分考虑了扩展性,可随时添加新的模块。

系统在设计与实现上采用了三层构架,通过将系统构架分为表现层(UI)、业务逻辑层(BLL)、数据访问层(DAL),使得系统能够体现“高内聚,低耦合”的思想。这种构架,可以降低层与层之间的依赖,使得开发人员可以只关注整个结构中的其中某一层;也利于各层逻辑上的复用。系统在UI端使用jQuery来完成系统的控制。jQuery是一个javaScript库,它快速、简洁,使用户能更方便地处理HTML 文档、事件、实现动画等效果,并可方便的为网站提供AJAX交互应用。为了能够增强整个系统的可扩展性,系统中安排了角色管理模块,可以方便的新增角色,并可赋予其一定的权限,通过控制角色的权限来控制用户可以做什么,不可以做什么。

关键词:OA办公自动化;三层构架;权限管理;AJAX


Design and Realizition of OA Office Automation System 

based on .NET platform

Abstract

OA(Office Automation) ,Office automation system realized by using computer technology to achieve paper-based office to the paperless office changing, manual to automatic changing. The system is named Office Easy Now, it means office easier from now on. Users can give full play to the network of convenience, improve work efficiency!

The graduation project using Visual Studio 2005 with SQL Sever 2005 on Windows XP Professional development environment. This system uses B / S (Browser / Server) architecture, server and client physically separate by using network, and we put the database on the server, the data logically separated, this is not only helpful to system maintenance and the data is more secure . The entire system has been added these modules: Branch Management, Department Management, File Cabinets, Calendars, Notes, Information Management, Role Management, Menu(Module) Management, User Management, Log Management, the system also fully considered in the design scalability to add new modules at any time.

The system is designed by Three Layers, by using this, the system is divided into the user interface layer (UI), business logic layer (BLL), Data Access Layer (DAL), this Allows the system to reflect the "high cohesion and low coupling" thinking. This architecture can reduce the layer and layer dependence, so developers only pay a close attention to the structure in which they should concern, also beneficial to all levels of logic reuse. The UI (User Interface) using jQuery to show the system. jQuery is a javaScript library, it is fast, simple, and allows users to more easily deal with HTML documents, events, to achieve animation effects, and can be convenient for the website AJAX interactive applications. In order to enhance the entire system scalability, the system provide role management module, you can easily add the role, and can be given certain privileges, by controlling the role of the authority to control the users’ privileges, tell them what they can do and can not do.

Key Words: OA(Office Automation);Three Lays; Priviledge Management;AJAX(Asynchronous JavaScript and XML)

目录

摘要

Abstract

目录

第1章 引言

第2章 工具介绍

2.1. .NET 介绍

2.1.1. .NET Framework

2.1.2. Visual Studio 2005 介绍

2.1.3. C# 介绍

2.1.4. ASP.NET简介

2.2. SQL Server简介

2.3. jQuery简介

第3章 OA自动化办公系统可行性分析

3.1. 项目背景和必要性

3.2. 使用OA系统的优势

3.3. 可行性分析

第4章 OA自动办公化系统需求分析与总体设计

4.1. 引言

4.2. 任务概述

4.3. 系统(或用户)的特点

4.4. 假定和约束

4.5. 需求规定

4.5.1. 软件功能说明

4.5.2. 对功能的一般性规定

4.5.3. 对性能的一般性规定

4.5.4. 时间特性要求

4.5.5. 灵活性

4.5.6. 输入输出要求

4.5.7. 故障处理要求

4.5.8. 其他专门要求

4.6. 运行环境规定

4.6.1. 硬件设备

4.6.2. 软件要求

4.7. 系统结构

4.7.1. 系统功能模块图

4.7.2. 系统功能模块介绍

第5章 数据库的设计与实现

5.1. 数据库分析

5.2. 数据库逻辑设计

5.2.1. 数据库E-R

5.2.2. 数据库表结构

5.2.3. 数据库存储过程(部分)

第6章 系统详细设计

6.1. 系统设计概述

6.2. 数据访问层

6.2.1. SqlHelper

6.2.2. UserDAL

6.2.3. messageDAL类图

6.3. 业务逻辑层

6.3.1. RoleRightBLL类图

6.3.2. fileBLL

6.4. 表示层设计

第7章 界面设计

7.1. 界面设计

7.1.1. 登录界面设计

7.1.2. 系统首页设计

7.1.3. 菜单设计

7.1.4. 系统信息页面

7.1.5. 系统中人性化界面元素

7.2. 系统设计主要代码

第8章 技术难点

8.1. 三层构架

8.1.1. 数据访问层

8.1.2. 业务逻辑层

8.1.3. 表示层

8.1.4. 三层构架相互调用关系

8.2. 权限管理

8.3. 树形控件TreeView

总结

参考文献

附录A 业务逻辑层代码

附录B 数据访问层代码

致谢

  1. 引言

随着计算机技术的不断发展,兼之通讯技术的不断提升,OA已与十几年前的OA发生了很大的变化,可以将最新的思想、管理理念整合进OA,使企业在高速发展过程中呈现出的多项目、跨区域、集团化的发展,从而提升企业的整体竞争力和前进速度。

OA在发展过程中,目前已经经历了四个时期:工具阶段、MIS阶段、网络协同工作时代、移动化阶段。OA从纸张信息数字化已经发展到了现在的移动办公阶段!

在管理方面,大部分企业的管理方式已由传统走向数字阶段。信息的管理就是对企业业务中无序复杂的信息进行系统化管理,这样的信息具有可收集、可处理、可共享并且是可再利用的,通过对信息的处理,提供企业的业务水平和效率。企业对信息的管理将成为生存发展的关键性因素。

在用户方面,大部分用户对计算机所知有限,对复杂的软件熟悉周期将会加长,功能复杂的软件将会增加企业的学习和培训的压力,并且许多功能并不能得到充分的利用。因此,合格的系统需要有适合大小的功能,以及简单易用的特性。

在这用条件下,开发一个收集处理企业信息,并且简单易用的系统至关重要。本系统采用了现下流行的ASP.NET技术,使用SQL Server 2005保存数据,并适当加入jQuery代码,使程序更具有表现力及易用性。

ASP.NET 技术在微软公司的大力推广与支持下已经比较完善,它使用目前比较流行的C#面向对象语言开发,使整个系统完全基于“对象”模式。而且ASP.NET 将一张网页看成一个Form,形成独有的WebForm编程模式,这与VB下的WinForm编程思想有异曲同工之妙,也就是说ASP.NET完全继承了VB的简单编程模式,整个网站可以当作是一个Windows应用程序去编程。更有利的是,ASP.NET使用微软开发的Visual Studio 2005作为程序开发的IDE(Integrated Development Environment,集成开发环境),通过使用Visual Studio提供的intelligence技术,可极大的提高编程效率!

Internet/Intranet的飞速发展,为信息的交流和共享提供了技术的保证,同时也预示着网络化办公时代来临,为办公自动化系统的开发提供了一个很好的前景。


  1. 工具介绍
    1. .NET 介绍
      1. .NET Framework

微软公司将.NET Framework定义为:支持生成和运行下一代应用程序和XML WEB Sevices 的内部windows组件。.NET主要实现以下目标:

  • 提供面向对象的开发环境,支持本地代码的开发、远程对象的开发。
  • 更好地解决开发应用程序的版本和部署版本之间的冲突。
  • 使用解决方案,调用第三方代码,实现代码复用。
  • 使开发人员面对不通语言的代码时,有一样的开发经验,如Windows应用程序与Web应用程序。
  • 公共语言运行库是.NET框架的基础。

.NET框架的核心是运行时的执行环境,即公共语言运行库。编译的第一步会将源代码编译成中间托管代码。.NET使用托管代码的好处在于可以提供跨语言集成、跨语言异常处理、安全性、版本控制和部署支持、简化的组件交互模型、调试和分析服务。

所有.NET下的语言都将先转化到公共CLR(运行时)上的代码,然后右公共运行时统一编译执行。

      1. Visual Studio 2005 介绍

Visual Studio是一套完整的开发工具集,利用它可以生成Windows应用程序,Web应用程序,Web Service程序等。VB.NET、VC.NET、C#.NET、J#.NET都可以在这个环境中开发。利用此IDE可以共享工具且有助于创建混合语言解决方案。另外,这些编程语言使用了.NET Framework的功能,通过此框架可以简化ASP.NET Web 的开发难度。

Visual Studio 中包含的Visual Web Developer为Web编程提供了一个全新的设计器,其中包含许多用于创建编辑网页的增强功能。Visual Web Developer自带一个轻型Web服务引擎,可以在开发时不使用IIS,直接在Visual Web Developer调试使用。在Visual Web Developer中,各个页面将会动态编译,开发人员修改页面后,刷新就会重新编译。

      1. C# 介绍

C#是微软公司发布的一种面向对象的、运行于.NET Framework之上的高级程序设计语言。C#与Java有着惊人的相似之处;它具有单一继承、接口、与Java几乎同样的语法和编译成中间代码再运行的过程。但是C#与Java也有着明显的不同,C#借鉴了Delphi的特点。

C#语言的加载过程见图2-1。

图2- 1 C# 加载过程

C#是一种安全的、稳定的、简单的、优雅的,由C和C++衍生出来的面向对象的编程语言。它在继承C和C++强大功能的同时去掉了一些它们的复杂特性。C#结合了VB可视化操作的简单行和C++的高效率性,以其强大的操作能力、优雅的语法风格、创新的语言特性和便捷的面向组件编程的支持成为.NET开发的首选语言。

在执行C#程序时,程序集将加载到CLR中,CLR会根据清单中的信息执行不同的操作。如果符合安全要求,CLR执行实时编译以将IL代码转换为本机机器指令。CLR还提供垃圾回收、异常处理和资源管理有关的其他服务。

      1. ASP.NET简介

ASP.NET是微软在.NET Framework中所提供的 ASP.NET网页处理、扩充以及HTTP通道的应用程序与通信处理等工作,以及Web Service的基础架构。ASP.NET不仅是ASP技术的新版本,它要比ASP技术要强大许多。

ASP.NET是运行在.NET Framework上的应用程序,ASP.NET在2.0版本已经发展定型,很多人都把 ASP.NET 当做是一种编程语言,但它实际上只是一个由 .NET Framework 提供的一种开发平台 (development platform),并非编程语言。C#才是ASP.NET的常见编程语言。

ASP.NET 的原始设计构想是要让开发人员可以像 VB 开发Windows应用程序那样使用事件驱动式程序开发模式的方法来开发网页程序,如果使用ASP技术来完成的话,就必须要使用大量的辅助信息,像是查询字符串或是窗体字段数据来识别与判断对象的来源、事件流向以及调用的函数等等,需要撰写的代码量相当的多,但 ASP.NET 很巧妙利用窗体字段和JavaScript脚本把事件的传递模型隐藏起来了。

    1. SQL Server简介

Microsoft SQL Server是由美国微软公司所推出的关系数据库解决方案。

SQL Server 是一个全面的数据库平台,使用集成的商业智能 (BI) 工具提供了企业级的数据管理。SQL Server 数据库引擎为关系型数据和结构化数据提供了更安全可靠的存储功能。

SQL Server 是一个全面的、集成的、端到端的数据解决方案,它为企业中的用户提供了一个安全、可靠和高效的平台用于企业数据管理和商业智能应用。

SQL Server数据平台包括以下工具:关系型数据库,复制服务,通知服务,集成服务,分析服务,报表服务,管理工具,开发工具。通过SQL Server平台可以为用户提供以下方面的应用:充分利用数据,提高生产力,减少IT复杂度,更低的总体应用成本。

    1. jQuery简介

jQuery是一套跨浏览器的JavaScript库,强化HTML与JavaScript之间的操作。2006年1月释出第一个版本。目前全球有28%的站台使用jQuery,是目前最受欢迎的JavaScript库。

jQuery 有下列特点:跨浏览器DOM元素选择,DOM 遍历与操纵,支持事件,CSS操纵,特效和动画,支持Ajax ,延伸性,JavaScript插件。


  1. OA自动化办公系统可行性分析
    1. 项目背景和必要性

网络办公系统(OA),是伴随着企业对信息化建设和Internet技术的广泛应用而应运而生的。现今企业正越来越重视信息的重要性。在这个面临着巨大的技术革命,信息技术突飞猛进的时代,每个企业都必须紧跟时代的步伐,加强企业竞争力和提升现代化企业的管理能力。

伴随着企业对信息化需求的增长,计算机、网络等信息技术已逐渐渗透到企业的日常工作中。传统的企业内信息的交流方式已逐渐不能满足企业对大量信息的快速传递与处理的需求。

因而,针对企业对办公、管理信息化的需求,OA应运而生,目前的OA软件,普遍存在着以下难以解决的问题,制约了其市场空间的拓展。主要体现在:价格昂贵,技术复杂,安装/维护困难,片面追求大而全,必要性。

办公自动化不仅兼顾个人办公效率的提高,更重要的是可以实现群体协同工作。协同工作意味着要进行信息的交流,工作的协调合作。通过使用网络,信息的交流与团队的协作几乎可以在瞬间完成。办公自动化和一个企业的信息将会紧密的结合,因而可以将信息采集、查询、统计等功能与具体业务密切关联。决策人员只须一个操作就可以得到想要的结果,从而极大得方便了企业领导的管理和决策。

    1. 使用OA系统的优势

使用OA管理平台可以从许多方面大幅度地提升现有软件开发的层次。使用OA的好处可以总结为如下几个方面:

  • 质量:提供从设计、开发到维护的全面质量保证。
  • 成本:极大地降低项目总体成本。
  • 周期:极大地加快开发进度。
  • 管理:简化软件工程,降低管理的复杂度,风险。
  • 快速:支持快速应用,大大降低开发风险。
  • 人员:对人员要求大大降低,投资保护。
  • 效益:使持续完善成为可能,大大延长项目和产品的使用寿命,效益。
  • 业务:对企业业务的运行、规范和重组提供强大的支持。
    1. 可行性分析

本系统具有以下的特点以适应企业的需求。

领先的B/S(浏览器/服务器)操作方式,使得企业应用不受地域限制。且使用方便,不受客户端系统及软件限制。

  • 采用基于WEB的企业计算,主HTTP服务器采用了微软公司的IIS服务器,性能稳定可靠。同时支持SQL Server数据库平台,维护方便。
  • 数据存取集中控制,避免了数据泄漏的可能。多级权限控制,完善的密码验证与登录验证机制,对系统密码进行加密处理更加强了系统安全性。
  • 具有良好的可扩充性,可随时开发系统的新模块。
  • 使用ASP.NET开发技术,ASP.NET不是ASP技术的简单升级,,在微软公司的强大支持下,可以使用C#、VB、VC++、Javascript四种语言来编写代码,采用预先编译技术,使得系统执行效率更高。

最终结果:在针对于中小型企业用户,建议采用ASP.NET+SQL Server技术开发的OA系统,因为该技术易于服务器的维护,成本相对较低,开发周期较短。


  1. OA自动办公化系统需求分析与总体设计
    1. 引言

OA可满足于企事业单位的、综合型的、能够提高单位内部信息交流、共享、流转处理的和实现办公自动化和提高工作效率的各种信息化设备和应用软件。OA一般采用网络平台,使企业内部人员方便快捷地共享信息,高效地协同工作;改变过去复杂、低效的手工办公方式,实现迅速、全方位的信息采集、信息处理,为企业的管理和决策提供科学的依据。一个企业实现办公自动化的程度也是衡量其实现现代化管理的标准。OA从最初的以大规模采用复印机等办公设备为标志的初级阶段,发展到今天的以运用网络和计算机为标志的现阶段,对企业办公方式的改变和效率的提高起到了积极的促进作用。

    1. 任务概述

本系统围绕着OA系统的定义,系统地展开各种常用的辅助功能。系统涵盖日常常用的功能以及各种辅助实用的功能,可以充分发挥计算机的辅助作用,提交工作效率。OA是信息化需求的产物,因为在需求的基础上产生的OA系统应该能够顺利高效的完成相关的任务。而且为了使OA在一定程度上提高工作效率,系统本身也应该具有高效的属性,并且足够健壮稳定,才能胜任需求。工作的需求是不断发展的,OA也应当不断发展以适应日益增长的变化,因此,系统必须有足够的可扩充性。为了增加系统的可扩充性,应当使用API技术,尽量使系统的各个模块相互独立,并通过系统核心相互依存。

    1. 系统(或用户)的特点

系统采用微软公司的ASP.NET技术,使用C#语言以及SQL 2005进行开发。为了使系统更加的完善以及人性化,系统还会使用的一些辅助技术,例如:Javascript、Ajax、CSS以及一些前台的photoshop等美工处理技术。

同时,使用本系统的人员大多数是无计算机相关技术的人员,因此为了使用户尽快的熟悉使用本系统,应该充分的考虑人机交互技术,使系统更加人性化。

    1. 假定和约束

因本系统复杂庞大,可能在有限的时间内无法充分完成,故应先将系统构架充分完善,并组织好系统API,这样在后期开发时不仅可以增加开发效率,同时在后期无法完善整个系统时可以更加有效的与继续开发者沟通。

    1. 需求规定
      1. 软件功能说明

本软件功能已整理成如表 4-1 。

表格 4-1软件功能说明

一级模块

二级模块

功能简介

系统相关

系统首页

显示新的消息、新的文件、新的日程、新的便笺

机构管理

添加机构

添加企业机构

机构列表

列出企业,提供编辑,删除链接

部门管理

添加部门

添加机构下设的部门

部门列表

列出部门,提供编辑,删除链接

文件柜橱

添加文件

上传并保存文件信息到数据库

文件列表

列出文件,提供下载,编辑,删除链接

文件回收站

列出已删除的文件,提供彻底删除功能

日程管理

添加日程

添加新的日程

日程列表

在日历页面上显示本月的日程,提供查看详细日程链接

便笺管理

添加便笺

添加新的便笺

便笺列表

列出便笺,提供删除链接

消息管理

发送消息

发送信息给其他用户

消息列表

显示已发送,接收到的消息,提供删除链接

角色管理

添加角色

添加系统角色

角色列表

列出系统角色,提供删除,编辑权限链接

权限添加

对选中的角色编辑权限

权限列表

列出系统中存在的权限

菜单(模块)管理

添加菜单

添加新的菜单(模块)

菜单列表

按树形显示菜单

用户管理

添加用户

添加新的用户

用户列表

列出系统中的用户,提供删除链接

用户编辑

编辑用户信息,可先按用户名搜索

日志管理

登录日志

列出登录日志,提供常用操作

操作日志

列出操作日志,提供常用操作

      1. 对功能的一般性规定

各个模块应尽量保持独立,采用系统核心提供的API进行通讯。

界面应该统一,且在必要时应有声音提示。

要有统一的错误提示功能,并且针对错误提示要提供解决方案。

系统应具有帮助文档。

      1. 对性能的一般性规定

OA系统是一个大型系统,因此,系统本身应该充分考虑性能对系统的影响,对于一些耗资源的模块,如文件共享(文件的上传下载过程),聊天室等应认真处理代码,尽量减小耗费资源的可能。

      1. 时间特性要求

考虑到系统的复杂程度,先不提供时区设置功能,统一采用北京时间东8区作为OA系统的系统时间区。

      1. 灵活性

采用API等方式,使系统各个模块间相互独立,增加系统的灵活性。

      1. 输入输出要求

OA系统比较复杂,因此可能涉及到各种类型的数据输入输出。在设计数据库时应充分考虑数据格式。

      1. 故障处理要求

采用统一的错误处理方式,并且各个模块之间独立处理,保证系统整体的稳定性,即在某个或者某些模块崩溃时不至于影响其它的模块运行。

      1. 其他专门要求

因数据可能涉及到某些隐私,因此系统应尽量考虑数据的安全性,例如使用数据加密,防止SQL注入等技术。

    1. 运行环境规定
      1. 硬件设备

一台服务器及网络链接设备。一台或者一台以上客户机。

      1. 软件要求

IIS Web服务器(IIS 6.0 或者以上版本)

.NET Framework 2.0

SQL Server 2005或以上版本(建议使用SQL Server 2005)

    1. 系统结构
      1. 系统功能模块图

在图4-1中显示的是整个系统模块图。

图 4-1  OA办公自动化系统功能模块图

      1. 系统功能模块介绍

系统首页:显示新的消息、新的文件、新的日程、新的便笺。以及显示系统配置等相关信息。

添加机构:添加企业机构,所有的部门将会隶属于某机构。

机构列表:列出企业,提供编辑,删除链接,在显示机构的同时选择对机构删除或者修改操作。

添加部门:添加机构下设的部门,所有的部门必须隶属于某个机构,且用户属于某个部门。

部门列表:列出部门,提供编辑,删除链接,在显示部门的同时选择对部门删除或者修改操作。

添加文件:上传并保存文件信息到数据库。默认情况下,文件将会上传到服务器指定位置,并将信息写入数据库。

文件列表:列出文件,提供下载,编辑,删除链接,在显示文件的同时选择对文件删除或者修改、下载操作。删除时将不会执行物理删除操作,只是在数据库中标记删除。

文件回收站:列出已删除的文件,提供彻底删除功能,彻底删除不仅在物理磁盘上彻底删除,还将删除数据库中相应的记录。

添加日程:添加新的日程,包括日程的提醒时间等。

日程列表:在日历页面上显示本月的日程,提供查看详细日程链接。查看时先按天显示,点击后显示详细日程。

添加便笺:添加新的便笺。

便笺列表:列出便笺,提供删除链接。

发送消息:发送信息给其他用户,在添加发送用户时将会首先判断用户是否存在。

消息列表:显示已发送,接收到的消息,提供删除链接。删除时首先判断对方是否删除,若是未删除则标记删除,若是已删除,则在数据库中删除。

添加角色:添加系统角色,所有的用户基于角色来配置权限。

角色列表:列出系统角色,提供删除,编辑权限链接。

权限添加:对选中的角色编辑权限,选中角色时将会自动列出相关的权限。

权限列表:列出系统中存在的权限。

添加菜单:添加新的菜单(模块),本系统的菜单基于模块。菜单是模块中显示的项。

菜单列表:按树形显示菜单。重新排列数据库相关项的顺序。

添加用户:添加新的用户。选择其部门、角色。

用户列表:列出系统中的用户,提供删除链接。删除用户将会级联删除用户的相关操作。

用户编辑:编辑用户信息,可先按用户名搜索。

登录日志:列出登录日志,提供常用操作,例如清空日志,按所选时间删除日志等操作。

操作日志:列出操作日志,提供常用操作,例如清空日志操作。


  1. 数据库的设计与实现
    1. 数据库分析

根据OA系统的需求分析,需要以下的数据表:

机构信息表:存放机构信息。

部门信息表:存放部门信息。

文件信息表:存放文件信息,例如文件位置,文件名称等。

登录日志表:存放登录日志等相关信息。

菜单表:存放菜单显示名称,菜单指向位置,以及菜单级别。

消息表:存放发送以及接收的信息。

便笺表:存放便笺信息。

操作日志表:存放操作日志等相关信息。

角色表:保存角色等相关信息。

角色权限表:保存角色权限信息表。

日程表:存放添加的日程信息。

用户信息表:存放系统用户信息,包括管理员信息。

    1. 数据库逻辑设计
      1. 数据库E-R图

E-R图也即实体-联系图(Entity Relationship Diagram),提供了表示实体型、属性和联系的方法,用来描述现实世界的概念模型。

图5-1至5-12是系统数据库的实体图。图5-13是系统的E-R图。

图 5-1 机构实体图

图5- 2部门实体图

图 5-3便笺实体图

图 5-4菜单(模块)实体图

图 5-5消息实体图

图 5-6角色实体图

图 5-7日程实体图

图 5-8角色权限实体图

图 5-9登录日志实体图

图 5-10 文件实体图

图 5-11操作日志实体图

图 5-12 用户实体图

图 5-13系统E-R图

      1. 数据库表结构

OA办公自动化系统数据库设计如图5-14。

图5- 14  OA办公自动化系统数据库设计

下面列出各个表的详细结构:

机构信息表(branch_info):存放机构信息。OA机构信息是整个系统的框架。系统中的部门将会基于机构而存在。见表5-1 。

表5- 1机构信息表

字段名

描述

类型

长度

是否允许为空

branch_id

机构编号

smallint

2

branch_name

机构名称

Varchar

50

部门信息表(depart_info)表:存放部门信息,部门隶属于某个机构。见表5-2 。

表5- 2 部门信息表

字段名

描述

类型

长度

是否允许为空

depart_id

部门编号

smallint

2

depart_name

部门名称

Varchar

50

depart_tel

部门电话

Varchar

15

depart_mobile

部门手机

Varchar

14

depart_fax

部门传真

Varchar

15

branch_id

所属机构

smallint

2

文件信息表(file_info):存放文件信息,例如文件位置,文件名称等。见表5-3 。

表5- 3 文件信息表

字段名

描述

类型

长度

是否允许为空

file_id

文件编号

smallint

2

file_name

文件名称

Varchar

50

file_info

文件简介

Varchar

50

file_uploader

文件上传者

int

4

file_uptime

上传时间

datetime

8

file_path

文件上传的路径

Varchar

200

file_is_del

是否删除

bit

1

登录日志表(login_log):存放登录日志等相关信息。见表5-4 。

表5- 4 登录日志表

字段名

描述

类型

长度

是否允许为空

loginlog_id

登录日志编号

int

4

userid

用户ID

int

4

log_time

登录时间

datetime

8

is_log

是否登录成功

bit

1

log_ip

登录IP地址

Varchar

15

菜单表(menu_info):存放菜单显示名称,菜单指向位置,以及菜单级别。见表5-5 。

表5- 5 菜单表

字段名

描述

类型

长度

是否允许为空

menu_id

菜单编号

smallint

2

menu_name

菜单名称

Varchar

50

menu_url

菜单地址

Varchar

50

menu_order

菜单排序

smallint

2

menu_parent_id

父菜单ID

smallint

2

is_show

是否显示

bit

1

消息表(message_info):存放发送以及接收的信息。见表5-6 。

表5- 6 消息表

字段名

描述

类型

长度

是否允许为空

message_id

消息编号

int

4

mess_title

消息标题

Varchar

50

mess_content

消息正文

Varchar

5000

send_time

发送时间

datetime

8

alert_time

提醒时间

datetime

8

from_userid

发送者ID

int

4

to_userid

接收者ID

int

4

is_read

是否已读

bit

1

sender_del

发送者是否已删除

bit

1

recieve_del

接收者是否已删除

bit

1

便笺表(note_info):存放便笺信息。见表5-7 。

表5- 7 便笺表

字段名

描述

类型

长度

是否允许为空

note_id

便笺编号

int

4

note_title

便笺题目

Varchar

50

note_content

便笺内容

Varchar

5000

create_time

创建时间

datetime

8

create_user

创建用户ID

int

4

操作日志表(operate_log):存放操作日志等相关信息。见表5-8 。

表5- 8 操作日志表

字段名

描述

类型

长度

是否允许为空

operate_id

操作日志编号

int

4

userid

创建用户ID

int

4

operate_menu_id

操作菜单编号

smallint

2

operate_info

操作简介

varchar

200

operate_time

操作时间

datetime

8

is_operated

是否操作成功

bit

1

角色表(role_info):保存角色等相关信息。见表5-9 。

表5-9 角色表

字段名

描述

类型

长度

是否允许为空

role_id

角色编号

smallint

2

role_name

角色名称

Varchar

50

role_info

角色简介

Varchar

50

角色权限表(role_right):保存角色权限信息表。见表5-10 。

表5- 10 角色权限表

字段名

描述

类型

长度

是否允许为空

role_right_id

权限编号

smallint

2

role_id

角色ID

smallint

2

menu_id

对应的菜单ID

smallint

2

日程表(schedule_info):存放添加的日程信息。见表5-11 。

表5- 11 日程表

字段名

描述

类型

长度

是否允许为空

schedule_id

日程编号

int

4

sche_title

日程题目

Varchar

50

sche_addr

日程地点

Varchar

50

begin_time

开始时间

datetime

8

end_time

结束时间

datetime

8

sche_content

日程正文

Varchar

5000

create_userid

创建用户ID

int

4

create_time

创建时间

datetime

8

用户信息表(user_info):存放系统用户信息,包括管理员信息。见表5-12 。

表5-12 用户信息表

字段名

描述

类型

长度

是否允许为空

user_id

用户ID

int

4

user_name

用户名

Varchar

50

user_pass

用户密码(一加密)

Varchar

50

depart_id

所属部门

smallint

2

gender

性别

bit

1

roleid

所属角色

smallint

2

userstate

用户状态(是否停用)

bit

1

      1. 数据库存储过程(部分)

新添操作日志存储过程,完成操作日志的保存。

CREATE PROC SPoperatelog

@userID int,@menuID int,@operateInfo varchar(200),@operateTime datetime,@isOperated bit

AS

BEGIN

INSERT INTO operate_log(userid,operate_menu_id,operate_info,operate_time,is_operated)

VALUES(@userID,@menuID,@operateInfo,@operateTime,@isOperated)

END

GO

通过操作日志的ID删除操作日志。

CREATE PROC SPoperateDelByID

@operateid int

AS

BEGIN

DELETE FROM operate_log WHERE operate_id=@operateid

END

GO

删除所有的操作日志

CREATE PROC SPoperateDelAll

AS

BEGIN

DELETE FROM operate_log

END

GO

按着时间删除操作日志

CREATE PROC SPoperateDelByDateTime

@operatetime datetime

AS

BEGIN

DELETE FROM operate_log WHERE operate_time=@operatetime

END

GO

按着菜单(模块)ID删除操作日志

CREATE PROC SPoperateDelByMenuID

@menuid smallint

AS

BEGIN

DELETE FROM operate_log WHERE operate_menu_id=@menuid

END

GO

读取所有的操作日志

CREATE PROC SPoperateSelAll

AS

BEGIN

SELECT operate_log.*,user_info.[user_name]

FROM operate_log,user_info

WHERE operate_log.[userid]=user_info.[user_id] ORDER BY operate_id

END

GO

通过时间读取所有操作日志

CREATE PROC SPoperateSelByDateTime

@operatetime datetime

AS

BEGIN

SELECT * FROM operate_log WHERE operate_time=@operatetime ORDER BY operate_id

END

GO

通过用户ID读取操作日志

CREATE PROC SPoperateSelByUserID

@userid int

AS

BEGIN

SELECT * FROM operate_log WHERE userid=@userid ORDER BY operate_id

END

GO

限于篇幅,以上只给出操作日志相关的存储过程。其它存储过程参见代码。


  1. 系统详细设计
    1. 系统设计概述

根据系统的需求分析,本系统可仅存在后台。系统的程序设计采用面向对象、面向组件的设计思想,依据面向对象的思想,将系统分为数据访问层DAL(连接数据库、对数据库进行操作的代码组成的层)、业务逻辑层BLL(在逻辑上能够完成一定功能以及对数据进行处理的代码组成的层)、表示层UI(直接与用户交流的界面层)。这三个层是互为依存的,缺少任意一层也不能实现系统的功能。下面将会具体介绍这三个层的具体设计情况。

    1. 数据访问层

系统在访问数据库时使用了通用类SqlHelper类,本类主要负责与数据库的通信,例如建立数据库链接,访问数据库,执行数据库SQL语句以及返回数据库对象。使用本类可以大大提高代码的编写效率。以下是SqlHelper类的类图。

      1. SqlHelper类

SqlHelper是整个系统与系统数据库联系的类,其类图见图 6-1 。

图 6-1 SqlHelper的类图

本类中方法简介:

ExcuteNonQuery:执行SQL语句,并返回锁影响的行数。

ExcuteDataSet:执行SQL语句,返回DataSet对象。

ExcuteReader:执行SQL语句,返回SqlDataReader对象。

ExcuteScalar:执行SQL语句,返回第一行。

一个系统需要用户去操作,因此对于用户相关的操作将会是一个系统的重中之重。以下是用户类的类图。

      1. UserDAL类

UserDAL是用户相关操作的类,类图如图6-2 。

图 6-2 UserDAL的类图

本类中方法简介:

userAddDAL:添加新的用户。

userSelAllDAL:返回所有的用户信息

userSelByUserIDDAL:根据提供的用户ID返回用户详细信息。

userSelByUserNameDAL:根据提供的用户名返回用户详细信息。

userDelByIDDAL:根据用户ID删除用户。

userChangePWDDAL:用户更改密码。

userChangeInfoByIDDAL:根据提供的用户ID修改用户信息。

userChangeStateByIDDAL:根据提供的用户ID修改用户状态。

userChangeRoleByRoleDAL:根据提供的角色信息修改角色信息。

userLoginDAL:用户登录方法。

userInRoleDAL:根据用户ID返回用户的角色信息。

userChangeDepartDAL:根据提供的用户ID修改用户部门信息。

当用户需要与其他用户沟通的时候,需要发信息。发信息是一个将数据保存到数据库的过程,接收查看信息是一个读取的过程,以下是消息类的类图。

      1. messageDAL类图

messageDAL是操作消息的类,其类图如图 6-3 。

图 6-3 messageDAL的类图

本类中方法简介:

messageAddDAL:发送消息方法。

messageDelByIDDAL:根据提供的ID删除相应的消息。

messageDelFlagSenderDAL:发送者将数据库中的删除标记置为True。

messageDelFlagRecieverDAL:接收者姜数据库中的删除标记置为True。

messageDelByUserIDDAL:根据提供的用户ID删除其对应的消息。

messageSelAllDAL:读取所有的消息。

messageSelByID:根据提供的消息ID读取消息。

messageSelByToIDDAL:根据提供的接收者ID读取其消息。

messageSelByFromIDDAL:根据提供的接收者的ID读取其消息。

messageReadFlagDAL:根据提供的消息ID读取其删除标记。

messageSelNOByFromIDDAL:根据发送者的ID读取发送消息的数目。

messageSelByToUserIDDAL:根据接收者的ID读取其接收消息的数目。

messageSelByToIDmIDDAL:根据接收者ID与消息ID读取消息。

messageSelByFromIDmIDDAL:根据发送者ID与消息ID读取消息。

以上是数据库访问层中的某些类,限于篇幅,这里仅列出以上几个类。类的详细部分代码见附录A。

    1. 业务逻辑层

业务逻辑层中类下的方法与数据访问层中的方法有许多的共性,为了更好的展示本系统的特性,这里将会选择本层中其它的类作为演示。

权限系统是整个系统的核心,通过控制角色相应的权限来控制整个系统中的用户的动作。权限系统在设计时应该有很好的扩充性,这样在新建模块时能够很方便的融合进系统中。以下是角色权限类的类图。

      1. RoleRightBLL类图

RoleRightBLL是操作权限的类。类图如图 6-4 。

图 6-4 RoleRightBLL的类图

本类中方法简介:

roleRightAddBLL:添加角色对应的权限。

roleRightDelByIDBLL:通过提供的权限ID将其删除。

roleRightDelByMenuRoleIDBLL:通过提供的菜单(模块)ID将其删除。

roleRightSelAllBLL:读取所有的权限信息。

roleRightSelAllToMenu:根据模块读取权限信息。

添加文件是用户备份文件或者传递文件时一个很频繁的动作,以下展示文件操作等业务逻辑层的类图。

      1. fileBLL类

fileBLL是操作文件的类,类图如图6-5 。

图 6-5 fileBLL的类图

本类中方法简介:

fileAddBLL:添加文件,接收来自表示层的相关信息并传递到数据层。

fileDelByIDBLL:根据提供的ID删除文件。

fileSelAllBLL:读取所有的文件信息。接收来自表示层的相关信息并传递到数据层。

fileSelByUserIDBLL:根据提供的用户ID读取其文件信息。

fileSelByFileIDBLL:根据提供的文件ID读取其相关信息。

fileChangeInfoFileByIDBLL:根据提供的文件ID修改其信息。

fileDelFlagByIDBLL:根据提供的文件ID修改其删除标记。

在业务逻辑层中,所要完成的工作是从数据层(表示层)中获取数据,并作相应的处理,然后传递给表示层(数据层)。业务逻辑层起到桥梁作用。

以上是业务逻辑层的简要介绍,限于篇幅,这里仅列出这些。类的详细部分代码见附录B。

    1. 表示层设计

本系统属于应用系统,非宣传类应用,故选择界面以简单易用为主,过于复杂的界面将会影响使用者的注意力,并且减小系统的可用性。界面选择深色调使得整个系统突出严肃感,使用者能够更关注于工作,并且使用冷色调可减小长时间工作的烦躁心理。

无论是控件使用,提示信息措辞,还是颜色、窗口布局风格,遵循统一的标准,做到真正的一致。

这样得到的好处: 用户使用起来能够建立起精确的心理模型;降低成本,开发人员不需要逐个设计,讲解人员不需要逐个指导;给用户统一感觉,不觉得混乱,心情愉快,支持度增加。

做法: 要确立整个UI的规范。在美工方面提供色调配色方案,提供整体配色表 界面控制程序人员、用户体验人员提出合理统一使用的控件库。参考标准界面使用规范。控件样式在允许的范围内可以统一修改其样式、色调。参考其他软件先进操作,提取对本项目有用的功能,以使用,绝对不能盲从,漫无目的。

根据需要,设计特殊操作控件,准则为:简化操作、达到一定功能目的。

  • 15
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

等天晴i

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值