PDM/CDM中进行搜索
Option Explicit
ValidationMode = True
InteractiveMode = im_Batch
Dim mdl '当前model
'获取当前活动model
Set mdl = ActiveModel
dim isCdm
isCdm=0
If (mdl Is Nothing) Then
MsgBox "There is no current Model "
ElseIf mdl.IsKindOf(PdCDM.cls_Model) or mdl.IsKindOf(PdPDM.cls_Model) Then
If mdl.IsKindOf(PdCDM.cls_Model) Then
isCdm=1
end if
If mdl.IsKindOf(PdPDM.cls_Model) Then
isCdm=0
end if
dim search
search= inputbox("输入要在PDM/CDM查找的字符,如要进行模糊查找,以%开始")
search=lcase(search)
ProcessFolder mdl,isCdm
Else
MsgBox "文件类型不支持"
End If
Private sub ProcessFolder(folder,isCdm)
dim tab
dim col
dim collect
if isCdm=0 then
set collect=folder.tables
else
set collect=folder.Entities
end if
for each tab in collect
if not tab.isShortcut then
if lcase(tab.code)=search or (mid(search,1,1)="%" and instr(lcase(tab.code),mid(search,2)) >0) then
output "[表]: "+ folder.parent.name+"--->"+folder.name+"--->"+tab.name
end if
dim subcollect
if isCdm=1 then
set subcollect=tab.Attributes
else
set subcollect=tab.columns
end if
for each col in subcollect
if lcase(col.code)=search or (mid(search,1,1)="%" and instr(lcase(col.code),mid(search,2)) >0) then
output "[字段]: "+folder.parent.name+"--->"+folder.name+"--->"+tab.name+"--->"+col.name
end if
next
end if
next
'递归遍历子文件夹
Dim f '子文件夹
For Each f In folder.Packages
if not f.IsShortcut then
ProcessFolder f, isCdm
end if
Next
end sub