1. 程式人生 > >PowerDesigner中name與comment互相轉換指令碼

PowerDesigner中name與comment互相轉換指令碼

 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 

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