PowerDesigner中name和comment互換

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

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

Vb script代码
  1. Option Explicit  
  2. ValidationMode = True  
  3. InteractiveMode = im_Batch  
  4.   
  5. Dim mdl 'the current model  
  6.   
  7. 'get the current active model  
  8. Set mdl = ActiveModel  
  9. If (mdl Is Nothing) Then  
  10. MsgBox "There is no current Model"   
  11. ElseIf Not mdl.IsKindOf(PdPDM.cls_Model) Then  
  12. MsgBox "The current model is not an Physical Data model."   
  13. Else  
  14. ProcessFolder mdl  
  15. End If  
  16.   
  17. 'This routine copy name into code for each table, each column and each view  
  18. 'of the current folder  
  19. Private sub ProcessFolder(folder)  
  20. Dim Tab 'running table  
  21. for each Tab in folder.tables  
  22. if not tab.isShortcut then  
  23. tab.comment = tab.name  
  24. Dim col 'running column  
  25. for each col in tab.columns  
  26. col.comment= col.name  
  27. next  
  28. end if  
  29. next  
  30.   
  31. Dim view 'running view  
  32. for each view in folder.Views  
  33. if not view.isShortcut then  
  34. view.comment = view.name  
  35. end if  
  36. next  
  37.   
  38. 'go into the sub-packages  
  39. Dim f 'running folder  
  40. For Each f In folder.Packages  
  41. if not f.IsShortcut then  
  42. ProcessFolder f  
  43. end if  
  44. Next  
  45. 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  
---------------------------------------------------------- 

 

你可能感兴趣的:(数据库,脚本,table,each,tools,IM)