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

执行位置:Tools – Execute Commands – Run Script

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
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值