OAS设计文档新1.docx
《OAS设计文档新1.docx》由会员分享,可在线阅读,更多相关《OAS设计文档新1.docx(23页珍藏版)》请在冰豆网上搜索。
OAS设计文档新1
Web开发与应用技术
设计文档
项目名称:
办公自动化系统
完成日期:
2012-01-05
目录
第一章
系统设计背景············································3
第二章
系统需求分析············································3
第三章
系统功能介绍············································3
第四章
系统流程图··············································8
第五章
系统模块划分···········································8
第六章
数据库的设计············································9
第七章
详细设计及实现··········································9
第八章
主界面预览效果图·······································20
一、系统设计背景
办公自动化(OfficeAutomationSystem,OAS)系统,是利用先进的计算机信息技术和现代办公设备构成的人机信息处理系统,辅助管理人员进行各种办公活动。
办公自动化系统由办公机构、办公人员、办公设备、网络环境、办公信息等几个基本要素构成。
本系统开发的目的是紧密结合目前政府机关和企事业单位的办公业务流程和管理特点,开发一套先进的、综合的、完整的、并且能有效的在局域网和广域网运行的办公自动化系统。
通过该系统的使用,可有效地提高政府机关和企事业单位的工作效率,提升应用单位信息化管理的水平,减少工作人员的工作量,降低政府机关和企事业单位的成本。
二、系统需求分析
1.数据层上,实现对员工部门信息的修改、删除、更新等操作,同时记录考勤状况。
2.业务层上,实现各种与数据层的交互工作。
3.视觉上,尽可能的做到人机交互,简明、易懂。
4.主界面上显示当前日期,展示经理风采。
三、系统功能介绍
•登录功能
【系统管理员】
•查看公告
•考勤管理(设置上下班时间,管理员工的签到、签退等)
•系统设置(设置个人密码,为系统设置新的管理员等)
•部门管理(编辑新增加的部门以及部门信息的维护工作)
【普通用户】
•个人操作(包括查看系统公告,修改个人登录密码)
•考勤签到(完成个人考勤,即签到和签退功能的实现)
•查看系统公告
•上下班签到时间设置
•上下班签到功能
•密码重置功能
•添加新管理员设置
•新建部门功能
•更新部门信息
四、系统流程图
五、系统模块划分
【模块划分】
登录模块
员工管理模块
管理员和普通员工模块
数据维护模块
上班签到的查询
部门增删信息更新模块
六、数据库设计
数据库中存在8个表单分别如下:
七、详细设计及实现
1.连接数据库:
Web.configue:
BaseClass这个实现连接的类:
usingSystem;
usingSystem.Data;
usingSystem.Configuration;
usingSystem.Web;
usingSystem.Web.Security;
usingSystem.Web.UI;
usingSystem.Web.UI.WebControls;
usingSystem.Web.UI.WebControls.WebParts;
usingSystem.Web.UI.HtmlControls;
usingSystem.Data.SqlClient;
usingSystem.Collections;
///
///BaseClass的摘要说明
///
publicclassBaseClass:
System.Web.UI.Page
{
publicBaseClass()
{
//
//TODO:
在此处添加构造函数逻辑
//
}
#region显?
示?
客í户§端?
对?
话°框ò
///
///WebMessageBox用?
来ぁ?
在ú客í户§端?
弹獭?
出?
对?
话°框ò。
£
///
///对?
话°框ò显?
示?
内ú容╕
///
publicstringMessageBox(stringTxtMessage)
{
stringstr;
str="alert('"+TxtMessage+"')";
returnstr;
}
#endregion
#region执′行DSQL语?
句?
///
///用?
来ぁ?
执′行DSQL语?
句?
///
///sQueryStringSQL字?
符?
串?
///操ù作痢?
是?
否?
成é功|(True\False)
publicBooleanExecSQL(stringsQueryString)
{
SqlConnectioncon=newSqlConnection(ConfigurationManager.AppSettings["conStr"]);
con.Open();
SqlCommanddbCommand=newSqlCommand(sQueryString,con);
if(dbCommand.ExecuteNonQuery()>0)
{
con.Close();
returntrue;
}
else
{
con.Close();
returnfalse;
}
}
///
///公?
告?
信?
息¢添?
加ó
///
///标括?
题琣
///公?
告?
内ú容╕
///发ぁ?
布?
公?
告?
人?
///
publicBooleanExecProcNotice(stringtitle,stringcontent,stringperson)//执′行D公?
告?
程ì序ò
{
SqlConnectioncon=newSqlConnection(ConfigurationManager.AppSettings["conStr"]);
con.Open();
SqlCommandcmd=newSqlCommand("insert_tb_notice",con);
cmd.CommandType=CommandType.StoredProcedure;
//公?
告?
标括?
题琣
SqlParameterpTitle=newSqlParameter("@noticeTitle",SqlDbType.VarChar,80);//设Θ?
置?
数簓据Y库a参?
数簓
pTitle.Value=title;
cmd.Parameters.Add(pTitle);
//公?
告?
详ê细?
内ú容╕
SqlParameterpContent=newSqlParameter("@noticeContent",SqlDbType.Text,0);//0为aText默?
认?
存?
储洹?
的?
最?
大洙?
值μ
pContent.Value=content;
cmd.Parameters.Add(pContent);
//公?
告?
发ぁ?
布?
人?
SqlParameterpPerson=newSqlParameter("@noticePerson",SqlDbType.VarChar,20);
pPerson.Value=person;
cmd.Parameters.Add(pPerson);
//判D断?
运?
行D结á果?
if(cmd.ExecuteNonQuery()>0)
{
con.Close();
returntrue;
}
else
{
con.Close();
returnfalse;
}
}
#endregion
#region查é询ˉSQL语?
句?
///
/// ?
执′行D查é询ˉS戗?
Q?
L戗?
语?
句?
///
///sQueryStringSQL字?
符?
串?
///TableName数簓据Y表括?
名?
称?
///
publicSystem.Data.DataSetGetDataSet(stringsQueryString,stringTableName)
{
SqlConnectioncon=newSqlConnection(ConfigurationManager.AppSettings["conStr"]);
//strings1=ConfigurationManager.ConnectionStrings["conStr"].ConnectionString;
//SqlConnectioncon=newSqlConnection(s1);
SqlDataAdapterdbAdapter=newSqlDataAdapter(sQueryString,con);
DataSetdataset=newDataSet();
dbAdapter.Fill(dataset,TableName);
returndataset;
}
#endregion
}
以部门信息修改为例写出各项数据绑定操作
usingSystem;
usingSystem.Data;
usingSystem.Configuration;
usingSystem.Collections;
usingSystem.Web;
usingSystem.Web.Security;
usingSystem.Web.UI;
usingSystem.Web.UI.WebControls;
usingSystem.Web.UI.WebControls.WebParts;
usingSystem.Web.UI.HtmlControls;
publicpartialclassBaseInfo_BaseDepartmentAdd:
System.Web.UI.Page
{
protectedvoidPage_Load(objectsender,EventArgse)
{
if(Session["loginName"]==null)
{
Response.Write("");
}
}
protectedvoidimgBtnSave_Click(objectsender,ImageClickEventArgse)
{
BaseClassbc=newBaseClass();
Booleanbl;
bl=bc.ExecSQL("insertintodepartmentvalues('"+txtName.Text+"','"+txtContent.Text+"','"+txtid.Text+"')");
if(bl)
{
Response.Write(bc.MessageBox("新建部门成功!
"));
}
else
{
Response.Write(bc.MessageBox("新建部门失败!
"));
}
}
protectedvoidimgBtnClear_Click(objectsender,ImageClickEventArgse)
{
txtName.Text="";
txtContent.Text="";
}
}
usingSystem;
usingSystem.Data;
usingSystem.Configuration;
usingSystem.Collections;
usingSystem.Web;
usingSystem.Web.Security;
usingSystem.Web.UI;
usingSystem.Web.UI.WebControls;
usingSystem.Web.UI.WebControls.WebParts;
usingSystem.Web.UI.HtmlControls;
publicpartialclassBaseInfo_BaseDepartmentManager:
System.Web.UI.Page
{
BaseClassbc=newBaseClass();
protectedvoidPage_Load(objectsender,EventArgse)
{
if(Session["loginName"]==null)
{
Response.Write("");
return;
}
GridView1.DataSource=bc.GetDataSet("select*fromdepartment","department");
GridView1.DataKeyNames=newString[]{"deptid"};
GridView1.DataBind();
}
protectedvoidGridView1_PageIndexChanging(objectsender,GridViewPageEventArgse)
{
GridView1.PageIndex=e.NewPageIndex;
GridView1.DataBind();
}
protectedvoidGridView1_RowDeleting(objectsender,GridViewDeleteEventArgse)
{
try
{
bc.ExecSQL("deletefromdepartmentwheredeptid='"+this.GridView1.DataKeys[e.RowIndex].Value.ToString()+"'");
GridView1.DataSource=bc.GetDataSet("select*fromdepartment","department");
GridView1.DataBind();
}
catch(Exceptionex)
{
Response.Write(bc.MessageBox(ex.Message));
}
}
}
usingSystem;
usingSystem.Data;
usingSystem.Configuration;
usingSystem.Collections;
usingSystem.Web;
usingSystem.Web.Security;
usingSystem.Web.UI;
usingSystem.Web.UI.WebControls;
usingSystem.Web.UI.WebControls.WebParts;
usingSystem.Web.UI.HtmlControls;
publicpartialclassBaseInfo_BaseDepartmentUpdate:
System.Web.UI.Page
{
BaseClassbc=newBaseClass();
protectedvoidPage_Load(objectsender,EventArgse)
{
if(Session["loginName"]==null)
{
Response.Write("");
return;
}
if(!
IsPostBack)
{
DataSetds=bc.GetDataSet("select*fromdepartmentwheredeptid='"+Request.QueryString["id"].ToString()+"'","department");
txtName.Text=ds.Tables[0].Rows[0][1].ToString();
txtContent.Text=ds.Tables[0].Rows[0][2].ToString();
}
}
protectedvoidimgBtnSave_Click(objectsender,ImageClickEventArgse)
{
Booleanbl=bc.ExecSQL("updatedepartmentsetdeptname='"+txtName.Text+"',deptmaid='"+txtContent.Text+"'wheredeptid='"+Request.QueryString["id"]+"'");
if(bl)
{
Response.Write(bc.MessageBox("部?
门?
基¨´本À?
信?
息¡é修T改?
成¨¦功|!
"));
Response.Write("this.parent.MainFrame.location.href='BaseDepartmentManager.aspx'");
}
else
{
Response.Write(bc.MessageBox("部?
门?
基¨´本À?
信?
息¡é修T改?
失º¡ì败㨹!
"));
}
}
protectedvoidimgBtnReturn_Click(objectsender,ImageClickEventArgse)
{
Response.Write("this.parent.MainFrame.location.href='BaseDepartmentManager.aspx'");
}
}
其他的数据实现类参见BaseInfo文件夹
关于界面设计,以Default为例
<%@PageLanguage="C#"AutoEventWireup="true"CodeFile="Default.aspx.cs"Inherits="_Default"%>
<%@RegisterSrc="UserControl/GoodEmployee.ascx"TagName="GoodEmployee"TagPrefix="uc1"%>
<%@RegisterSrc="UserControl/Notice.ascx"TagName="Notice"TagPrefix="uc2"%>
<%@RegisterSrc="UserControl/Logon.ascx"TagName="Logon"TagPrefix="uc3"%>
DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""http:
//www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
//www.w3.org/1999/xhtml">
办㨬公?
自Á?
动¡¥化¡¥管¨¹理¤¨ª系¦Ì统ª3
.style1
{
height:
166px;
}
.style2
{
height:
166px;
text-align:
center;
width:
268435344px;
}
.style4
{
text-align:
center;
}
1000;height:
342px">
center">
style="text-align:
center;margin-left:
2px;width:
1276px;float:
left;"/>
|
top;width:
224px;height:
173px"c
展开阅读全文
相关搜索
|