一种ASP.NET环境下面向信息统计的动态树型目录的实现

2010-07-25 08:43刘暐赵嵩正殷茗
微型电脑应用 2010年2期
关键词:树型单件控件

刘暐,赵嵩正,殷茗

0 引 言

树型目录用于显示按照树型结构进行组织的数据,其层次清晰,操作方便的优点使之在计算机中的文件系统(Windows中的资源管理器)、企业或公司的组成结构等方面得到了广泛的应用。近年来,随着网络技术的发展与WEB应用程序的广泛使用,树型目录在功能和意义上都有了进一步的拓展和延伸,例如应用于网页导航的菜单目录树,用于上传文档管理的文档目录树,以及面向资产管理的编码目录树和面向权限控制的功能目录树[1,2]。上述的树型目录大多是针对信息的组织与管理的,本文结合笔者参与开发的某大型航空产品质量评估系统,介绍一种面向信息统计的树型目录及其实现方法,该树型目录不仅可以自顶向下地组织信息,实现信息导航,而且可以自底向上地进行动态的信息统计与归集,方便掌握总体及各层级信息,利于管理与决策。

1 ASP.NET访问数据库的基本原理

ASP.NET是微软推出的一项基于Microsoft.Net平台的新技术,是建立、管理、部署 Web应用程序最佳的平台。ASP.NET拥有对多种高级语言的支持、丰富的类库、良好的可扩展性和先进的数据库存取模式等众多优点[3]。ASP.NET的数据访问机制是利用ADO. NET访问数据库,ADO.NET 的整体体系结构如图1所示。ADO. NET访问数据库是一种非连接的数据库访问机制。用户通过 ASP.NET程序访问数据库时,并不是始终与数据库保持着连接,而是请求服务器时短时间打开连接读取整个数据库, 然后在内存中建立一个映像,即生成数据集,用户再在连接关闭的情况下操作数据集,从而实现了断开方式数据库连接和内存管理自动化,极大节约了连接资源,使网络用户能快速访问数据库服务器。

DataSet组件是 ADO. NET开发环境的核心,类似一个保存在内存中的微型数据库,表示组成数据表的一组相关数据、约束规则和表关系信息。其中 DataRelation是代表DataSet中两个DataTable对象之间的父子关系,其中,父表相当于关系列为主键的表,子表相当于关系列为外键的表。DataRelation通过具有相同DataType的DataCollumn对象,把两个DataTable关联起来,将建立好的关系添加到DataSet中,便可导航并从相关的表中检索数据[4]。以下是 C#中的实现方法:

DataRelation dataRelation = dataset.Relations.Add("RelationName", dcParent, dcChild )

针对层次型数据引用DataRelation对象,可以不需要复杂的同步代码就能方便地定位有关系的数据,通过在客户端执行数据完整性(data-integrity)验证,可以减少一次数据库调用中检索所有父表和子表数据所需的网络来回,提高应用程序的运行速度,节省开发时间。

图1 ADO.NET 的整体体系结构

2 TreeView控件生成动态树型目录

TreeView控件是一种开发树型目录的工具。目前,许多 Windows应用程序开发工具如:PowerBuilder,VB,Delphi,都提供了一个功能强大的树型控件TreeView,然而Web应用程序开发工具还不够成熟,大多没有提供直接可用的TreeView控件,在网页中实现目录树,大多使用HTML或javascript语言,根据事先需要描述的数据结构来生成静态目录树[5]。在ASP.NET中虽然本身没有提供TreeView控件,但ASP.NET所具有的可扩展性使其可以引用第三方控件,微软提供的Internet Explorer Web Controls (其中包含用于网页的TreeView、Toolbar、Tabstrip等控件),就是一种方便开发人员结合数据库实现动态树型目录的控件。

TreeView中每个节点,可能包含称为子节点的其他节点。父节点或包含子节点的节点,可以展开或折叠的方式显示。TreeView控件的一个主要属性,是Nodes,Nodes属性包含树视图中的顶级节点列表。欲使用TreeView控件生成动态的树型目录,需采用编程的方式为树控件添加子节点。在c#中实现为TreeView1添加子节点可以使用Nodes属性的Add方法实现,如下所示:

TreeNode newNode = new TreeNode();

TreeView1.Nodes.Add(newNode);

如果是为树控件中某个节点添加子节点,此处的TreeView1应改为相应的节点。由于TreeView控件是以层次结构的方式显示节点,在添加节点时就必须注意谁是它的父节点。

3 面向信息统计的质量评估树型目录及其实现

面向信息统计的质量评估树型目录,是以某大型航空产品的质量评估系统为背景,该系统是为综合评估单件产品的制造过程质量,实现产品质量精细化管理而设计的。系统要求实现对单件产品从每一项关重件到零件、组件、部件、段件及最终产品的装配过程跟踪和质量状态、质量指标的动态跟踪管理。

