bs模式的设备管理系统内容摘要:

程,而不改变设备的结构。 对于添加的处理,首先构造设备类的对象 ,根据设备类的对象获得当前设备的全部属性的英文标识,以此作为依据与添加显示页面中对应的属性进行匹配,将取得的对应的属性值添加到对应的设备属性中;将填充好的设备类的对象作为参数传递到添加设备信息的方法中以此来完成设备信息的添加。 第二 ,设备信息的添加不包括设备 ID、领用单位及删除日期的添加。 设备 ID 由系统自动生成,不在页面进行显示; 领用单位由系统自动添加为用户选择部门时确定的部门 ID; 删除日期统一添加为 1,不在页面进行显示。 第三 ,在添加设备信息时需确定其特殊子属性的信息,由于设备的特殊子属性是成对记录的且有相对固定的范围,需通过查询获得。 为了实现该功能在添加设备信息页面提供相关的查询链接。 第四 ,添加设备信息过程中存在类似于国别、制造厂等属性,此类属性需要系统提供下拉列表显示可选择的范围。 当选项中没有对应的属性值用户可自行录入,并且可将用户自定义的选项添加到下拉列表中以供下次使用。 第五 ,.对于出厂日期和购买日期需要将“年 /月 /日”的输入形式转过为数据库存储时的长整型数据形式。 第六 ,批量添 加的实现 : 第一步,添加除了设备 ID,领用单位,删除日期,设备序列号的其他属性和添加设备的数量。 第二步,添加各个设备的序列号同时隐式的记录第一步添加的属性值 .在提交的时候发送所有属性。 第三步,添加设备 .流程如下: Capital Normal University 第 9 页 共 41 页 第七 ,添加设备信息的同时需要记录操作日志,日志内容包括添加设备信息的 用户ID、设备所属部门 ID、 批准该用户操作的部门 ID、 操作类型、操作设备ID 以及具体操作名称。 用户 ID从 session 中获得;设备所属部门 ID即当前部门 ID; 获得批准该用户操 作的部门 ID 通过当前部门 ID 及用户所在部门 ID调用部门类方法确定;设备的操作类型均为 1;操作设备 ID通过设备添加函数返回;具体操作名称为“设备添加”。 Capital Normal University 第 10 页 共 41 页 添加设备的界面设计 页面 功 能 : 添加设备的第一步操作 : 添加除了设备 ID,领用单位 ,删除日期 ,设备序列号的其他属性和添加设备的数量 实现方式:将设备类型 type 作为隐含文本框,根据部门参数 depid 取出对应的部门名称以只读文本框的方式体现。 对于制造厂,设备状态和国别字段从选项表 (Option)中取出对应属性值的组,以下拉菜单的形式显示同时提供输入新值的文本框。 对于特殊属性设备分类和项目分类则提供子属性经费项目 (kyxm),科研号 (kyh),分类名称 (sbfl)和分类号 (flh)文本框并且提供查询连接,通过查询方式添加其子属性的文本框经费项目 (kyxm),科研号 (kyh),分类名称 (sbfl)和分类号 (flh)进行赋值。 在表单得元素的命名方式上采用与设备属性英语标识相同的原则。 制造厂。 设备状态,国别文本框以“英文标识 + txt”命名 .添加个数以“ count”命名。 为区分属性是否可为空,在不能 为空的属性的表单的对象前页面输出“ (*)”。 注 意:输入属性顺序是先查询设备分类和项目分类 , 再输入其他属性值。 Capital Normal University 第 11 页 共 41 页 devAdd 页面 功能 : 添加设备的第二步 ,添加各个设备的序列号同时隐式的记录第一步添加的属性值 . 实现方式 :对第一步的所有传入参数进行获取 ,并以隐藏文本框的形式输出到表单中 ,隐藏文本框名为参数名 ,值为参数的值 ,起到存储转发的目的 ,以备设备添加的第三步的使用 .同时根据添加设备的个数 (count)采用循环 ,输出对应个数的文本框 ,命名规则为 ”xlh 当前序号 ”. devSNAdd 页面 后台调用设备类的添加设备接口根据添加设备的个数 count 参数作循环添加设备 ,其中设备序列号采用 ”xlh当前序号 ”的参数值 . 综合查询的实现 综合查询查询表结构说明 Department 表:用来存放部门的基本信息 字段名 字段类型 字段长度 字段说明 departmentID Int 4 部门 ID(种子 ) departmentName Nvarchar 50 部门名 superdepID Int 4 上级部门 ID DevProperty 表:用来 存放 Device 表的字段信息。 DevProperty 表存储设备所有属性的信息,根据这些信息来创建设备表。 本系统的属性可划分为四类: Capital Normal University 第 12 页 共 41 页  普通属性;  隐含属性;  特殊属性(包含两个子属性,且此两子属性有一一对应关系);  父属性。 在这四种属性中,隐含属性和特殊属性是系统默认添加的,在系统初始化时添加到库里的,用来创建初始的设备表。 这两种设备属性是不需要用户定义的,普通用户也不能随意操作,普通属性和父属性是用户可以进行操作的属性,用户可以根据需要向库中添加、修改和删除这两种设备属性。 普通属性不具有子属性,但是它可 以为父属性的子属性,当它是其他属性的子属性时,它的 superpropertyID(父属性 ID)不为 1,反之为 1。 在设备的属性中引入子属性的概念是为了更好的描述设备所具有的特性,父属性的值是由子属性的值来解释的,它自身没有值,它的值是由子属性的值所组成的。 特殊属性是一种特殊的父属性,它有实际的值,而它的值并没有什么意义,只是作为一个索引,通过这个索引可以找到对应的子属性的值。 设备的隐含属性和特殊属性都与创建初始设备表有关,且这两类属性所包含的属性是事先已经确定了的。 字段名 字段类型 字段长度 字段说明 propertyID Int 4 属性 ID(种子列) propertyname Nvarchar 50 字段名字 englishname Nvarchar 50 该属性的英文名字 datatype Nvarchar 50 字段类型 dataLength Int 4 字段长度 isNull Boolean 2 该字段可否为空 isIndex Boolean 2 该字段是否是索引 isIdentity Boolean 2 该字段是否为种子列 propertytype Int 4 该属 性的类型 devicetype Int 4 该属性描述的设备类型 superpropertyID int 4 父属性 ID DevSubProperty 表:用来存放一一对应的属性 DevSubProperty 表是用来存放特殊属性所对应的子属性的每一组值,它存放的并不是系统有哪几种特殊属性,而是所有这些特殊属性所包含的有一一对应关系的子属性的值。 系统中共有两类特殊属性,一类是设备分类属性,另一类是科研项目属性。 上表的 propertyID 字段对应 DevProperty 表中的种子列( propertyID),由于特殊属 Capital Normal University 第 13 页 共 41 页 性在系统中作为默认属性进行处理,因而它们的 propertyID 的值之前已经确定,因而可以用本表中的该列来区分这一组值是属于哪类特殊属性。 当 propertyID 代表设备分类特殊属性时, property1 表示设备分类名称, property2 表示设备分类号;当 propertyID代表科研项目特殊属性时, property1 表示科研项目名称, property2 表示科研项目号。 此外,还有一点需要说明的是,在各类设备表中只有特殊属性字段,不包含特殊属性的子属性字段,而设备表中特殊属性字段的值是用 DevSubProperty 表的种子列( subgroupID)表示的。 字段名 字段类型 字段长度 字段说明 subgroupID int 4 子属性组 ID propertyID int 4 属性 ID property1 nvarchar 50 属性 1 的值 property2 nvarchar 50 属性 2 的值 DeviceX( X 是设备分类表对应于设备类别的设备类别 ID 号)表。 DeviceX 的字段是根据设备属性表对应于设备类型的设备属性所创建的。 形式为 deviceX:X 是属性表中属性的 ID,属性 的数据类型 ,是否唯一性等等都由设备属性表确定。 Device1 数据类型 Device2 数据类型 …… .. …………… .. 综合查询需求分析 第一, 若用户具有多部门设备的操作权限操作,需要确定用户当前要操作的设备部门。 第二, 为了系统的安全,查询结果必须只显示用户当前部门和当前部门下级部门的设备不能显示其他部门的设备。 第三, 尽可能多的实现不同类型设备不同逻辑的查询问题。 第四, 界面和数据显示进可能清晰和明确。 第五, 对查询条件进行错误处 理。 综合查询的工作流程 1, 确定要查询的设备类别 Capital Normal University 第 14 页 共 41 页 2, 确定要查询的部门 3, 配置查询条件 4, 显示结果 流程图如下: Capital Normal University 第 15 页 共 41 页 综合查询问题的解决 解决方法概述 第一,由于存放设备属性值的 devcieX 表中的字段是不同设备所具有的属性所决定的,所以不同类型设备具有不同属性字段,所以在进行综合查询时需要根据设备类型载入不同的属性字段。 而这展出的字段必须比较清晰,所以在条配置的界面中展示DevProperty 表设备属性的中文名称。 第二,综合查询是一个条件拼接的过程,需要进行条件的累加过程。 同时,动态生成的 DeviceX 表中的字段名称是 deviceX 的形式,在给用户展示的时候又是一个设备属性名的方式,所以必须将界面反映的内容映射成 deciveX 的形式,此外,还需要对综合查询的配置条件进行分析,使输入的条件正确。 在条件的输入需要进行部门名称到部门 ID 的转化,特殊子属性到父属性的转换问题。 通过 Condition 类的方式实现可以解决以上问题。 第三,对于系统的安全问题,查询结果必须只显示用户当前部门和当前部门下级部门的设备不能显示其他部门的设备。 也可以通过 Condition 类解决,在所有的条件完 成后采用“并”关系隐含限定上相应的部门条件即可。 第四,查询条件的语法检验问题。 为减少错误的影响,应该尽量采取纠正错误,而不是指出错误的错误处理机制。 第五,一次综合查询的结果有可能被其他几个模块引用,就要解决结果的可重用问题,所以对查询条件采用 HttpSession 对象实现。 在查询中采用 HttpSession 存储,在需要时引用。 查询界面( query)的设计 Capital Normal University 第 16 页 共 41 页 需要获得的参数 type 参数 :表示设备的类别 depid 参数 :表示当前用户进行操作所采用的部门 querytype参数 :表示查询的类别 ,值为 1表示查询进行设备的删除 ,修改 ,打印操作 .2表示进行设备的发放 query 表单包含元素及功能 1)数学关系菜单组 action=?type=2amp。 depid=1amp。 value=manthamp。 querytype=1 代表 query 页进行数学关系的处理动作 attribute 下拉菜单(位置为 ” 选择设备属性 ” 之后)根据设备类型(参数名为type)在 query 界面载入的时候动态的对应于 type 类型设备的隐含属 性 ,普通属性 ,和特殊属性的左右子属性 ,将 “属性中文名” 作为 下拉菜单的选项 ,将“ 属性英文标识 属性类型 @属性中文名 +x” 作为 菜单的选项名 ,其中 x 为 1, 2, 3。 1代表隐含属性和普通属性 ,2 代表特殊属性的左子属性 ,3代表特殊属性的右子属性。 math 下拉菜单 (位置“数学关系”之后 ) 静态的将数学关系作为选项。 菜单的选项名 下拉菜单的选项 Capital Normal University 第 17 页 共 41 页 = = != != LIKE LIKE value1 文本框 (位置“设备属性值 ” 之后 )功能是用户选择 attribute 下拉菜单和 math下拉菜单下拉菜单之后通过键盘输入对应的值 2) 逻辑表单组 实。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。