【转】PowerDesigner 中将Comment(注释)及Name(名称)内容互相COPY的VBS代码

本文提供了一个VBS脚本,用于在PowerDesigner中将对象的名称复制到注释中,适用于PowerDesigner 7及以上版本,解决对象代码与名称不匹配的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

PowerDesigner->Tools->Execute Commands->Edit/Run Scripts

代码一:将Name中的字符COPY至Comment中


'******************************************************************************
'
*    File:            name2comment.vbs
'
*    Purpose:      Database    generation    cannot    use    object    names    anymore   
'
                          in    version    7    and    above.
'
                          It    always    uses    the    object    codes.
'

'
                          In    case    the    object    codes    are    not    aligned    with    your   
'
                          object    names    in    your    model,    this    script    will    copy   
'
                          the    object    Name    onto    the    object    Comment    for   
'
                          the    Tables    and    Columns.
'

'
*    Title:         
'
*    Version:      1.0
'
*    Company:      Sybase    Inc.   
'
******************************************************************************


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
                   tab.comment   
=    tab.name
                  
Dim    col   '    running    column
                  for   each    col    in    tab.columns
                         col.comment
=    col.name
                  
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

代码二:将Comment中的字符COPY至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

Private   sub    ProcessFolder(folder)
On Error Resume Next
      
Dim    Tab   'running      table
      for   each    Tab    in    folder.tables
            
if   not    tab.isShortcut   then
                   tab.name   
=    tab.comment
                  
Dim    col   '    running    column
                  for   each    col    in    tab.columns
                  
if col.comment="" then
                  
else
                         col.name
=    col.comment
                  
end if
                  
next
            
end   if
      
next

      
Dim    view   'running    view
      for   each    view    in    folder.Views
            
if   not    view.isShortcut   then
                   view.name   
=    view.comment
            
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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值