公文管理系统呕心沥血整理版.docx
- 文档编号:4506115
- 上传时间:2022-12-01
- 格式:DOCX
- 页数:15
- 大小:662.16KB
公文管理系统呕心沥血整理版.docx
《公文管理系统呕心沥血整理版.docx》由会员分享,可在线阅读,更多相关《公文管理系统呕心沥血整理版.docx(15页珍藏版)》请在冰豆网上搜索。
公文管理系统呕心沥血整理版
公文管理系统
·1、系统概述
公文管理系统是应用ASP。
NET技术开发的一个简化系统。
该系统综合运用了数据库解决方案、封装、用户控件、文件上传及高级控件等,实现基于Web的公文发布、接收、浏览、查询和维护功能。
系统由多个网站模块组成。
每个模块由一组页面及相关程序组成,完成相对独立的任务,如公文浏览、发文处理和收文处理等。
模块涉及与用户的交互过程,包含的文件数目和类型较多,并需要访问数据库.因此,设计好页面内容,规划好页面之间传递的数据及对数据库的访问,对于系统的设计和实现非常重要,同时也能够为今后系统的维护和升级带来方便。
·2、系统设计
2。
1系统功能分析
开发应用系统的首要工作是进行需求分析,根据应用需求,设计系统功能。
公文管理系统需要对公文进行收发文处理、收发文查阅和查询,据此系统由发文浏览、收文浏览、文件查询、发文处理、收文处理、系统维护和用户登录6个模块组成.
(1)用户登录。
为了保证系统使用的安全性,进入系统首先要登录。
按照对系统功能的授权,将用户权限划分为六类:
1—发文浏览,2—收文浏览,3-文件查询,4—发文处理,5—收文处理,6-系统维护.用户成功登录系统后,系统使用Session变量记录其操作权限,以后在该用户执行各功能之前都先进行权限检查,只有具备执行权限时才可使用相应的功能。
(2)发文浏览.以分页方式列出所有发文的编号和时间,用户单击编号查看详细内容,并可发表阅文回执.
(3)收文浏览.其功能与发文浏览十分相似,也以分页方式列出所有收
文编码和时间,用户单击编号查看详细内容,并可发表阅文回执.
(4)发文处理。
用于签发公文。
用户填写文件标题、编号、有效期及办理建议,选择文件名后提交,即可发布文件。
(5)收文处理。
用于签收公文.用户选择文件标题后,即可显示该文件的编号、发文日期、有效期及发文单位,并可查阅文件内容.用户可填写办理建议后执行签收功能。
(6)系统维护。
由部门维护、用户及权限维护、公文(字)维护三部分组成。
部门维护包括添加新部门、修改现有部门信息;用户及权限维护包括添加新用户、修改现有用户的权限;公文(字)维护包括添加新“字”和修改现有“字”信息.
系统的主界面和主要功能模块界面均采用框架(Frame)结构设计,系统的各项功能以用户控件形式加载,位于页面上部,页面的右下部是主显示区,用于显示文件或维护信息。
2。
2数据库设计
本系统选用Access数据库,所使用的数据库名为oadata.mdb,包括5个数据表,分别是:
(1)userpass:
用户信息表。
(2)wdlx:
文件类型表.
(3)wddata:
文件信息表。
(4)part:
部门信息表。
(5)readlog:
文件签阅意见表。
各个表的结构如下:
·userpass表结构:
字段名
数据类型
可否为空
说明
Userid
文本
否
用户编号,主键
Partid
文本
否
该用户所属部门编号
Userkey
文本
否
用户权限
Username
文本
可
用户姓名
Password
文本
否
用户密码
•wdlx表结构:
字段名
数据类型
可否为空
说明
Id
数值
否
自动编号(记录号)
lx
文本
否
文档类型
zh
文本
否
文档字号
•wddata表结构:
字段名
数据类型
可否为空
说明
Id
数值
否
自动编号(作为文件编号)
zh
文本
否
文档字号
lx
文本
否
文档类型
Username
文本
否
用户姓名
Partid
文本
否
用户所属部门编号
SendDate
日期/时间
否
签发时间
ExpireDate
日期/时间
否
过期时间
Title
文本
否
文件标题
Docfile
文本
否
文件名
Other
备注
可
文件说明
•part表结构:
字段名
数据类型
可否为空
说明
Id
数值
否
自动编号(记录号)
Partid
文本
否
部门编号
Partname
文本
否
部门名称
•readlog表结构:
字段名
数据类型
可否为空
说明
Id
数值
否
自动编号(记录号)
Username
文本
否
用户姓名
Readdate
日期/时间
可
签阅日期
Memo
备注
可
签阅意见
Wdid
文本
否
文件编号
2.3各子系统设计与实现
(1)用户控件的设计与实现
为在各功能模块之间方便地切换,将系统的主要功能设计为一个用户控件.这样在需要的页面中只要加载该用户控件即可,而不必在每个页面中都进行设计.该用户控件界面如图所示。
文件名为oamenu。
ascx,内容如下:
〈ScriptLanguage="VB”Runat="Server”〉
SubLBtnHome_Click(ByValsenderAsSystem。
Object,ByValeAsSystem.EventArgs)
Response.Redirect("Webmain。
aspx")’首页
EndSub
SubLBtnSend_Click(ByValsenderAsSystem。
Object,ByValeAsSystem。
EventArgs)
IfSession("userid")〈〉NothingAndInStr(Session(”userkey”),”4")〈〉0Then
Response。
Redirect(”Send。
aspx”)’发文处理
Else
Response.Redirect("Webmain.aspx")'尚未登录,需先到首页登录
EndIf
EndSub
SubLBtnReceive_Click(ByValsenderAsSystem。
Object,ByValeAsSystem.EventArgs)’收文处理
IfSession(”userid”)<〉NothingAndInStr(Session(”userkey"),"5")<>0ThenResponse。
Redirect(”Receiver。
aspx")
Else
Response。
Redirect(”Webmain。
aspx”)'尚未登录,需先到首页登录
EndIf
EndSub
SubLBtnQuery_Click(ByValsenderAsSystem.Object,ByValeAsSystem。
EventArgs)’文件查询
IfSession(”userid”)〈〉NothingAndInStr(Session(”userkey"),"3”)〈〉0ThenResponse.Redirect(”Query.aspx”)
Else
Response。
Redirect(”Webmain.aspx")'尚未登录,需先到首页登录
EndIf
EndSub
SubLBtnMgr_Click(ByValsenderAsSystem。
Object,ByValeAsSystem。
EventArgs)’系统维护
IfSession("userid”)<>NothingAndInStr(Session(”userkey"),”6")<>0ThenResponse.Redirect(”Mgr。
aspx”)
Else
Response.Redirect(”Webmain。
aspx”)'尚未登录,需先到首页登录
EndIf
EndSub
SubLBtnSBrowse_Click(ByValsenderAsSystem。
Object,ByValeAsSystem。
EventArgs)'发文浏览
IfSession(”userid”)〈>NothingAndInStr(Session("userkey"),”1")〈>0ThenResponse.Redirect(”SBrowse。
aspx”)
Else
Response.Redirect(”Webmain。
aspx")’尚未登录,需先到首页登录
EndIf
EndSub
SubLBtnRBrowse_Click(ByValsenderAsSystem.Object,ByValeAsSystem。
EventArgs)’收文浏览
IfSession(”userid")〈〉NothingAndInStr(Session(”userkey"),”2")〈〉0ThenResponse。
Redirect(”RBrowse。
aspx”)
Else
Response。
Redirect(”Webmain.aspx”)’尚未登录,需先到首页登录
EndIf
EndSub
〈DIVstyle=”WIDTH:
777px;POSITION:
relative;HEIGHT:
32px;
BACKGROUND—COLOR:
#ccccff”ms_positioning="GridLayout”〉
〈DIVstyle=”DISPLAY:
inline;FONT—SIZE:
16pt;Z—INDEX:
101;LEFT:
8px;
WIDTH:
168px;COLOR:
#ff0066;FONT-STYLE:
italic;FONT-FAMILY:
楷体;POSITION:
absolute;TOP:
8px;HEIGHT:
24px;
FONT—VARIANT:
normal”ms_positioning=”FlowLayout”〉OA公文管理系统〈/DIV>
〈asp:
LinkButtonid=”LBtnHome"style=”Z—INDEX:
102;LEFT:
256px;
POSITION:
absolute;TOP:
8px”runat=”server"
Width=”48px”OnClick=”LBtnHome_Click"〉首页〈/asp:
LinkButton>
LinkButtonid="LBtnSend"style=”Z-INDEX: 103;LEFT: 544px;POSITION: absolute; TOP: 8px”runat="server”Width="72px”OnClick=”LBtnSend_Click"〉 发文处理
LinkButton〉
〈asp:
LinkButtonid=”LBtnReceive"style=”Z—INDEX:
104;LEFT:
616px;
POSITION:
absolute;TOP:
8px"runat=”server”
Width=”72px”OnClick=”LBtnReceive_Click”〉收文处理〈/asp:
LinkButton〉
LinkButtonid=”LBtnMgr"style=”Z-INDEX: 105;LEFT: 688px;POSITION: absolute; TOP: 8px"runat="server”Width="88px”OnClick=”LBtnMgr_Click”〉 系统维护〈/asp: LinkButton> 〈asp: LinkButtonid="LBtnSBrowse”style=”Z—INDEX: 106;LEFT: 320px; POSITION: absolute;TOP: 8px”Width=”72px”runat=”server” OnClick="LBtnSBrowse_Click"〉发文浏览〈/asp: LinkButton〉 〈asp: LinkButtonid=”LBtnRBrowse”style=”Z—INDEX: 107;LEFT: 392px; POSITION: absolute;TOP: 8px”Width="72px"runat=”server” OnClick=”LBtnRBrowse_Click"〉收文浏览〈/asp: LinkButton> 〈asp: LinkButtonid=”LBtnQUery”style=”Z—INDEX: 108;LEFT: 472px; POSITION: absolute;TOP: 8px”runat=”server”Width="72px" OnClick="LBtnQuerye_Click">文件查询
LinkButton〉〈/DIV〉
(2)数据库操作文件
–由于多个功能模块都要执行数据库操作,因此将数据库操作功能设计为一个共享文件Db.inc,其内容如下:
<%@ImportNamespace=”System。
Data"%〉
〈%@ImportNamespace="System.Data.OleDb”%〉
〈ScriptLanguate="VB”Runat=”Server”>
’创建数据集对象,strSQL为SQL语句,FileName为数据库文件名
‘TableName为数据表名称
FunctionCreateDataSet(strSQLAsString,FileNameAsString,TableNameAsString)AsDataSet
DimconnAsNewOleDbConnection()
DimcmdAsNewOleDbCommand()
conn。
ConnectionString=”Provider=Microsoft。
Jet.OLEDB.4.0;DataSource=”&Server。
MapPath(FileName)
conn.Open()
cmd。
Connection=conn
cmd。
CommandText=strSQL
DimobjAdptAsNewOleDbDataAdapter(cmd)
DimDSAsNewDataSet()
objAdpt。
Fill(DS,TableName)
CreateDataSet=DS
conn.Close()
EndFunction
(3)首页
首页提供用户登录界面。
当用户成功登录后,用Session变量记录其用户信息,包括用户名、使用权限等.文件名为Webmain。
aspx。
其中,以下声明为引用用户空间oamenu:
〈%@RegisterTagPrefix=”uc1"TagName="oamenu"Src=”oamenu。
ascx”%〉
首页中还包含一个标识为“iframeMain”的框架,它的src属性为Login。
aspx,即在该框架中加载Login.aspx用户登录页面.
文件Webmain。
aspx
〈%@RegisterTagPrefix=”uc1"TagName="oamenu”Src=”oamenu。
ascx”%〉
〈Html>〈Head〉〈Title>公文管理系统〈/Title〉
〈Style>A:
link{COLOR:
#0066cc;TEXT—DECORATION:
none}
A:
hover{COLOR:
#cc0000;TEXT-DECORATION:
none}
A:
visited{COLOR:
#3333cc;TEXT-DECORATION:
none}
〈Formid=”Form1"method=”post”runat="server”〉 104;LEFT: 72px;WIDTH: 624px; POSITION: absolute;TOP: 64px;HEIGHT: 338px"name=”iframeMain"align=”middle" src="Login。 aspx”frameBorder="no"scrolling=”auto”runat=”server”〉〈/Iframe〉 〈uc1: oamenuid="Oamenu1”runat="server”〉〈/uc1: oamenu〉〈/Form> 〈/Body〉