3-2 统计知识库的构建
统计知识库是一个定义分类统计BOM的表结构并筛选BOM数据内容的规则集合。在知识库里存储的每一条知识规则,代表了一个类别的清单结构和数据查询方式。用户在统计知识库中每建立一个知识规则需要完成两个方面的任务:定义统计表的结构;确定内容查询规则。与模板相类似, BOM_ IMS中把统计分类知识看成一个类(Classified_Rule) ,每一个知识规则就是这个类的一个对象。Classified _Rule的数据结构描述如下:
Type
Classified_Rule =Class
Selected_FieldNames: Array[ 0. . 100 ]of String;
/ /定义表结构的字段名称
Selected_FieldType: Array[ 0. . 100 ]of String;
/ /定义表结构的字段类型
Selected_FieldWidth: Array[ 0. . 100 ]of Integer;
/ /定义表结构的字段宽度
Selected_Rule: Array[ 0. . 500 ]of Integer; /3 定义规则索引序列,选
中某个规则,则将该规则的索引存入该数组3 /
Procedure rule1; / /用户自定义的内容筛选规则
Procedure rule2;
⋯
End;
⋯
For i: = 0 to 500 do
Begin
Case Selected_Rule[ i]of
1: Procedure rule1 ( ) ;
/ /当定义规则索引序列存有规则对应索引号时,执行该规则
2: Procedure rule2 ( ) ;
⋯
End;
End; ⋯
图3和图4是统计知识库运行界面演示。图3为查询统计表的结构的制定,图4为内容查询规则的制定。

3-3 基于XML格式的统一数据交换结构
XML ( eXtensible Markup Language, 可扩展标志语言) 是W3C推荐的Web上数据表示和交换标准。XML 作为数据规范具有可扩展性、灵活性、独立于具体应用程序的自描述性、实现方便等优点。同时,树型结构是XML对数据的天然组织形式。因此,用XML数据描述产品BOM的树型特征,是一种非常自然和方便的选择。在BOM_ IMS系统中,正是使用XML文档来装载产品的BOM信息,作为BOM_ IMS与CAPP等应用程序之间数据传递的媒介,实现BOM信息的生成与传递。
BOM反映了产品及其零部件的装配层次关系,同时又包含了对有关零部件的自然属性和制造信息的描述。其存储结构是一种典型的树状结构,如图5所示。

BOM_ IMS使用XML作为数据输出工具,首先编写了一个BEMS_BOMTree. dtd的DTD (Document Type Definition,文档类型定义)文件,采用DOM (Document ObjectModel,文档对象模型)结合Delphi编程,从而实现数据从数据库中导出生成XML文件。在实现层,则采用XSL分析XML文件,取出数据后结合Delphi 7 编程, 保存到对应的字段中。文中定义的BEMS_BOMTree.dtd主要结构如下:
< ? xml version = " 1. 0" encoding = " GB2312" ? >
< ! ElementBEMS_BOMTree (BOM + ) >
< ! Element Bom ( Product + ) 3 >
< ! Element Product ( ( Product_ ID, Product_Picture ID, Product_Name,
Product_Type, ) | ( Product | Part) 3 ) 3 >
< ! Element Part (NO, DWGNO, Descrip tion, Quantity, Material, UWT,
TWT, Equivalent, Remark) 3 >
< ! Element Product_ ID ( #PCDATA) >
< ! Element Product_Picture ID ( #PCDATA) >
< ! Element Product_Name ( #PCDATA) >
< ! Element Product_Type ( #PCDATA) >
< ! Element NO ( #PCDATA) >
< ! Element DWGNO ( #PCDATA) >
< ! Element Descrip tion ( #PCDATA) >
< ! Element Quantity ( #PCDATA) >
< ! ElementMaterial ( #PCDATA) >
< ! Element Remark ( #PCDATA) >
下面是一个实例,以XML书写的BOM结构树导出文件的一部分如下:
<BOM >
< Product >
< Product_ ID > GOR21000 < /Product_ ID >
< Product_Picture ID > GOR21000 < /Product_Picture ID >
< Product_Name > GOR21000 < /Product_Name >
< Product_Type > GOR21000 < /Product_Type >
< Part >
<NO > 1 < /NO >
<DWGNO > SWG( I) 200 l000 < /DWGNO >
<Descrip tion >小车< /Descrip tion >
<Quantity > 1 < /Quantity >
<Material >铸钢< /Material >
< ReMark >可用< /ReMark >
< /Part >
⋯
< /Product >
< /BOM >
图6为数据在产品数据管理系统中的运用实例。一方面形成了左边的产品结构树;另一方面选择零部件节点,出现其对应的产品信息。

4 应用实例
在开发过程中,笔者遵循标准化要求实现操作界面方便友好,并提供了强大的在线帮助功能。此外,系统经过反复调试和实际运用,具有很好的稳定性和容错性。图7为使用已有的模板来构建BOM文件。图8为在AutoCAD 2000中自动绘表程序通过调用数据库中BOM数据绘制出产品明细表。限于篇幅,其余的操作界面和运行情况从略。

5 结论
BOM_ IMS具有较强的通用性和实用性。其模板与统计知识库的运用完善了不同类型BOM的制定方法,提高了企业的工作效率。通过XML技术实现的数据导出功能,方便地实现了多种应用系统之间的资源共享与相互集成。BOM_ IMS已在某些机械企业推广应用,成为企业内部各应用系统间联系的纽带。