质量评分目录树是质量评估系统中,实现单件产品的质量信息统计和归集的动态树型目录。单件产品的质量,由影响该产品质量的关重件(QBOM)的质量所构成,关重件的质量可以通过与其相关的各类质量要素如:代料、生产保留和质量问题等因素来衡量。其中,由于各关重件的重要度不同,各类因素的影响产品质量的程度也不一样,因此需要为各关重件以及各项因素设置权重。此外,质量因素还可以继续细化到不同的影响控制参数,通过控制参数的加权累计,实现各项质量因素下某关重件质量的具体量化,进而最终实现单件产品的具体量化。质量评估的计算方法如下所示:

其中,D表示单件产品中关重件的质量减分,Q表示单件产品的制造过程质量,Kij表示第i种因素出现第j种控制参数的次数,Wij表示第i种因素出现第j种控制参数的权重,ui表示第i种因素的权重, ψ表示关重件在整个产品的树状结构中所占的权重,F表示单件产品的质量满分,质量评估权重及满分的确定主要是由专家根据一定的评估标准确定。

质量评分树型目录的根节点代表单件产品,对应的分值为该件产品的制造过程质量,树型目录的各子节点代表影响该产品质量的关重件,右边标签显示的分值为对应关重件的质量扣分,质量评估得分均由质量评估算法计算得出。质量评估树型目录上各节点显示的质量得分,代表的是该节点加权后质量得分与该节点下所有子部件或零件综合加权得分之和。这种自顶向下显示单件产品QBOM结构并自底向上实现质量信息量化评估的质量评分目录树,不仅可以方便直观地显示单件产品的关重件的树状结构目录及其对应的质量单据信息,更重要的是可以在树状结构目录直接反映出相应节点的质量评估得分。层次清晰的质量评分树型目录,对产品的各个因素对单件产品的影响程度进行具体的量化,使用户能够迅速定位单件产品的质量状况及关键质量问题,同时,还可以通过展开其中某节点,查看其子部件或零件的质量评估得分,或者单击某个节点在主页面中查看相应该节点的评估得分依据及详细单据信息,便于用户追踪影响单件产品质量的零部件和质量问题单据,从而为航空企业提高产品质量、采取质量改进措施等提供决策依据。

质量评分树型目录涉及的数据库设计如图2所示:

图2 数据库设计

以下是笔者编制的一个显示质量评分树型目录的主要过程AddTreeNodes(C#),建树的基本思路是从根节点开始,递归调用显示子树,同时从末节点开始,逐级加权累计返回质量评估得分。

public double AddTreeNodes(DataRow[] dataRows,DataRelation dataRel,TreeNode treenode)

{//带有返回值的深度遍历的递归算法,显示质量评分树形目录

TreeNode tmpNd;

DataRow[] drChildren;

i = ExcuteSP(strPartNo); //调用存储过程得到部件的自身质量得分

k = AddTreeNodes(drChildren, dataRel, tmpNd);//返回该部件所有子部件的加权和值

在装入网页时,初始化树型目录,建立数据集,并为数据集添加关系,通过调用AddTreeNodes方法来实现具有信息统计功能的质量评估树型目录。

// 调用的递归算法组装子节点,GetChildRows方法为DataTable 中的每个子级 DataRelation返回子级 DataRow对象。

AddTreeNodes (dr.GetChildRows(dataRelation), dr,

程序执行,显示的质量评分树型目录如图3所示。

图3 产品的质量评分树型层次图

4 结束语

本文结合某大型航空产品质量评估系统,研究了ASP.NET中一种面向信息统计的动态树型目录,深入探讨了集成信息统计功能的产品质量评分树型目录的实现方法。运行结果表明,该树型目录能够直观量化地反映出产品制造过程中各环节的质量状况,利于监督并采取质量改进措施,对提高产品质量,辅助决策具有重要应用价值。

[1] Freeman R, Yin H. Tree view self-organisation of web content[J] . Neurocomputing,2005, 63: 415-446.

[2] 周淑琴,赵远东.树型图及其在ASP.NET程序开发中的应用[J] . 计算机应用研究,2004,(9):233-235.

[3] Bellinaso M, Gaster B, Hoffman K. Fast Track ASP.NET C# Edition[M] . Wrox Press. 2002.

[4] Otey M, Otey D. ADO.NET The Complete Reference[M] .Osborne McGraw-Hill, 2003.

[5] 郭兆胜,张登荣. ASP.NeT环境下树状图的研究与实现[J] .计算机工程与设计,2005,(2).

猜你喜欢
树型单件控件
勘 误
一种快速养成的柞树树型—压干树型
现场电子音乐与单件乐器结合时的功能及其实现方式
苹果产量要提高 树型选择很重要——访山西农业大学园艺学院果树系主任、副教授张鹏飞
西门子推出紧凑型视觉单件分离器
基于.net的用户定义验证控件的应用分析
关于.net控件数组的探讨
垂直层3D打印新技术助力波音制造单件大尺寸工装
基于树型结构的防空力量配属方案生成模型研究
同中求异