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

  

转载于:https://www.cnblogs.com/mol1995/p/7202232.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值