BS模式的设备管理系统.doc_第1页
BS模式的设备管理系统.doc_第2页
BS模式的设备管理系统.doc_第3页
BS模式的设备管理系统.doc_第4页
BS模式的设备管理系统.doc_第5页
已阅读5页,还剩43页未读 继续免费阅读

下载本文档

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

文档简介

论文编码论文编码: 学士学位论文学士学位论文 b/s 模式的设备管理系统 设备管理与综合查询设备管理与综合查询 院院 系系 信息工程学院信息工程学院 专专 业业 计算机科学与技术计算机科学与技术(师范师范) 年年 级级 学学 号号 指导老师指导老师 论文作者论文作者 完成日期完成日期 2010 年年 5 月月 10 日日 capital normal university b/sb/s 模式的设备管理系统模式的设备管理系统( (中文提要中文提要) ) 【中文提要中文提要】 本文描述了基于 java 技术 b/s(browser/server)模式三层结构的设备 管理系统的设计。该系统的开发是为了规范设备管理、提高工作效率。该系 统由设备维护模块、用户管理模块、部门管理模块、日志维护模块和系统维 护模块构成,其中设备维护模块中包含了对设备的插入,删除,修改,综合 查询功能,打印模板,用户自定义模板等操作模块。文章重点介绍了设备维 护模块中的综合查询模块,根据查询结果对设备进行删除,修改,发放和打 印模板,用户自定义模板的设计和实现。所有模块都是基于 java 技术开发 的,通过采用 b/s 模式的三层结构,摆脱了 c/s 模型对客户端的依赖,保证 了系统的安全性,增强了系统的可重用性和可移植性,有利于日后的维护和 扩充。 作者:刁彬斌 指导教师:刘羽 【关键词】条件; b/s 模式; java; 模板; 综合查询 capital normal university structure of the browse/server mode ems(abstract) 【abstract】 this paper has described the design of the equipment management system using java technological development and based on triple-layered structure of the browse/server mode. development of this system is in order to standardize equipment management and raise working efficiency. this system maintain by equipment maintenance module, user management module, department management module, log management module and system maintenance module. the article point introduced equipments maintenance mold piece inside of synthesizing and searching mold a design for, according to search result to the equipments proceeding deletion, modifying, issuing with printing template, customer from defining template .all mold piece bases on the java technique development of, pass to adopt the b/s mode of three layer construction, got away from the c/s to the counting on that customer carry, guarantee the safety of the system, strengthen the system the heavy using the sex with can transplant the sex, benefit to in the days to come of maintenance with enlarge. diao binbin (information engineering college) directed by liu yu 【key word】 condition; b/s mode; java; template; synthesizing searching capital normal university 目录 一一 引言引言 1 1 1.1 开发背景 .1 1.2 系统简介.1 1.3 可行性研究.2 1.3.1 经济上可行性: .2 1.3.2 技术上可行性: .2 1.3.3 运行上可行性: .3 1.3.4 法律可行性: .3 1.4 项目进展情况 .3 二二 项目需求项目需求 4 4 三三 项目设计项目设计 5 5 3.1 设备的添加 .5 3.2 综合查询 .5 3.3 打印模板.5 3.4 用户自定义模板.6 3.5 通过查询结果对设备进行删除,修改,发放 .6 3.6 报表的打印 .6 四四 程序实现程序实现 7 7 4.1 设备添加 .7 4.1.1 设备类(device)结构介绍 .7 4.2.2 添加设备问题的解决 .8 4.2.3 添加设备的界面设计10 4.2 综合查询的实现11 4.2.1 综合查询查询表结构说明11 4.2.2 综合查询需求分析 13 4.2.3 综合查询的工作流程13 4.2.4 综合查询问题的解决15 解决方法概述15 conditon 类的设计 18 .1condition 的功能 .18 综合查询结果(result)界面20 4.3 打印模板 21 4.3.1 打印模板的数据库设计 21 4.3.2 对数据库操作设计21 4.3.2 模板的类封装(temp) 22 4.3.3 模板界面的设计 22 4.4 用户自定义模板 25 4.4.1 用户自定义模板的功能与实现 25 4.4.2usertemp 类的说明 26 capital normal university 4.5 报表的打印 28 4.5.1 打印的实现方法 28 4.5.2 报表输出的界面设置与问题解决 29 4.5.3 页面设计30 4.6 通过查询结果对设备进行删除,修改,发放 31 4.6.1 工作流程 31 4.6.2 问题解决 31 五五 结论结论 3232 六六 致谢致谢 3333 参考文献参考文献 3434 附录附录 3535 capital normal university 第 0 页 共 41 页 一 引言 1.1 开发背景开发背景 目前,信息工程学院使用的设备管理系统是几年前开发的基于 c/s 模式的系统。 此系统存在很严重的设计问题。 第一, 系统只能在 windows 98 环境下使用,经历几年的技术革新,现在普遍使用 windows 2000 或 windows xp 系统,当前系统不能满足用户对新操作系统的需求。 第二, 系统对设备属性的划分是固定的,当设备类型与设备型号的不断翻新与增加时, 当前的设备管理系统不能满足用户对属性的修改需求。给用户在使用目前的设备 管理系统对设备录入,修改和查询操作带来了诸多不便。 第三, 系统中用户和部门的管理也比较混乱,当用户和部门结构发生变化时,例如以前 的两个部门合并了、新增加一个下级部门或者是某一领用人从一个部门调动另一 部门时,这时对于设备的管理就比较混乱。 第四, 用户权限的管理比较混乱。不能满足实现不同权限进行不同操作的需要。 第五, 当前系统存在功能缺乏的问题,如各种类型的打印等等问题。 基于以上问题,在 2004 年 2000 级毕业生对系统进行重新设计与开发,开发了 b/s 模式三层结构的设备管理系统,但由于时间有限,只实现了一些模块的代码编写工作, 并且对各个模块进行了一定的测试。没有实现用户的所有需要,并且缺乏系统整体的测 试工作,同时程序代码存在一定的问题。本课题小组的主要工作就是在 2000 级同学所做 的工作上,对系统进一步设计,同时对原代码进行最终的纠错和系统调试工作,以实现 系统的实际应用。 1.2 系统简介 基于系统灵活性和稳定性的考虑,为方便设备管理人员对设备的维护与管理,因此本 设备管理系统采用基于 b/s 模式同时采用页面层,中间层,数据层的三层结构,代码实 现上采用 java 的 servlet 技术。采用 b/s 模式的好处是避免了 c/s 模式对客户端的依赖, 充分利用了网络媒介使整个系统的灵活性有很大提高;可以说只要有网络和浏览器的地 方就可以实现设备管理。系统所采用的三层架构,将数据库层与页面层分开,避免了页 面层的代码泄露问题,提高了整个系统的安全性和稳定性。 开发此系统的核心思想就是灵活管理设备的属性,部门结构的。系统中的所有设备的 属性均由用户决定。即设备的结构是随着用户的需求变化的,而且部门结构发生变化时, 不会影响设备的管理与维护。这样就使系统的每个部分相对于其他部分是透明的,只要 接口不变,那么无论每个模块内部如何变化都不会影响各部分之间的交互。这样做可以 capital normal university 第 1 页 共 41 页 改善旧的设备管理系统对设备和部门管理混乱的问题。 系统的人为安全因素也是不容忽视的问题。在对设备的管理过程中,不同身份的人的 权限应该有清楚的划分和控制。所以本系统将所有用户分成三大类,即系统管理员、部 门高级用户、部门普通用户;而且对部门普通用户又细分为几类,每类用户对系统的操 作权限是不同的。这样进行权限划分可以很好的控制系统使用过程中人为的安全问题; 避免了越权操作的现象。所以系统相应的提供了用户管理模块。 为了规范系统的管理,对于每次用户的操作都将记录在操作日志中,且提供对日志进 行维护的功能。 1.3 可行性研究可行性研究 1.3.1 经济上可行性: 第一,本系统的运行可以代替人工进行许多繁杂的劳动; 第二,本系统的运行可以节省许多资源; 第三,本系统的运行可以大大的提高学校的工作效率; 第四,本系统在硬件需求方面,需要一台性能较好的计算机作为服务器,客户端普通计 算机即可,不需要太大的投入即可使系统投入使用。软件方面,对服务器需要 windows 服务器操作系统,sql server 数据库,tomcat 和 jdk,客户端的操作系 统不做限制,除了浏览器不需要其它软件。在本院现有的条件在不用投入过多的 资金。 所以,本系统在经济上是可行的。 1.3.2 技术上可行性技术上可行性: 本系统利用 microsoft sql server 2000 作为本系统的数据库,它是一个支持 多用户的新型数据库,适用于大中规模的数据量需求。学校校园网的建设也为本系 统服务器/浏览器的结构提供了硬件的支持。 本系统使用 java servlet 作为系统的实现方式,代码比较有条理容易实现系统 的维护和升级,此外小组成员对其掌握比较熟练,使体统的实现有较低的开发风险。 本系统使用 tomcat 4.1 作为站点的服务器软件,可以满足校园网用户的访问需 要。 综上所述,本系统的设计与开发在技术上和硬件设备上的条件都是满足的,因 此,它在技术上是可行的。 capital normal university 第 2 页 共 41 页 1.3.3 运行上可行性:运行上可行性: 本系统为一个中型的设备管理系统,服务器需要一台性能比较稳定的高配置的计 算机用于实现系统的长时间工作,同一时间多人访问的问题,对客户端只是需要浏览 器即可,所耗费的资源非常的小,学校的电脑无论是硬件还是软件都能够满足条件, 在网络资源上基本是对文本资源的传递,所消耗的网络资源很少,校园网不需要针对 性的升级,即可使用。 因此,本系统在运行上是可行的。 1.3.4 法律可行性:法律可行性: 本系统纯为单位内部设计与使用,在开发过程中没有涉及合同、责任等与法律相抵 触的方面。 因此,本系统在法律上是可行的。 1.4 项目进展情况 2000 级毕业生对本设备管理系统进行了需求分析和系统总体架构设计,以及用户模 块,部门模块,个人管理模块,数据库操作模块,设备管理模块部分内容的设计与代码 实现工作。但由于时间等问题,代码的完成程度距离实际应用还用一段距离。例如,设 备的分类采用静态的方式,只有低值易耗,低值耐用,固定资产这三类设备,不能满足 用户对设备分类的修改,添加,删除的需求。设备管理模块的综合查询逻辑上有问题不 能正确的查询出所需要的设备,同时在查询的结果之上对设备进行删除,修改,发放, 打印等操作代码的设计上存在问题。用户所需要的报表打印功能没有实现等等。 capital normal university 第 3 页 共 41 页 二二 项目需求项目需求 基于 2000 级的设备管理系统代码的完成程度距离实际应用还用一段距离。本课题小 组的主要工作是在理解原有程序代码的设计思路和实现机制的基础上,深入阅读程序代 码,对系统进行全面的系统测试,找出其中的错误加以纠正,完成 2000 级毕业生没有实 现的功能,同时满足用户的新需求实现新功能。使系统早日投入使用。 本人主要作了以下几方面内容: 第一,设备添加操作的重新设计。 第二,对综合查询模块进行设计。 第三,通过查询结果对设备进行删除,修改,发放等操作的进行重新设计 第四,考虑到用户的数据输出的需要在管理员的权限上添加打印模板模块。 第五,考虑到用户的数据输出的需要建立用户自定义打印模板模块。 第六,报表的打印。 第七,属性模块的修改。 第八,系统的合成,调试工作。 capital normal university 第 4 页 共 41 页 三三 项目设计项目设计 3.1 设备的添加设备的添加 实现设备的批量添加,即除了设备序列号在设备添加时各个设备必须单独输入外, 其他属性采用输入一次所有添加设备都使用对应输入值的方式实现设备的添加。 3.2 综合查询综合查询 综合查询模块主要是实现设备维护过程中对不确定信息的搜索工作。由于系统对设 备的分类是动态的,每类设备有一个设备类型编号。不同类型的设备在数据库中存放在 不同的表中,且每类设备的属性名称也各不相同。所以在配置查询条件时,页面要根据 用户要查询设备的类别动态的初始化设备属性菜单,否则就会出现查询不匹配的异常。 由于用户是登陆系统后在对设备维护时才可以查询,所以设备维护的页面会记录用户要 查询的设备类别信息,通过变量传给查询页面。另外,不同的用户查询的范围也是不同 的,一般情况下,用户只可以查询其所在部门及其下级部门的设备信息,不能查询其他 部门的信息,这样保证了信息的安全性。所以在查询时,查询者的所属部门信息也独立 的作为一个条件添加到用户配置的查询条件中;当然这部分不出现在条件构成的显示区 域里,只是查询时系统自动加上的。用户配置好的查询条件被封装成条件类的对象传给 数据库操作层进行查询,所以条件类中提供了所有需要的方法。 3.3 打印模板打印模板 原来的系统打印输出的查询结果是固定格式的,即输出的属性字段为固定的,这样 就出现比较严重的问题。输出时输出的字段是固定的,为了尽可能的满足用户需要,只 能输出几乎所有的字段,这样就会使输出的内容较宽,所以系统就必须使用特定类型的 纸张,这样不仅造成纸张资源的浪费,同时输出的内容也不够明确,不便于对结果的分 析。打印模板的作用就是为解决不同纸张的打印,以及字段的按特定顺序输出而编写的 模块。考虑到大多人的使用和系统的可维护性,打印模板只有系统管理员可以进行对打 印模板模块的操作。由于不同类型的设备拥有不同的属性,所以模板必须具有和设备类 型相同的标识,用于区分模板所适用的设备,在模板的分类上划分为默认模板和普通模 板,一个设备类型拥有唯一的一个默认模板和若干普通模板,默认模板是查询结果默认 使用的显示模板,一般将默认模板设计为大多数用户使用概率比较大的输出格式。普通 capital normal university 第 5 页 共 41 页 模板是其他常用的输出格式。 3.4 用户自定义模板用户自定义模板 用户自定义模板的应用范围与打印模板的范围相同,也是应用于综合查询结果的显 示和打印。在系统管理员设置默认和普通打印模板的情况下可以满足大多人,大多数情 况下,对大多数字段顺序的打印,但为了解决少数情况下对打印字段个数和顺序的打印 格式需求,建立此模块。 3.5 通过查询结果对设备进行删除,修改,发放通过查询结果对设备进行删除,修改,发放 由于本系统是中型规模的设备管理系统,系统管理的设备很多,用户的记忆能力必 定是有限度的,不可能很清楚的记忆每一个设备的特征。在需要对某个设备进行删除, 修改,发放等操作就需要一定的方法进行定位。本系统采用设备定位分为两步:第一步 采用综合查询的方式,选择特定范围的设备。第二步,采用复选框的形式,选择特定的 设备进行具体操作。本模块的主要功能就是与综合查询结果进行衔接,然后以一定的方 式展示设备信息,给用户选择的权限对设备进行操作。 3.6 报表的打印报表的打印 本模块的功能是通过打印机将特定的数据以表格的形式展现在纸张上。包括对综合 查询结果特定格式的打印(print)和特定设备的详细信息(moreinfo)的打印两部分。 capital normal university 第 6 页 共 41 页 四四 程序实现程序实现 4.1 设备添加设备添加 4.1.1 设备类设备类(device)结构介绍结构介绍 为减轻服务器存储操作和网络通信的负担,对设备的操作采用整体的方式实现.即 采用哈希表(hashtable)类的对象存储设备记录设备的属性信息:hashtable 中的 key 值 为设备属性的英文标识;hashtable 中的 value 值为设备属性类的对象. 设备类主要提供以下接口: 1) 由于设备表是由设备属性表动态建立的,因此本类提供创建设备表的接口完成设 备表的建立。 2) 系统在实例化设备类的对象时通过设备类的构造函数将设备类的属性使用 hashtable 类的对象进行填充,设备类的构造函数分为三类:第一类,无参类; 第二类。参数为设备类别 id 类;第三类,参数为设备类别 id 和设备 id 类。第 一类为系统默认添加;第二类在添加设备属性及添加设备信息时使用,此种情况 构建的 hashtable 类的对象只具有此类设备所具有的属性结构,value 中的设备 属性类的对象无属性值;用第三类构造函数实例化设备类的对象时 hashtable 的 value 中的设备属性类的对象有相应的属性值,主要用在完成设备的添加、修改、 删除、打印、设备领用维护、设备状态维护及设备子属性的维护功能。 3) 根据本系统设备属性不确定的特点设备类提供获得当前设备的全部属性的英文标 识,即 hashtable 中的 key 值,由此获得对应设备的属性类对象; 4) 在进行设备维护时需获得其属性信息,而 hashtable 中的 key 值可通过上述方法 获得,因此本类只需提供通过 key 的值来获得对应的设备属性类的对象即可。 5) 为了操作方便,在设备类中提供通过 hashtable 中的 key 值的获得其对应属性对 象的属性值的接口。 6) 在添加设备信息时,基于添加信息规范化的考虑本类提供添加属性信息范围的接 口以供页面层使用。 7) 在设备管理系统中提出了子属性的概念,因此在设备类中需提供相应的接口处理 子属性。 8) 为进行设备的属性维护在设备类中提供添加、修改及删除设备属性的操作的接口, 以此完成设备的维护。 9) 为进行设备的维护在设备类中提供添加、修改及删除操作的接口,以此完成设备 的维护。为了进行系统维护,在设备操作接口中需调用日志类接口进行日志维护。 capital normal university 第 7 页 共 41 页 4.2.2 添加设备问题的解决添加设备问题的解决 第一,添加设备信息的过程就是添加设备所具有属性的属性值的过程,而不改变 设备的结构。对于添加的处理,首先构造设备类的对象,根据设备类的对 象获得当前设备的全部属性的英文标识,以此作为依据与添加显示页面中 对应的属性进行匹配,将取得的对应的属性值添加到对应的设备属性中; 将填充好的设备类的对象作为参数传递到添加设备信息的方法中以此来完 成设备信息的添加。 第二,设备信息的添加不包括设备 id、领用单位及删除日期的添加。 设备 id 由系统自动生成,不在页面进行显示; 领用单位由系统自动添加为用户选择部门时确定的部门 id; 删除日期统一添加为-1,不在页面进行显示。 第三,在添加设备信息时需确定其特殊子属性的信息,由于设备的特殊子属性是 成对记录的且有相对固定的范围,需通过查询获得。为了实现该功能在添 加设备信息页面提供相关的查询链接。 第四,添加设备信息过程中存在类似于国别、制造厂等属性,此类属性需要系统提 供下拉列表显示可选择的范围。当选项中没有对应的属性值用户可自行录 入,并且可将用户自定义的选项添加到下拉列表中以供下次使用。 第五,.对于出厂日期和购买日期需要将“年/月/日”的输入形式转过为数据库存储 时的长整型数据形式。 第六,批量添加的实现: 第一步,添加除了设备 id,领用单位,删除日期,设备 序列号的其他属性和添加设备的数量。第二步,添加各个设备的序列号同 时隐式的记录第一步添加的属性值.在提交的时候发送所有属性。第三步, 添加设备.流程如下: capital normal university 第 8 页 共 41 页 第七,添加设备信息的同时需要记录操作日志,日志内容包括添加设备信息的用户 id、设备所属部门 id、批准该用户操作的部门 id、操作类型、操作设备 id 以及具体操作名称。用户 id 从 session 中获得;设备所属部门 id 即当 前部门 id;获得批准该用户操作的部门 id 通过当前部门 id 及用户所在部 门 id 调用部门类方法确定;设备的操作类型均为 1;操作设备 id 通过设 备添加函数返回;具体操作名称为“设备添加” 。 capital normal university 第 9 页 共 41 页 4.2.3 添加设备的界面设计添加设备的界面设计 devadddisplay 页面页面 功 能: 添加设备的第一步操作: 添加除了设备 id,领用单位,删除日期,设备序列号的 其他属性和添加设备的数量 实现方式:将设备类型 type 作为隐含文本框,根据部门参数 depid 取出对应的部门名称以 只读文本框的方式体现。对于制造厂,设备状态和国别字段从选项表(option)中 取出对应属性值的组,以下拉菜单的形式显示同时提供输入新值的文本框。对 于特殊属性设备分类和项目分类则提供子属性经费项目(kyxm),科研号(kyh), 分类名称(sbfl)和分类号(flh)文本框并且提供查询连接,通过查询方式添加其子属 性的文本框经费项目(kyxm),科研号(kyh),分类名称(sbfl)和分类号(flh)进行赋 值。 在表单得元素的命名方式上采用与设备属性英语标识相同的原则。制造厂。 设备状态,国别文本框以“英文标识 + txt”命名.添加个数以“count”命名。为 区分属性是否可为空,在不能为空的属性的表单的对象前页面输出“(*)” 。 注注 意:输入属性顺序是先查询设备分类和项目分类意:输入属性顺序是先查询设备分类和项目分类,再输入其他属性值。再输入其他属性值。 capital normal university 第 10 页 共 41 页 devadd 页面页面 功能: 添加设备的第二步,添加各个设备的序列号同时隐式的记录第一步添加的属性值. 实现方式:对第一步的所有传入参数进行获取,并以隐藏文本框的形式输出到表单中,隐藏文 本框名为参数名,值为参数的值,起到存储转发的目的,以备设备添加的第三步的使用.同时 根据添加设备的个数(count)采用循环,输出对应个数的文本框,命名规则为”xlh 当前序号”. devsnadd 页面页面 后台调用设备类的添加设备接口根据添加设备的个数 count 参数作循环添加设备,其中设备 序列号采用”xlh 当前序号”的参数值. 4.2 综合查询的实现综合查询的实现 4.2.1 综合查询查询表结构说明综合查询查询表结构说明 department 表:用来存放部门的基本信息 字段名字段类型字段长度字段说明 departmentidint4部门 id(种子) departmentnamenvarchar50部门名 superdepidint4上级部门 id devproperty 表:用来存放 device 表的字段信息。 devproperty 表存储设备所有属性的信息,根据这些信息来创建设备表。本系统的属性 可划分为四类: 普通属性; capital normal university 第 11 页 共 41 页 隐含属性; 特殊属性(包含两个子属性,且此两子属性有一一对应关系) ; 父属性。 在这四种属性中,隐含属性和特殊属性是系统默认添加的,在系统初始化时添加到库 里的,用来创建初始的设备表。这两种设备属性是不需要用户定义的,普通用户也不能 随意操作,普通属性和父属性是用户可以进行操作的属性,用户可以根据需要向库中添 加、修改和删除这两种设备属性。普通属性不具有子属性,但是它可以为父属性的子属 性,当它是其他属性的子属性时,它的 superpropertyid(父属性 id)不为-1,反之为- 1。 在设备的属性中引入子属性的概念是为了更好的描述设备所具有的特性,父属性的值 是由子属性的值来解释的,它自身没有值,它的值是由子属性的值所组成的。特殊属性 是一种特殊的父属性,它有实际的值,而它的值并没有什么意义,只是作为一个索引, 通过这个索引可以找到对应的子属性的值。 设备的隐含属性和特殊属性都与创建初始设备表有关,且这两类属性所包含的属性是事 先已经确定了的。 字段名字段类型字段长度字段说明 propertyidint4属性 id(种子列) propertynamenvarchar50字段名字 englishnamenvarchar50该属性的英文名字 datatypenvarchar50字段类型 datalengthint4字段长度 isnullboolean2该字段可否为空 isindexboolean2该字段是否是索引 isidentityboolean2该字段是否为种子列 propertytypeint4该属性的类型 devicetypeint4该属性描述的设备类型 superpropertyidint4父属性 id devsubproperty 表:用来存放一一对应的属性 devsubproperty 表是用来存放特殊属性所对应的子属性的每一组值,它存放的并不 是系统有哪几种特殊属性,而是所有这些特殊属性所包含的有一一对应关系的子属性的 值。系统中共有两类特殊属性,一类是设备分类属性,另一类是科研项目属性。 上表的 propertyid 字段对应 devproperty 表中的种子列(propertyid) ,由于特殊属 capital normal university 第 12 页 共 41 页 性在系统中作为默认属性进行处理,因而它们的 propertyid 的值之前已经确定,因而可 以用本表中的该列来区分这一组值是属于哪类特殊属性。当 propertyid 代表设备分类特 殊属性时,property1 表示设备分类名称,property2 表示设备分类号;当 propertyid 代表科研项目特殊属性时,property1 表示科研项目名称,property2 表示科研项目号。 此外,还有一点需要说明的是,在各类设备表中只有特殊属性字段,不包含特殊属性 的子属性字段,而设备表中特殊属性字段的值是用 devsubproperty 表的种子列 (subgroupid)表示的。 字段名字段类型字段长度字段说明 subgroupidint4子属性组 id propertyidint4属性 id property1nvarchar50属性 1 的值 property2nvarchar50属性 2 的值 devicex(x 是设备分类表对应于设备类别的设备类别 id 号)表。 devicex 的字段是根据设备属性表对应于设备类型的设备属性所创建的。形式为 devicex:x 是属性表中属性的 id,属性的数据类型,是否唯一性等等都由设备属性表确定。 device1数据类型 device2 数据类型 4.2.2 综合查询需求分析综合查询需求分析 第一,若用户具有多部门设备的操作权限操作,需要确定用户当前要操作的设备部 门。 第二,为了系统的安全,查询结果必须只显示用户当前部门和当前部门下级部门的 设备不能显示其他部门的设备。 第三,尽可能多的实现不同类型设备不同逻辑的查询问题。 第四,界面和数据显示进可能清晰和明确。 第五,对查询条件进行错误处理。 capital normal university 第 13 页 共 41 页 4.2.3 综合查询的工作流程综合查询的工作流程 1,确定要查询的设备类别 2,确定要查询的部门 3,配置查询条件 4,显示结果 流程图如下: capital normal university 第 14 页 共 41 页 capital normal university 第 15 页 共 41 页 4.2.4 综合查询问题的解决综合查询问题的解决 解决方法概述解决方法概述 第一,由于存放设备属性值的 devciex 表中的字段是不同设备所具有的属性所决定 的,所以不同类型设备具有不同属性字段,所以在进行综合查询时需要根据设备类型载 入不同的属性字段。而这展出的字段必须比较清晰,所以在条配置的界面中展示 devproperty 表设备属性的中文名称。 第二,综合查询是一个条件拼接的过程,需要进行条件的累加过程。同时,动态生 成的 devicex 表中的字段名称是 devicex 的形式,在给用户展示的时候又是一个设备属 性名的方式,所以必须将界面反映的内容映射成 decivex 的形式,此外,还需要对综合 查询的配置条件进行分析,使输入的条件正确。在条件的输入需要进行部门名称到部门 id 的转化,特殊子属性到父属性的转换问题。通过 condition 类的方式实现可以解决以 上问题。 第三,对于系统的安全问题,查询结果必须只显示用户当前部门和当前部门下级部 门的设备不能显示其他部门的设备。也可以通过 condition 类解决,在所有的条件完成 后采用“并”关系隐含限定上相应的部门条件即可。 第四,查询条件的语法检验问题。为减少错误的影响,应该尽量采取纠正错误,而 不是指出错误的错误处理机制。 第五,一次综合查询的结果有可能被其他几个模块引用,就要解决结果的可重用问 题,所以对查询条件采用 httpsession 对象实现。在查询中采用 httpsession 存储,在 需要时引用。 查询界面(查询界面(query)的设计)的设计 capital normal university 第 16 页 共 41 页 .1 需要获得的参数 type 参数:表示设备的类别 depid 参数:表示当前用户进行操作所采用的部门 querytype 参数:表示查询的类别,值为 1 表示查询进行设备的删除,修改,打印操作.2 表 示进行设备的发放 .2 query 表单包含元素及功能 1)数学关系菜单组 action=page.query?type=2 capital normal university 第 18 页 共 41 页 condition 类的设计类的设计 .1condition 的功能的功能 实现综合查询中算数条件的插入功能 实现综合查询中逻辑关系的插入功能 实现综合查询中条件关系的出错处理 实现综合查询结果数据的安全性处理:设备的删除,修改,打印工作时,综合查询的设备范 围是当前部门和其所有下级部门的设备,设备的发放时综合查询的设备范围是当前部门的 设备. 返回页面显示的查询条件字符串 .2condition 的成员对象和成员函数说明的成员对象和成员函数说明 成员对象与作用 string con 用于综合查询条件在 query 界面中 content 文本框中的显示,形式为“删除日期=-1” string searchcon 用于综合查询条件在数据库进行操作时的条 件,形式为“device8=-1” string last 最后一次输入的字符,可以为 null,manth (,),and 和 or,用于字符串的语法逻辑检 验 成员函数与作用 void clear() 将综合查询的条件清空,即 con 和 searchcon 字串的清空 void setmanthrealition() 对输入的数学关系进行处理 void setlogicalrealition() 对输入的逻辑关系进行处理 string getfieldnamebyenglishname() 进行属性英文标示到“devicex”字串的转 换 void setdep() 设置查询设备为当前部门和下级部门设备 的条件 void setpresentdep() 设置查询设备为当前部门设备的条件 string tostring() 返回显示需要的条件 capital normal university 第 19 页 共 41 页 .3 综合查询中错误逻辑的处理综合查询中错误逻辑的处理 考虑到查询条件的复杂程度不是很高,同时为提高查询条件的正确率,在实现机制 上尽量采用纠正,而不是指出错误的处理方法,在条件的处理上没有采用语法分析器, 而是采用直接过滤不可能出现的语法结构,对可能出现的语法结构进行检验的方式实现。 通过记录最后一个输入(last)的值,决定当前输入是否加入到综合查询的条件中去。 此种方法可以直接过滤掉几乎所以输入错误,但不能解决判断括号是否匹配的问题,为了 全面纠正错误,在查询页面(query)采用 javascript 脚本对综合条件的显示文本框 (content)进行括号的匹配检验.可以直接过滤的语法如下: 最后输入(last)当前输入语法形式 null )null ) nullornull or nullandnull and ( )() (and ( and (or( or )()( and)and ) andorand or andandand and or)or ) ororor or or andor and manth(manth ( manthmanthmanth manth 其中“manth manth”的形式,为了用户输入方便,采用后台添加 and 的方式,使语法为” “manth and manth”的形式. 此种方法可以直接过滤掉几乎所以输入错误,但不能解决判断括号是否匹配的问题,这个 问题的解决方法是在查询页面 query 采用 javascript 脚本对文本区 content 进行括号 的匹配检验. capital normal university 第 20 页 共 41 页 综合查询结果综合查询结果(result)界面界面 .1 result 界面需要获得的参数说明界面需要获得的参数说明 type 参数:表示设备的类别 depid 参数:表示当前用户进行操作所采用的部门 querytype 参数:表示查询的类别,值为 1 表示查询进行设备的删除,修改,打印操作.2 表 示进行设备的发放 .2result 界面元素构成界面元素构成 1)模板连接和用户自定义模板连接 在连接中提供模板 id(tempid)参数,用户自定义模板 id 规定为-1 在用户定制用户自 定义模板之后显示“用户自定义模板” 链接,用户点击不同的链接确定不同的设备属 性组以备查询结果的模板格式输出. 2)编辑自定义模板 连接至建立用户自定义模板界面,提供用户建立自定义模板的功能。 3)综合查询结果集 包括表头和表信息部分。表头通过对模板属性 id 组进行属性 id 到属性的名转换实现。 结果集是根据综合查询的 vector 类对象和模板属性 id 组输出对应的设备对应属性实现.包 括领用单位的 id 到名称转换,出厂日期,购买日期的“年/月/日”格式显示,特殊属性 子属性的输出等操作。 4)修改,删除,打印,状态修改链接 根据用户的权限显示特定的链接,以备后续操作 capital normal university 第 21 页 共 41 页 .3result 界面界面 4.3 打印模板打印模板 4.3.1 打印模板的数据库设计打印模板的数据库设计 template 表 作用:存放模板 id,模板名,模板所适用的设备类型及模板是否为默认模板,为保证模板 id 的唯一性采用自动增长字段定义 templateid 属性. 字段名字段类型字段长度字段说明 templateidint4模板 id,字动增长 templatenamenvarchar50模板名称 templatetypeint4模板适应设备类型 isdefaultint4是否默认模板 templateproperty 表 作用:存放模板 id 与模板属性所具有的属性的 id 的对应关系和属性在打印输出的时候的 顺序 字段名字段类型字段长度字段说明 templateidint4模板 id propertyidint4属性 id ordernumint4属性输出的顺序号 4.3.2 对数据库操作设计对数据库操作设计 对模板及模板属性的操作通过 databaseoperation 包的 templateopearation 类实现。其功 能包括在数据库层实现模板的建立,模板的删除,特定模板内容的显示,显示某一类型 capital normal university 第 22 页 共 41 页 模板组等等功能。函数与实现功能如下: 函数名实现功能 createtemplate建立模板 addtemplateattribute添加模板属性字段 gettemplateid根据模 ban 名和模板类型,返回模板 id getdefaulttemplateid取得 type 类型模板的默认模板 id deletetemplat删除模板 deletetemplateattribute根据模板 id 删除对应属性 getalltempname取得对应类型的所有模板名 getalltempattributeid取得对应模板 id 的属性 id 数组 gettempstate是否是默认模板 4.3.2 模板的类封装(模板的类封装(temp) common 包中的 temp 实现模板操作的类封装,作为系统三层模式中的中间层。其功能包括 模板的建立,模板的删除,特定模板内容的显示,显示某一类型模板组等等功能。 函数名实现功能 createtemplate建立模板 addtemplateattribute添加模板属性字段 gettemplateid根据模 ban 名和模板类型,返回模板 id getdefaulttemplateid取得 type 类型模板的默认模板 id deletetemplate删除模板 deletetemplateattribute根据模板 id 删除对应属性 getalltempname取得对应类型的所有模板名 getalltempattributeid取得对应模板 id 的属性 id 数组 gettempstate是否是默认模板 4.3.3 模板界面的设计模板界面的设计 具体页面设计具体页面设计 .1 建立模板的界面设计建立模板的界面设计 .1.1 建立模板需要三个步骤:建立模板需要三个步骤: 第一,填写要建立的模板名称,选择其所包含的字段选择模板是否是默认默板,同时隐 含传递部门 id 和设备类型。 第二,通过 temp 类对象存储模板名称和是否默认模板隐含传递所建立的模板的 id 部门 capital normal university 第 23 页 共 41 页 id 和设备类型,同时实现所选择的字段在打印输出时的先后顺序输入区的显示界 面。 第三,根据传递的模板 id,通过 temp 类对象向对应的模板中添加属性和属性顺序。 流程图如下: capital normal university 第 24 页 共 41 页 .1.2 建立模板中问题的解决建立模板中问题的解决 第一,设备属性包括默认属性,普通属性,特殊属性和父属性。在显示选择模板的属性 时候不能显示父属性,否则会造成模板属性的不唯一性。 第二,不同设备具有不同的属性,所以建立的模板只能对应某一类型设备。为了方便处 理模板类型与当前使用的设备类型一致。 第三,默认模板是默认使用的模板,所以其必须具有唯一性。处理的时候采用了覆盖的 方式,即在当前设备类型默认模板存在的情况下在建立默认模板则删除原默认模 板采用新模板。 第四,各个类型的设备属性都是动态的,所以在判断选择了几个属性及选择属性的具体 内容比较难判断。所以采用捕获所以参数然后进行筛选的筛选法。为了正确的选 择需要内容。必须对属性参数的传递上进行特殊标记。 第五,界面必须展示属性的中文名称以便于用户的使用。 第六,模板名称的中文化的解决。 .1.3 具体界面设计具体界面设计 creattemplate 类的 get 方法实现建立模板的第一部操作:填写要建立的模板名称,选择 其所包含的字段选择模板是否是默认模板同时隐含传递部门 id 和设备类 型。 capital normal university 第 25 页 共 41 页 creattemplate 类的 post 方法实现建立模板中的第二部分操作:对选择的属性,添加在 输出时的顺序。 addtempattribute 类实现向数据库中添加模板数据的操作。 .2 删除模板的界面设计删除模板的界面设计 .2.1 删除模板的过程删除模板的过程 第一,显示当前类型设备类型的所有模板。给用户删除特定模板和显示特定模板具体内 容的操作按钮。 第二,若用户选择删除则删除对应模板,若用户选择显示则显示对应模板的名称,是否 默认模板和模板包含的属性字段。 .1 删除模板的页面设

温馨提示

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

评论

0/150

提交评论