OA协同办公系统详细设计说明书解读.pdf
协同办公系统详细设计说明书协同办公系统详细设计说明书编写:审核:批准:受控状态:发布版次:编号:日期:日期:日期:是日期:1变更记录变更记录日期签字确认签字确认系统模块对应章节对应部门负责人签字版本变更说明作者1 1引言引言 . .4 41.11.21.31.41.51.62 2编写目的.4背景.4基线.4范围.4定义.4参考资料.4总体设计总体设计.5 52.1概述.52.1.1功能描述.52.2运行环境.52.2.1软件环境.52.2.2硬件环境.52.3开发环境.62.3.1服务器软件环境.62.3.2服务器硬件环境.62.3.3开发机器软件环境.62.3.4开发机器硬件环境.62.4设计思想. 错误错误! !未定义书签。未定义书签。2.4.1系统构思.错误错误! !未定义书签。未定义书签。2.4.2关键技术与算法.错误错误! !未定义书签。未定义书签。2.4.3关键数据结构.错误错误! !未定义书签。未定义书签。2.4.4人工处理过程.错误错误! !未定义书签。未定义书签。3 3子系统模块设计子系统模块设计.7 73.1工作管理模块.73.2在线信息子系统.133.2.1模块1.143.2.2模块2.143.2.3模块3.153.2.4模块4.153.2.5模块5.153.2.6模块6.163.2.7模块7.163.3公司通讯录子功能.193.4个人文件夹管理模块.233.5系统管理模块.273.6名片夹管理模块.323.7个人信息管理模块.353.8会议室管理模块.393.9会议管理.421 1 引言引言1.11.1 编写目的编写目的本说明书目的在于详细说明系统各功能的功能及其实现方式,指导程序员进行编码。本说明书的预期读者为:项目经理,系统分析员,系统设计人员,开发工程师,测试经理以及测试设计人员等。1.21.2 背景背景待开发软件系统的名称:协同办公系统此软件系统任务提出者:此软件系统任务开发者:此软件系统任务用户:1.31.3 基线基线协同办公系统需求分析说明书 v1.01.41.4 范围范围系统包括的范围:个人办公、会议管理,系统管理。1.51.5 定义定义系统管理员:系统管理员: 是指在系统中具有最高权限的员工。 他能够改变系统中任意员工的相关信息,如个人信息,通讯录,名片夹,会议室使用记录,在线信息状况等。员工:员工: 是指在系统中拥有普通权限的人员。 该人员所能处理的事物有: 个人信息的完善,名片夹、文件夹的管理,通讯录的更新,在线信息的提醒,会议室的使用情况的查看等。经理:经理: 是指在系统中拥有较高权限的员工。 该人员不仅能处理普通员工所能处理的事物,还能处理如会议室的申请,会议室的管理等事物。权限管理:权限管理: 是指在系统中用户为了保护自己的隐私, 对某些信息项的公开程度加以限制的行为。具体的有: 日程安排中读者设置和代办设置,共享名片夹中共享名片夹的设置,个人文件夹中共享文件夹的设置等1.61.6 参考资料参考资料需 求 分 析 说 明 书 、 概 要 设 计 说 明 书 _v1.0.doc、 Oracle 数 据 库 使 用 教 程 、Ora9iSQLRef.chm、Oracle 数据库使用帮助文档、CSS 中文教程、HTML 开发手册、JAVA 高级编程指南、JSP 应用开发详解、功能结构图。2 2 总体设计总体设计2.12.1 概述概述2.1.12.1.1 功能描述功能描述系统分为三个主要流程:1、个人办公2、会议管理3、系统管理个人办公:普通职员登陆到系统后,通过点击个人办公连接,进入个人办公页面。之后可以选择个人信息、日程安排、名片夹、公司通讯录、待办事项、在线信息、个人文件夹进行办公。会议管理:部门领导登陆到系统后选择会议管理,进入会议管理页面。在会议管理页面中可以增、删、改、查会议。其中发起会议需首先预约会议室,然后将输入与会人名单,开会议信息通过邮件发送到每个与会人的信箱里。系统管理:系统管理员登陆到系统后,点击系统管理,进入系统管理页面。可以选择部门管理、角色管理、职员管理、文件夹管理进行系统维护。2.22.2 运行环境运行环境2.2.12.2.1 软件环境软件环境分类分类操作系统操作系统的附加功能数据库平台数据库平台补丁应用平台应用平台补丁客户端软件无Oracle名称名称Microsoft windows 2003版本版本10g6.5中文语种语种中文英语无tomcat无无2.2.22.2.2 硬件环境硬件环境服务器服务器应用和数据库服务器Tomcat4.0最低配置最低配置IBM WebSphere推荐配置推荐配置2.32.3 开发环境开发环境2.3.12.3.1 服务器软件环境服务器软件环境分类分类操作系统操作系统的附加功能数据库平台数据库平台补丁应用平台应用平台补丁版本控制系统客户端软件无Oracle无无CVS名称名称Microsoft windows 2003版本版本9.2i2.6中文语种语种中文英文无2.3.22.3.2 服务器硬件环境服务器硬件环境服务器服务器应用服务器、Tomcat4.0数据库服务器、 邮件服务器、 目录服务器SQLServer2000最低配置最低配置IBM WebSphere推荐配置推荐配置Oracle 10g2.3.32.3.3 开发机器软件环境开发机器软件环境分类分类操作系统操作系统的附加功能数据库平台应用平台开发平台客户端软件无Oracle名称名称Microsoft windows 2003版本版本10g中文中文语种语种2.3.42.3.4 开发机器硬件环境开发机器硬件环境分类分类开发机器最低配置最低配置推荐配置推荐配置2.42.4 系统功能模块划分系统功能模块划分根据对客户需求的理解,系统功能划分为如图1 所示:图 1 系统功能模块划分3 3 子系统模块设计子系统模块设计3.13.1 日程安排模块日程安排模块模块名称功能描述权限管理权限管理为员工提供工作安排维护和查询功能,系统根据设定时间将提示内容发布到该员工的工作安排中。员工可以设置自己的工作安排的读者,以便别人知道自己的安排;也可以将自己的工作安排权限开放给指定的人,以便别人替自己安排工作。此模块包含的功能有:读者设置、代办设置、日历查看。接口与属性用户与接口 ManageWork交互进行相关的操作。ManageWork接口中包含的操作有: 代办管理功能:代办管理功能:ProxyAdd()ProxyAdd():添加代办功能。该函数通过与 Proxy 对象类关联得到操作所需要的数据。其中 Proxy 类中的属性有:private String sender_id;/将要设置代办的系统用户 idprivate String useuse_id;/将要被设置为代办的系统用户 idProxyProxy 类中包含的主要方法有:上述各属性的 get()、set()方法ManageWork类中的 ProxyAdd()方法将通过 Proxy 类的实例调用相应的 get()、 set()方法得到或传入数据ProxyAdd()方法中将实例化数据库的对象,完成添加代办的工作。在添加代办之前方法将优先进行加入人员 id 的检测,若用户已在代办列表中则将提示用户并拒绝重复加入代办。如果欲加入的代办不在该用户的代办列表中则加入该代办,并进行相应的页面跳转,显示该用户所有的代办列表。ProxyDelete()Delete():删除代办功能。该函数通过与 Proxy 对象类关联得到操作所需要的数据。其中 Proxy 类中的属性有:private String sender_id;/将要设置代办的系统用户 idprivate String useuse_id;/将要被设置为代办的系统用户 idProxyDelete()方法中将实例化数据库的对象,完成删除代办的工作。在删除代办之前系统将给出相应删除提示,在用户确认删除后对数据库进行删除操作,并进行相应的页面跳转,显示该用户删除该代办后的所有的代办列表。读者管理功能:读者管理功能:ReaderAdd()ReaderAdd():添加读者功能。该函数通过与 Reader 对象类关联得到操作所需要的数据。其中 Reader 类中的属性有:private String icus_user_id;/将要设置读者的系统用户 idprivate String iaro_role_id;/将要被设置为读者的系统用户 idReader 类中包含的主要方法有:上述各属性的 get()、set()方法ReaderManage 类中的 ReaderAdd()方法将通过 Reader 类的实例调用相应的 get()、set()方法得到或传入数据ReaderAdd ()方法中将实例化数据库的对象,完成添加读者的工作。在添加读者之前方法将优先进行加入人员 id 的检测,若用户已在读者列表中则将提示用户并拒绝重复加入读者。由于根据系统规格说明的相关说明,代办的权限大于读者的权限,即代办自动拥有读者的全部权利,因此如果欲加入读者是当前用户的代办则系统同样拒绝加入该读者。如果欲加入的代办不在该用户的读者列表中则加入该读者,并进行相应的页面跳转,显示该用户所有的读者列表。ReaderDelete()ReaderDelete():删除读者功能。该函数通过与 Reader 对象类关联得到操作所需要的数据。其中 Reader 类中的属性有:private String icus_user_id;/将要设置读者的系统用户 idprivate String iaro_role_id;/将要被设置为读者的系统用户 idprivate String icus_user_name; /将要被设置为读者的系统用户的姓名private String icde_department_name;/将要被设置为读者的系统用户所在的部门private String user_position_name;/将要被设置为读者的系统用户的职位Reader 类中包含的主要方法有:上述各属性的 get()、set()方法ReaderManage类中的 ReaderDelete()方法将通过Reader类的实例调用相应的 get()、 set()方法得到或传入数据ReaderDelete()方法中将实例化数据库的对象,完成删除读者的工作。在删除读者之前系统将给出相应删除提示,在用户确认删除后对数据库进行删除操作,并进行相应的页面跳转,显示该用户删除该读者后的所有的读者列表。采用日历控件输入时间功能:采用日历控件输入时间功能:根据需求规格说明书的要求,系统将提供给用户日历查询功能,以方便其对于工作的管理。在此通过 javascript 语言实现日历的显示与查询功能。用户可以通过在 textbox中输入所需的年份,在下拉列表中选择相应的月份,提交察看所需日期的具体情况。数据结构与算法 判断欲加入代办的存在性判断欲加入代办的存在性:判断欲加入代办是否已在用户的代办列表中主要通过 session 中存储的登陆用户信息及数据库中表间外键联系,构造 sql 语句得到相应的结果集。若该查询的结果集为空则说明欲加入代办不在用户的代办列表中,进行加入操作。否则系统给出提示信息。 通过页面加入代办的主要数据结构:通过页面加入代办的主要数据结构:根据需求规格说明书的相应要求,用户提出相应的代办操作申请后,系统将给出组织结构图,只有通过组织结构图用户才能进行相应的操作。组织结构图的每个系统用户名的前部都将设有复选框。用户通过勾取所需的用户进行相关的增加或删除操作。系统采用 struts 架构, 页面的复选框属性将作为 String 型的数组传入系统后台的功能模块层。 通过相应的函数确定是否选重的属性。 根据该属性关联的 icus_user_id 系统用户 id对相关的数据库表格进行操作。 利用利用 javascriptjavascript 实现日历功能的设计因素:实现日历功能的设计因素:在工作管理的多个模块的需求描述中都明确提到了需要日历的查询和使用功能。但从系统的整体出发,日历的使用范围基本局限于工作管理部分,因此考虑使用 javascript减轻系统负担,方便用户使用。模块名称功能描述日程维护日程维护为员工提供工作安排维护和查询功能,系统根据设定时间将提示内容发布到该员工的工作安排中。此模块包含的功能有:工作安排、综合查询。接口与属性所有的的操作基于 Schedule 实体类完成。ScheduleSchedule 类中的属性包括:Private Integer Schedul ,/系统为工作自动分配的 ID 号Private userID;/工作执行人的 ID 号Private FromID;/工作安排人的 ID 号private String Schedul_bdate; /工作开始日期private String Schedul_edate; /工作结束日期private String Schedul_content; /工作内容private String Schedul_name; /工作名称Schedule 类中包含的主要方法有:上述各属性的 get()、set()方法1 1工作维护功能:工作维护功能:Add_scheduleAdd_schedule:添加工作功能。该函数通过与对象类关联得到操作所需要的数据。ScheduleSchedule 类中包含的主要方法有:上述各属性的 get()、set()方法ScheduleManageScheduleManage 类中的 ScheduleAdd()方法将通过 Schedule 类的实例调用相应的 get()、set()方法得到或传入数据ScheduleAdd()ScheduleAdd():方法中将实例化数据库的对象,完成添加工作的工作。在添加工作之前进行申请加入操作人员 id 的检测,若工作执行人为登陆用户本身,或者登陆用户的被执行代办人,则在该用户提交申请后系统自动进行工作冲突的检测。若工作检测后系统返回值为非冲突,则加入该工作,否则系统提示用户相关的信息并拒绝加入工作。Schedule_delete()Schedule_delete(): 删除工作功能。 该函数通过与 Work对象类关联得到操作所需要的数据。ScheduleManage类中的ScheduleDelete()方法将通过Schedule类的实例调用相应的get()、set()方法得到或传入数据Scheduledelete()Scheduledelete()方法中将实例化数据库的对象,完成删除工作。在删除工作之前方法将优先进行申请删除操作人员 id 的检测,若工作执行人为登陆用户本身,或者工作的安排人,则系统将给出相应删除提示,在用户确认删除后对数据库进行删除操作,并进行相应的页面跳转,显示该用户删除该工作后的所有的工作列表。ScheduleSearch():ScheduleSearch():包括综合查询的日历查询查询工作功能。该函数通过与 Schedule 对象类关联得到操作所需要的数据。ScheduleManage 类中的 ScheduleSearch()方法将通过Schedule 类的实例调用相应的 get()、set()方法得到或传入数据ScheduleSearch()方法中将实例化数据库的对象,完成查询工作的工作。根据需求规格说明书的要求:可以通过:1, 时间查询,根据时间进行查询2, 字查询,根据内容或者标题的关键字查询字段查找相应的工作。从在系统进行工作查询后将通过页面显示工作列表。在用户输入查询条件的情况下进行查询ScheduleEdit()ScheduleEdit():修改工作功能。该函数通过与 Schedule 对象类关联得到操作所需要的数据。ScheduleManage 类中 ScheduleEdit()方法将通过 Schedule 类的实例调用相应的 get()、 set()方法得到或传入数据ScheduleEdit()方法中将实例化数据库的对象,完成修改工作的工作。在修改工作之前方法将优先进行申请加入操作人员 id 的检测,若工作执行人为登陆用户本身,或者原工作的安排人且依然则在该用户提交申请后系统自动进行工作冲突的检测。 若工作检测后系统返回值为非冲突,则修改该工作,否则系统提示用户相关的信息并拒绝加入工作。数据结构与算法检测工作冲突功能:检测工作冲突功能:根据需求规格说明书的要求,系统将提供给用户工作冲突检测功能,以方便其对于工作的管理。检测工作冲突主要侧略为:优先检测工作执行人欲安排的工作与其已有的工作安排的冲突。 检测过程中需要三步判断:1.1)1.2)1.3)欲安排工作起始日期之间是否有其它的工作安排欲安排工作起始日期是否在其它已安排工作之间欲安排工作结束日期是否在其他已安排工作之间若有没有冲突则安排工作否则系统给出错误信息。检测人员权限功能:检测人员权限功能:根据系统规格说明书的相关说明,不同权限的用户对于工作安排的操作的权限是不同的,检测的策略为:1 根据 session 中的信息判断登陆用户是否工作管理相关操作的责任人2 根据读者&代办表中的相关记录判断工作管理相关操作责任人是否具有代办的权限。补充说明bb模块名称功能描述待办事项模块待办事项模块此模块实现了对待办事项的增加、删除、显示以及所有日程安排清单的按日期排序显示功能。接口与属性类 jobOperate:抽象方法sortAccordToTime()/按时间排序输入参数:要排序的代办列表输出参数:无返回值:排序好的代办列表Addjob()输入参数:要插入的待办事项对象的引用工作流输出参数:无返回值:bool 类型,插入成功与否deletejob:输入参数:要删除的待办事项的 ID输出参数:无返回值:bool 类型,删除成功与否display():/显示待办事项输入参数:无输出参数:要显示的对象列表返回值:bool 类型,显示成功与否displayAll():输入参数:无输出参数:要显示的对象列表返回值:bool 类型,显示成功与否数据结构与算法对象类 job:与数据库中的 job 表的各个字段相对应序列号 job_id Integer名称 job_name String负责人 person String起始时间 job_btime time结束时间 job_etime time事项内容 jobcontent String事项标题 jobtitle String是否完成 done bool补充说明工作安排类图:权限设置类图序列图:工作安排维护序列图:3.23.2 在线信息子系统在线信息子系统模块名称功能描述在线信息模块在线信息模块本子系统主要为用户提供留言交流的平台,用户可以发送留言,接收留言,查看留言以及对留言进行查询,回复,删除等操作接口与属性主要由 MessageManageMessageManage 类通过操纵 MessageMessage 类实现对留言的管理、接收、发送等。1 1其中其中 MessageMessage 类主要属性包括:类主要属性包括:IntfromID/留言发送者员工号StringfromName/留言发送者姓名InttoID/留言接收者员工号StringtoName/留言接收者姓名Stringtitle/留言主题Stringcontent/留言内容Datedate/留言日期IntmessageNumber/留言编号intissent/判断留言是否已经发送intisReaded/判断留言是否已经被阅读intfrom_delete/判断发送者是否将留言删除intto_delete/判断接收者是否将留言删除主要接口与方法有:主要接口与方法有:对类中每个属性的 get()与 set()方法2 2MessageManageMessageManage 属性包括:属性包括:BoolenisOK/判断对留言的操作是否成功接口与方法包括:接口与方法包括:saveMessage()/保存留言editMessage()/编辑留言see Message()/查看留言send Message()/发送 留言search Message()/查询留言add Message()/ 添加留言delete Message()/删除留言replay Message()/回复留言数据结构与算法补充说明数据库语句实现功能。数据库语句实现功能。3.2.13.2.1 模块模块 1 1模块名称功能描述发送留言发送留言指利用系统发送短消息。指利用系统发送短消息。用户点击“发送”后,系统将留言写进数据库,并将 int issent改为 1。接口与属性MessageManage 类通过 Message 类的 get()与 set()方法实现对留言的管理。sendMessage() 函 数 实 现 发 送 留 言 功 能 。 输 入 参 数 有 inttoID,StringtoName ,String title String content, Date data。返回值为 Boolean isOK.sendMessage()方法将实例化 Message 对象,通过调用该对象的方法,来获取留言的基本信息,然后实习留言的发送功能。数据结构与算法补充说明数据库语句实现功能。数据库语句实现功能。3.2.23.2.2 模块模块 2 2模块名称保存留言保存留言功能描述指利用系统保存短消息指利用系统保存短消息。用户点击“保存”后,系统将留言写进数据库,并将 int issent改为 0。接口与属性MessageManage 类通过 Message 类的 get()与 set()方法实现对留言的管理。saveMessage()函数实现保存留言功能。 输入参数有 int toID, String toName, int toID,int toName , Date date, String title, String content 。返回值为 Boolean ok.saveMessage()方法将实例化数据库对象,然后对留言信息进行验证,验证通过后将其保存在数据库中,返回保存成功的信息。数据结构与算法补充说明数据库语句实现功能。数据库语句实现功能。3.2.33.2.3 模块模块 3 3模块名称功能描述查找留言查找留言指利用系统查找短消息。指利用系统查找短消息。用户输入查询条件,点击“查找”后,系统将从数据库中查找,并将结果返回。接口与属性MessageManage 类通过 Message 类的 get()与 set()方法实现对留言的管理。searchMessage()函数实现查询留言功能。输入参数有 String name, int fromID,inttoIDsearchMessage()将实例化数据库对象,通过查询条件对数据库进行查询操作,然后将查询结果以列表的实行返回给用户。数据结构与算法补充说明数据库语句实现功能。数据库语句实现功能。3.2.43.2.4 模块模块 4 4模块名称功能描述查看留言查看留言指利用系统查看短消息。指利用系统查看短消息。用户点击某条留言后,系统将具体内容返回,并将 booleanisreaded 改为 true。接口与属性MessageManage 类通过 Message 类的 get()与 set()方法实现对留言的管理。seeMessage()函数实现查看留言。输入的参数有 int messageNumberseeMessage()将实例华数据库对象, 通过 int messageNumber 在数据库中查找信息,将结果返回给用户,进行查看数据结构与算法补充说明数据库语句实现功能。数据库语句实现功能。3.2.53.2.5 模块模块 5 5模块名称功能描述删除留言删除留言指利用系统删除短消息。指利用系统删除短消息。用户选定留言后,系统将 boolean from_delete 或 to_delete 改为 true。接口与属性MessageManage 类通过 Message 类的 get()与 set()方法实现对留言的管理。deleteMessag()函数实现删除留言功能。输入参数有 int messageNumber。返回值为Boolean isOK.deleteMessag()将实例化数据库对象,在验证完用户要删除的留言之后回返回一个确认信息,如果用户确定删除,将删除留言在数据库中的记录。数据结构与算法补充说明数据库语句实现功能。数据库语句实现功能。3.2.63.2.6 模块模块 6 6模块名称功能描述更改留言更改留言指利用系统更改未发送的短消息。指利用系统更改未发送的短消息。用户选择某条未发送留言,点击详“细信息”后,系统将从数据库取出。再点击“编辑” ,对该留言进行编辑接口与属性MessageManage 类通过 Message 类的 get()与 set()方法实现对留言的管理。editMessage()函数实现编辑留言功能。 输入的参数有 int toID, String toName, Stringtitle,String contenteditMessage()将实例化数据库对象,在获取用户的更改信息之后,返回确认信息,待用户确认更改后,进行数据库的更新操作。数据结构与算法补充说明数据库语句实现功能。数据库语句实现功能。3.2.73.2.7 模块模块 7 7模块名称功能描述回复留言回复留言指利用系统回复短消息。指利用系统回复短消息。用户查看某条留言,点击“回复”后,系统将留言引入到写留言中, 并将留言的 fromID 付给新建留言的 toID。 fromName 付给新建留言的 toName。接口与属性MessageManage 类通过 Message 类的 get()与 set()方法实现对留言的管理。replyMessage()函数实现回复留言功能。输入的参数有 inttoID, StringtoNamereplyMessage()将实例化 Message 类对象,将收到的信息的发送人 ID,Name 作为新的参数写入新的回复留言,之后调用 sendMessage()方法发送留言。数据结构与算法补充说明数据库语句实现功能。数据库语句实现功能。类图:1.草稿箱时序图ClerkLogin()UIDraftBoxUIDraftSavedDraftBoxDBOChangeUI()AddMessage()SendDraft()ReturnToUI()ReturnToClerk()QueryBox()ReturnToUI()ReturnToClerk()AlterMessage()SendDraft()ReturnToUI()ReturnToClerk()DeleteMessage()SendDraft()ReturnToUI()ReturnToClerk()未阅留言模块的主要功能是列出系统或其他用户发送给自己d 的还没有阅读的短信息。 包含的操作有:查询留言、查看留言、回复留言、删除留言。未阅留言时序图ClerkLogin()ChoseUI()SendToMes sage()SendDraft()SendMes sage()SendF orm()Login()QueryUnreadMes ()ReturnUnreadMes ()SeeUnreadMes ()ReturnUnreadMes ()RevertMes sage()ReturnChangedM s()UIDraftB oxUIDraftS avedDraftB oxDBOUnreadUIAnotherClerkDeleteMes sage()ReturnChangedM es()3.33.3 公司通讯录子功能公司通讯录子功能模块名称功能描述公司通讯录为职员提供查询公司所有员工通讯录的功能, 系统根据设定的查询条件将查询结果显示给用户中。职员可以将查询的结果导出为 excel 保存到自己本机选定的地址。此模块包含的功能有:查询通讯录 导出位 excel。接口与属性用户与接口 UserMange 交互进行查询的操作。 在本子功能中只用到 UserManage 接口中包含的查询操作。该子功能包含的功能有:1.查询公司通讯录getAttribute():获得查询条件。该函数接受从页面传过来的参数作为查询条件,查询所需要的数据。getAttribute()调用 UserManage 接口的 searchUser 方法,查找用户要查询的用户通讯录,以列表的方式显示给用户。2.导出为 Excel用户查询出通讯录之后可以点击“导出为Excel” ,弹出导出为 Excel,用户指定文件导出路径,将表格导出。本功能用到 jxl.jar 包,具体实现方法为:publicpublic booleanboolean export(String sql,String name,OutputStreamos)targetFile+=/abc+.xls; System.out.println(!);content=getContent(sql);/以向量的形式存放所有的记录/String path=context.getRealPath(targetFile);trytry Vector inner=nullnull; String value=;/存放在cell中的文本值intint num=0;/存放在cell中的数字值/OutputStream os=newFileOutputStream(path); WritableWorkbookworkbook=Workbook.createWorkbook(os);/创建工作薄 WritableSheetworksheet=workbook.createSheet(record,0);/创建第一个工作表,name:工作表名称 Label label=nullnull;/用于写入文本内容到工作表中去 jxl.write.Number nmb=nullnull;/用于写入数值到工作表中去/开始写入第一行,即标题栏forfor(intint i=0;ititle.length;i+) label=newnew Label(i,0,titlei);/参数依次代表列数、行数、内容 worksheet.addCell(label);/写入单元格 /开始写入内容forfor(intint i=0;icontent.size();i+) inner=(Vector)content.get(i);/获取一条记录forfor(intint j=0;jinner.size();j+)/一个一个字段的放入excel中去ifif(j=1|j=3)/插入的数值 Integernum_=(Integer)inner.get(j); num=num_.intValue(); nmb=newnewjxl.write.Number(j,i+1,num); worksheet.addCell(nmb); elseelse value=(String)inner.get(j); label=newnew Label(j,i+1,value); worksheet.addCell(label); workbook.write(); workbook.close(); catchcatch(Exception e) e.printStackTrace();returnreturn falsefalse; returnreturn truetrue; publicpublic Vector getContent(String sql)rs=dbase.executeQuery(sql); Vector outter=newnew Vector();trytrywhilewhile(rs.next() Vector inner=newnew Vector();/用于存放一条记录 String name=rs.getString(NAME);/得到学生姓名intint studId=rs.getInt(ID);/得到学号 StringburseType=rs.getString(SEX);/得到奖学金类型intint colleage=rs.getInt(AGE);/得到所在院系 inner.add(name); inner.add(studId); inner.add(burseType); inner.add(colleage); outter.add(inner); catchcatch(Exception e) e.printStackTrace();/rs.close();returnreturn nullnull; returnreturn outter; 数据结构与算法使用 Vectorinner 来存放表格的每一行记录。使用 Vector outter 来存放所有的 inner。并使用 jxl.jar 包所带的 Label 来保存文本内容写入到 Excel 表格, 用 Integer 来保存数字内容。补充说明类图Clerk1: Login()UIAddressBookUIAddressBookDBO2: Choice UI()3: AddBook()4: Returninfo()5: QuryBook()6: Returninfo()7: Returninfo()8: Returninfo()9: Output()10: Returninfo()11: Returninfo()3.43.4 个人文件夹管理模块个人文件夹管理模块模块名称功能描述网络文件夹管理模块网络文件夹管理模块在本系统中为员工日常办公常用功能,包括个名文件夹的管理,文件上传,下载和删除以及将自己文件夹设为共享。被设为共享的文件夹可以被公司内其他员工所访问。接口与属性用户与接口 FileManage 和 FolderManage 交互进行相关的操作。File 类中的属性有:private int fileID;/文件的 IDprivate int userID;/文件的所人有 IDprivate int folderID;/文件所属文件夹的 IDprivate blob filecontent;/文件的内容private string filename;/文件名private int filetype;/文件夹类型private double filesize:/文件夹大小File 类中包含的主要方法有:上述各属性的 get(),set()方法 。FileManage 接口中包含的操作有:1.个人文件上传操作uploadFile():上传文件。该函数提供从用户本机上传文件的文件选择对话框,并与File 对象相关联,得到文件对象的属性。FileManage 类中的 uploadFile()方法将通过 File 类的实例调用相应的 get()、set()方法得到或传入数据。FileManage()方法中将实例化数据库的对象,完成添加文件的工作。在添加文件之前方法将检查数据库表中 ID 字段,使用 select max(ID)from XX 来获得最大的 ID号,然后用 ID+1 来作为新加入到数据库中的记录的 ID 号。上传完文件后回到个人文件管理主页。2.个人文件下载操作 downloadFile():下载文件 。用户点击要下载的文件,弹出文件下载对话框,用户选择要存放文件的位置,然后将文件写入指定的位置。FileManage 类中的 downloadFile()方法将通过 File 类的实例调用相应的 get()、set()方法得到或传入数据。 FileManage()方法中将实例化数据库的对象,完成下载文件的工作。在下载文件之前方法将先选择该文件所对应的文件 ID 号,查询出相应的 filecontent 的内容,并将内容以文件流的形式(FileOutputStream)发送到客户端。下载完文件后回到个人文件管理主页。 Folder 类中的属性有: private int folderID;/文件夹 ID private