转载:PowerDesigner中name和comment互相转换

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

执行方法:Open PDM -- Tools -- Execute Commands -- Run 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

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

猜你喜欢

转载自woshiaoyun.iteye.com/blog/1577294