0
点赞
收藏
分享

微信扫一扫

PowerDesigner通过VB脚本实现name与comment互换

本文主要用于PowerDesigner进行建模时,将PDM模型中的name与 comment内容进行互换,如下图:

PowerDesigner通过VB脚本实现name与comment互换_PowerDesigner

1. name转comment:通过脚本将name赋值到comment

Option   Explicit 
ValidationMode   =   True 
InteractiveMode   =   im_Batch
 
 
Dim   mdl   '   the   current   model
 
 
'   get   the   current   active   model 
Set   mdl   =   ActiveModel 
If   (mdl   Is   Nothing)   Then 
      MsgBox   "There   is   no   current   Model " 
ElseIf   Not   mdl.IsKindOf(PdPDM.cls_Model)   Then 
      MsgBox   "The   current   model   is   not   an   Physical   Data   model. " 
Else 
      ProcessFolder   mdl 
End   If
 
 
'   This   routine   copy   name   into   comment   for   each   table,   each   column   and   each   view 
'   of   the   current   folder 
Private   sub   ProcessFolder(folder) 
      Dim   Tab   'running     table 
      for   each   Tab   in   folder.tables 
            if   not   tab.isShortcut   then
				  If Len(tab.comment) = 0 Then
					tab.comment   =   tab.name
				  end if
				  
                  Dim   col   '   running   column 
                  for   each   col   in   tab.columns 
						If Len(col.comment) = 0 Then
							col.comment=   col.name
						end if
                  next 
            end   if 
      next
 
 
      Dim   view   'running   view 
      for   each   view   in   folder.Views 
            if   not   view.isShortcut   then 
                  view.comment   =   view.name 
            end   if 
      next
 
 
      '   go   into   the   sub-packages 
      Dim   f   '   running   folder 
      For   Each   f   In   folder.Packages 
            if   not   f.IsShortcut   then 
                  ProcessFolder   f 
            end   if 
      Next 
end   sub

2. comment转name:通过脚本将comment赋值到name

Option Explicit
ValidationMode = True
InteractiveMode = im_Batch
 
Dim mdl 'the current model   
 
'get the current active model   
Set mdl = ActiveModel
If (mdl Is Nothing) Then
    MsgBox "There is no current Model"
ElseIf Not mdl.IsKindOf(PdPDM.cls_Model) Then
    MsgBox "The current model is not an Physical Data model."
Else
    ProcessFolder mdl
End If
 
'This routine copy name into code for each table, each column and each view   
'of the current folder   
Private Sub ProcessFolder(folder)
    
    Dim Tab 'running table   
    For Each Tab In folder.tables
        If Not tab.isShortcut Then
            If Len(tab.comment) <> 0 Then
                tab.name = tab.comment
            End If
            On Error Resume Next
            Dim col 'running column   
            For Each col In tab.columns
                If Len(col.comment) <> 0 Then
                    col.name = col.comment
                End If
                On Error Resume Next
            Next
        End If
    Next
End Sub

举报

相关推荐

0 条评论