Golf工作室

沧海中的一栗
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

PowerDesigner中name与comment互相转换脚本

Posted on 2010-04-09 08:57  Golf工作室  阅读(604)  评论(0编辑  收藏  举报

本资料收集而来,作为知识库积累,分享给使用powerdesigner朋友们!

1 PowerDesigner中批量根据对象的name生成comment的脚本

执行方法:Open PDM -- Tools -- Execute Commands -- Run Script

Vb script代码
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   
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 

 

2 PowerDesigner中逆向工程将数据库中comment脚本赋值到PDM的name

执行方法:Open PDM -- Tools -- Execute Commands -- Run Script



Vb script代码
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