前两天有朋友咨询用VB进行Structure数据抽取的问题,我建议他看看Tribon自带的Outfitting List.xls,这里面包含了Tribon公司提供的用VBA进行数据抽取的源代码。Outfitting List.xls的快捷方式位于开始菜单\Tribon M3\Outfitting。打开如下图,Excel 2007中点击开发工具-Visual Basic即可查看源代码(Excel 2003查看VBA源代码的方式有所不同,或者你会遇到没有“开发工具”,或者宏没有启动等等问题,请用搜索引擎,不在本文讨论之列。)
UserForm分别对应Excel界面上的几个按钮,双击按钮即可查看到该事件下的代码。
使用Outfitting List.xls不仅可以直接获得VBA代码,对于使用VB开发数据抽取应用来说非常方便,而且通过查看其中的代码,也可以学习Tribon数据抽取的脉络,例如下面节选出来的代码,显示了Structure数据抽取过程中,先获得Structure的Part数量,然后循环Part获得每个Part的Pos号。
1: 'Extract the structure
2: DexStr = "STRU.ITEM(" + Chr$(39) + ModelName + Chr$(39) + ").GROUP(1)."
4: DexStr_1 = DexStr + "NPART"
5: Extract.DoDataExtraction DexStr_1
6: Val = Extract.GetValue
7: If TypeName(Val) = "Long" Then
8: n = Val
9: End If
10:
11: Dim PosNo As String
12: For I = 1 To n
13: DexStr_1 = DexStr + "PART(" + Trim(Str(I)) + ").POS"
14: Extract.DoDataExtraction DexStr_1
15: Val = Extract.GetValue
16: PosNo = ""
17: If TypeName(Val) = "String" Then
18: PosNo = Val
19: End If
基本上VB程序可以直接拷贝这里面的代码使用,加上VB简易的拖拽生成界面的特点,才促使现在仍有人使用VB来进行开发。
与Vitesse数据抽取相比,速度比较慢,数据抽取代码也不能被高级Vitesse程序调用。VB较弱的面向对象特性,也不能很好的封装数据抽取方法,使得抽取字符串裸露在程序中。