企业办公自动化管理系统案例.ppt_第1页
企业办公自动化管理系统案例.ppt_第2页
企业办公自动化管理系统案例.ppt_第3页
企业办公自动化管理系统案例.ppt_第4页
企业办公自动化管理系统案例.ppt_第5页
已阅读5页,还剩72页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

课程案例企业办公自动化管理系统 通过本案例学习一下内容: 1.企业办公自动化管理系统开发的基本过程 2.系统需求分析和可行性分析 3.系统设计的方法 4.构建开发环境 5.如何分析并设计数据库 6.如何设计公共类 7.主要功能模块的实现方法 8.系统的编译与发布 9.SQL server技术 10. 面向对象的开发思想 11.分层开发模式 系统分析 o一.需求分析 对于企业办公自动化管理系统来说,提高企业的管理效率、 方便企业职员的协助是至关重要,企业的办公环境如下: 1.使用计算机网络环境属于局域网。 2.公司规模50100人,人手一台计算机。 3.员工上下班考勤属于人工考勤。 4.实行人性化管理,允许员工自己有发表意见和想法。 5.员工在工作中传送和接收文件,很不方便。 6.对于公司的公告、新闻和规章制度,员工了解不及时 7.重要通知都是逐一打电话通知。 系统分析 o需求分析结论 1.部门管理功能 2.员工管理功能 3.公告管理功能 4.文件管理功能 5.交流管理功能 6.考勤管理功能 7.规章制度管理功能 8.系统管理功能 二、系统设计 1.系统目标 根据需求分析的描述以及与用户的沟通,现制定系统实现目标如下: o系统采用人机对话方式,界面美观友好,信息查询灵活、方便, 数据存储安全可靠。 o灵活、快速的发送和接收文件。 o实现功能强大的公告发布与管理功能。 o系统最大限度地实现易维护性和易操作性 o界面简洁、框架清晰、美观大方。 o实现企业部门和职员的信息管理功能。 o通过后台查看与删除公告信息、查看公文信息。 o对员工信息、职位信息与部门信息的管理。 二、系统设计 o业务流程图 系统功能结构 o企业办公自动化管理系统前台(职员)功能结构图 系统功能结构 o企业办公自动化管理系统前台(职员)功能结构图 构建开放环境 o1.web系统开发环境 页面开发环境:VS2005集成开发环境 开发语言:ASP.NET +C# 后台数据库: SQL Server2000 开发环境运行平台:XP(SP2) o2.服务器端 WEB服务器:IIS6.0 数据库服务器:SQL Server 2000 网站服务器运行环境:.NET Framework sdk2.0 o3.客户端 n浏览器:IE6.0 n分辨率:最佳效果1024768 数据库设计 o系统数据库采用SQL Server2000数据库 ,系统数据库名称为db_OAS.数据库 db_OAS中包括多张数据表。下面分别给 出数据表概要说明、数据库E-R图、数据表 关系图、数据表的结构。 数据表概要说明 o 数据表树形结构如下图: 数据库E-R的分析 o课堂练习: 对上表中的各个实体用E-R图进行分析。 要求: 1.用E-R图描述出各个实体。 2.描述数据表结构。 3.描述数据表之间的关系。 实体描述举例 o企业部门实体E-R图描述 企业部门数据表结构描述 数据表的关系图 试写出下列需求的SQL语句 o根据输入的”用户名”“密码”查询“系统用户 表”中是否有记录存在,并判断该用户是“管 理员”还是“普通职员” o增加部门信息; o根据ID查看某个部门信息 o删除某个部门 复杂SQL语句的使用 显示企业的年度优秀员工信息 1.优秀员工的标准通过考勤考核(迟到和早退 ) 2.考勤结果的前2位 3.显示的信息包括: 员工姓名,所在部门,照片 相关资料来自SQL联机丛书 使用 TOP 和 PERCENT 限制结果集 oTOP 子句限制返回到结果集中的行数。 oTOP n PERCENT on 指定返回的行数。如果未指定 PERCENT,n 就是返回的行数。 o如果一个 SELECT 语句既包含 TOP 又包含 ORDER BY 子句,那么返回的行将会从排序后的 结果集中选择。整个结果集按照指定的顺序建立 并且返回排好序的结果集的前 n 行。 相关资料来自SQL联机丛书 o用 ORDER BY 对行进行排序 oORDER BY 子句按查询结果中的一列或多 列对查询结果进行排序,用作排序依据的列 总长度可达 8,060。有关 ORDER BY 子 句最大大小的更多信息,请参见 SELECT 。 o排序可以是升序的 (ASC),也可以是降序 的 (DESC)。如果没有指定升序还是降序 ,就假定为 ASC。 相关资料来自SQL联机丛书 o聚合函数 o聚合函数对一组值执行计算并返回单一的值 。除 COUNT 函数之外,聚合函数忽略空 值。聚合函数经常与 SELECT 语句的 GROUP BY 子句一同使用。 Transact-SQL 编程语言提供下列聚合函数: oAVG MAX SUM MIN COUNT等 相关资料来自SQL联机丛书 o使用内联接 o内联接是用比较运算符比较要联接列的值的联接。 下面的 Transact-SQL 查询是内联接的一个示例: USE pubs SELECT * FROM authors AS a INNER JOIN publishers AS p ON a.city = p.city ORDER BY a.au_lname DESC 此内联接称为相等联接。它返回两个表中的所有列,但只返回 在联接列中具有相等值的行。 o select ,a.dept,a.photoPath,b.state o from tb_employee AS a inner join o (select TOP 2 * o from o ( select employeeName, sum(late)+sum(quit) as state o from tb_sign group by employeeName)as aa o order by state)as b o on =b.employeeName o order by b.state ADO.NET 介绍 oADO.NET 对 Microsoft SQL Server 和 XML 等数据源以及通过 OLE DB 和 XML 公开的数据源提供一致的访问。 o在创建 ADO.NET 时,Microsoft 具有以 下设计目标: 1.利用当前的 ActiveX 数据类型 (ADO) 知识。 2.支持 N 层编程模型。 3. 集成 XML 支持。 ADO.NET介绍 o和 .net framework类库中其他所有东西一样, ADO.net不过是一组类型(TYPES)而已,他们 都位于SYSTEM.DATA名字空间中。 ADO.NET介绍 o每一种.NET数据供应器都实现为一组类型 (types); oSystem.Data.SqlClient名字空间-SQL Provider oSystem.Data.OleDb名字空间-OLE DB Provider o不论选择哪种Provider,每一种都提供一套相似的类 (Class) ADO.NET介绍 .NET数据provider都支持的一些基础对象。它们是 : oConnection:用于建立和释放连接( SqlConnection-OleDbConnection) oCommand:用于存储和执行命令,如一个SQL 查询或一个存储过程,并为命令指定参数。 oDataReader:对数据库中的数据提供直接、循环 的只读的访问。 oDataAdapter:建造于DataReader之上,用于 创建和操作DataSet实体。 ADO.NET介绍 o客户可以通过DataReader或者DataSet来访问数据 。 Visual Studio 中的数据命名空间 .NET Framework 中的数据和 XML 命名空间包括: oSystem.Data 由构成 ADO.NET 结构的类组成,该结构 是托管应用程序的主要数据访问方法。ADO.NET 结构使您可 以生成可用于有效管理来自多个数据源的数据的组件。 oSystem.Data.OleDb 构成兼容数据源的 OLE DB .NET Framework 数据提供程序的类。这些类使您能连接到 OLE DB 数据源、针对数据源执行命令并读取结果。 oSystem.Data.SqlClient 构成 SQL Server .NET Framework 数据提供程序的类,该提供程序允许您连接到 SQL Server 7.0、执行命令并读取结果。 System.Data.SqlClient 命名空间与 System.Data.OleDb 命名空间类似,但为访问 SQL Server 7.0 和更高版本进行 了优化。 访问数据示例 o示例如何打开一连接,如何创建一个命令, 以及如何利用DataReaer读取结果。 o示例展示如何使用DataSets (一个DataAdapter如何用于将一个 DataTable添加到一个DataSets中) 访问数据示例-DataReader 1.设置一个连接 SqlConnection Cn = New SqlConnection(“Server=(local);database=d b_OAS;Uid=sa;Pwd=“); 2.创建一个命令 SqlCommand Cmd = Cn.CreateCommand(); Cmd.CommandText = “select * from tb_department where ID=20“; 3. 打开连接Cn.Open(); 4. 执行命令-将结果存入DataReader oSqlDataReader Rdr = Cmd.ExecuteReader(); 访问数据示例-DataReader o5.取结果并显示 o try o while (Rdr.Read() o o o System.Console.WriteLine(String.Format(“0,1, 2“, o Rdr0, Rdr1, Rdr2); o o o catch (System.Exception e) o o System.Console.WriteLine(“Error:0“, o e.Message); o o 访问数据示例-DataReader o6.释放资源,关闭连接 ofinally Rdr.Close(); Cn.Close(); 访问数据示例-DataSets oSqlConnection Cn = new SqlConnection(“Server=(local);database=db_OAS;Ui d=sa;Pwd=“); o SqlCommand Cmd = Cn.CreateCommand(); o Cmd.CommandText = “select * from tb_department where ID=20“; o SqlDataAdapter Da = new SqlDataAdapter(); o Da.SelectCommand = Cmd; o DataSet Ds = new DataSet(); o Cn.Open(); o Da.Fill(Ds, “tb_deparment“); o Cn.Close(); 访问数据示例-DataSet o取数据; o try if (Ds.Tables0.Rows.Count0) DataRow row = Ds.Tables0.Rows0; System.Console.WriteLine(String.Format(“0, 1,2“, row0, row1, row2); o catch (System.Exception e) System.Console.WriteLine(“Error:0“, e.Message); 访问数据示例-DataSet ofinally if (Cn.State=ConnectionState.Open) Cn.Close(); o#region 利用DataSet存取查询结果; public DataSet ExecuteSelect (string strSql, string strTableName) o o SqlConnection conn = new o SqlConnection(strConn); o SqlCommand com = conn.CreateCommand(); o com.CommandText = strSql; o SqlDataAdapter da = new SqlDataAdapter(); o da.SelectCommand = com; o DataSet ds = new DataSet(); o conn.Open(); o da.Fill(ds, strTableName); o conn.Close(); o o return ds; o o#endregion o#region 增加、删除、添加SQL语句接口 o public int ExecuteUpdateAndInsert(string strSql) o o SqlConnection conn = new SqlConnection(strConn); o SqlCommand com = conn.CreateCommand(); o com.CommandText = strSql; o conn.Open(); o int iResult=com.ExecuteNonQuery(); o return iResult; o o#endregion 接口的封装 o class DataAccess o o const string strConn; o public DataAccess () strConn = “Server=(local);database=db_OAS;Uid=sa;Pwd=“; o接口1:利用DataSet存取查询结果针对SELECT语句; o接口2: 增加、删除、添加SQL语句接口 接口1:利用DataSet存取查询结果针对SELECT语句 o #region 该方法执行查询命令,并返回DataSet数据集; o public DataSet Run(string strSQL, string strTableName) o o SqlConnection conn = new SqlConnection(strConn); o conn.Open(); o SqlCommand com = new SqlCommand(strSQL, conn); o o SqlDataAdapter da = new SqlDataAdapter(); o o da.SelectCommand = com; o DataSet ds = new DataSet(); o da.Fill(ds, strTableName); o conn.Close(); o return ds; o o #endregion o 接口2: 增加、删除、添加SQL语句接口 o public bool Run(string strSQL) o o SqlConnection con = new SqlConnection(strConn); o con.Open(); o /第二种产生命令对象的方法; o SqlCommand com = new SqlCommand(strSQL, con); o if (com.ExecuteNonQuery() 0) o o con.Close(); o return true; o else o o con.Close(); o return false; o o 接口的使用 o1.创建数据类实例; o DataAccess da = new DataAccess(); o2.调用接口; oDataSet ds = da.Run(“Select * from b_department“, “dept“); ostring strSQL = “insert into tb_department values(“+s1+“,“+s2+“)“; oda.Run(strSQL); 接口的使用 o要求:点击添加按钮,将部门名和描述插入 到Dropdownlist控件中显示 o点击查询按钮,将显示该部门的描述信息。 接口的使用 o数据绑定; opublic void BindDept() o o dlShow.DataSource = o da.Run(“Select * from tb_department“, o “dept“); o dlShow.DataTextField = “name“; o dlShow.DataBind(); o 接口的使用 o点击添加按钮; oprotected void Button1_Click(object sender, EventArgs e) o o string s1=txtName.Text; o string s2 = txtDemo.Text; o string strSQL = o“insert into tb_department values(“+s1+“,“+s2+“)“; o da.Run(strSQL); o BindDept(); 接口的使用 点击查询按钮; protected void btnShowInfo_Click(object sender, EventArgs e) o o string s1 = dlShow.SelectedValue; o string strSql = o “select * from tb_department where name=“ + s1 + “; o DataSet ds = da.Run(strSql,“dept“); o if (ds.Tables0.Rows.Count0) o o LblShow.Text = “该部门介绍:“ + ds.Tables0.Rows02.ToString(); o o C#+SQL+HTML o protected void LoadInfo() o o DataSet ds = o da.Run(“select * from tb_department“, “dept“); o Response.Write(“); o Response.Write(“); o Response.Write o(“编号部门名称部门介绍 “); o Response.Write(“); o C#+SQL+HTML ofor (int i = 0; i “); o Response.Write( o“+ds.Tables0.Rowsi0.ToString()+“+ds.Tables0.Rowsi1.ToString()+“+ds.Tables0.Rowsi2.ToString()+“ o ); o Response.Write(“); o o o Response.Write(“); C#+SQL+HTML 对连接对象执行 SQL 语句 来自MS帮助文档 public abstract int ExecuteNonQuery () o可以使用 ExecuteNonQuery 执行编录操作(例如查 询数据库的结构或创建诸如表等的数据库对象),或 通过执行 UPDATE、INSERT 或 DELETE 语句更改 数据库中的数据。 o虽然 ExecuteNonQuery 不返回任何行,但是映射到 参数的任何输出参数或返回值都会用数据进行填充。 o对于 UPDATE、INSERT 和 DELETE 语句,返回值 为该命令所影响的行数。对于其他所有类型的语句, 返回值为 -1。 o返回值-受影响的行数。 接口的使用 o MyData md = new MyData();/ 创建对象 DataSet Ds = md.ExecuteSql(“select * from tb_department where ID=20”, “tb_department”); /使用接口 try if (Ds.Tables0.Rows.Count0) catch (System.Exception e) 接口参数 控件的使用说明 用户控件 用户控件 BaseClass bc = new BaseClass(); if (rdoBtnAdmin.Checked) DataSet ds =bc.GetDataSet(“select count(*) from tb_sysUser where userName=“+txtName.Text+“ and userPwd=“+txtPwd.Text+“and system=1“,“tb_employee“); if (ds .Tables0.Rows.Count0) 用户控件 BaseClass bc = new BaseClass(); DataSet ds = bc.GetDataSet( “ select ,a.dept,a.photoPath,a.job,b.state from tb_employee as a inner join( select TOP 2 * FROM (select employeeName, sum(late)+sum(quit) as state from tb_sign group by employeeName ) as aa order by state) as b on =b.employeeName order by b.state“ ,“tb_sign“); DataList1.DataSource = ds; DataList1.DataBind(); 数据绑定 o runat=“server“ Height=“54px“ Width=“69px“ / o 姓名: 部门: o 职务: 显示控件-GridView 显示控件-GridView o显示表格数据是软件开发中的一个周期性任 务。ASP.NET 提供了许多工具来在网格中 显示表格数据 可以使用 GridView 来完成以下操作: o通过数据源控件自动绑定和显示数据。 o通过数据源控件对数据进行选择、排序、分 页、编辑和删除。 显示控件-GridView 通过以下方式自定义 GridView 控件的外观和 行为: o指定自定义列和样式。 o利用模板创建自定义用户界面 (UI) 元素。 o通过处理事件将自己的代码添加到 GridView 控件的功能中。 比较 GridView 和 DataGrid oGridView 控件是 DataGrid 控件的后继控 件。与 DataGrid 控件相似,GridView 控 件旨在在 HTML 表中显示数据。 o当绑定到数据源时,DataGrid 和 GridView 控件分别将 DataSource 中的 一行显示为输出表中的一行。 oDataGrid 和 GridView 控件都是从 WebControl 类派生的。 比较 GridView 和 DataGrid 虽然 GridView 控件与 DataGrid 控件具有类似的对象 模型,但与 DataGrid 控件相比,前者还具有许多新功能 和优势,包括: o更丰富的设计时功能。 o改进的数据源绑定功能。 o排序、分页、更新和删除的自动处理。 o其他列类型和设计时列操作。 o具有 PagerTemplate 属性的自定义页导航用户 界面 (UI)。 GridView 控件中设置数据显示格式 o可以指定 GridView 控件的行的布局、颜 色、字体和对齐方式。 o可以指定行中包含的文本和数据的显示。 o另外,可以指定将数据行显示为项目、交替 项、选择的项还是编辑模式项。 GridView 控件中设置数据显示格式 使用 GridView 控件进行数据绑定 GridView 控件提供了两个用于绑定到数据的 选项(具体说明参见MSDN) o使用 DataSourceID 属性进行数据绑定, 此选项让您能够将 GridView 控件绑定到 数据源控件 o使用 DataSource 属性进行数据绑定,此 选项使您能够绑定到包括 ADO.NET 数据 集和数据读取器在内的各种对象。 使用 GridView 控件进行数据绑定 o protected void Page_Load(object sender, EventArgs e) if (!IsPostBack) GridView1.DataSource = bc.GetDataSet(“select * from tb_department“,“department“); GridView1.DataKeyNames = new string “ID“ ; GridView1.DataBind(); 使用 GridView 控件编辑和删除数据 HyperLinkField 类 来自MSDN HyperLinkField 类字段表示在数据绑定控件 中显示为超链接的字段。 重要属性说明: DataNavigateUrlFields 属性 获取或设置数据源中字段的名称,用于为 HyperLinkField 对 象中的超链接构造 URL。 DataNavigateUrlFormatString 属性 取或设置当 URL 数据绑定到数据源中的字段时, HyperLinkColumn 中的超链接的 URL 的显示格式。 DataNavigateUrlFormatString= “DeptInfoEdit2.aspx?id=0 “ 显示编辑的二级页面 显示编辑的二级页面 o根据传过来的ID进行查找,并显示到页面元素中去; oif (!Page.IsPostBack ) DataSet ds = bc.GetDataSet(“SELECT * FROM tb_department WHERE ID =“ + Request.QueryString“id“.ToString() + “, “department“); if (ds.Tables0.Rows.Count 0) TxtDeptName.Text = ds.Tables0.Rows0“Name“.ToString(); TxtDeptMemo.Text = ds.Tables0.Rows0“memo“.ToString(); 理解事件冒泡 o在ASP.NET框架中包含3个支持事件冒泡的 标准控件(Repeater、DataList和 DataGrid控件) o事件冒泡指上述这些控件能捕获其子控件的 事件。当子控件产生一个事件时,事件就向 上“冒泡”传给包含该子控件的容器控件(父 控件),而容器控件就可以执行一个子程序 来处理该事件 事件处理 删除事件: bc.SqlExecute(“DELETE FROM tb_department WHERE ID=“ + GridView1.DataKeyse.RowIndex.Value.ToString() + “); GridView1.DataSource = bc.GetDataSet(“select * from tb_department“, “department“); GridView1.DataBind(); 使用第三方控件-FreeTextBox 使用第三方控件-FreeTextBox o在页面源代码中添加: o o o 使用第三方控件-FreeTextBox 使用第三方控件-FreeTextBox o通过存储过程执行 protected void

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论