码迷,mamicode.com
首页 > 其他好文 > 详细

PowerDesigner执行脚本 name/comment/stereotype互转

时间:2018-05-03 19:59:13      阅读:153      评论:0      收藏:0      [点我收藏+]

标签:bat   exe   ext   explicit   exp   type   else   str   and   

 

执行方法:工具栏->Tools -> Execute Commands -> Edit/Run Script (Ctrl+Shift+X)

 

1、Name转到Comment注释字段

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
                     if  trim(tab.comment)="" then如果有表的注释,则不改变它.如果没有表注释.则把name添加到注释里面.
                        tab.comment   =   tab.name
                     end if  
                  Dim   col      running   column    
                  for   each   col   in   tab.columns   
                        if trim(col.comment)="" then 如果col的comment为空,则填入name,如果已有注释,则不添加;这样可以避免已有注释丢失.
                           col.comment=   col.name   
                        end if 
                  next    
            end   if    
      next    
  
      Dim   view   running   view    
      for   each   view   in   folder.Views    
            if   not   view.isShortcut and trim(view.comment)=""  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、将Comment内容保存到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

 

3、name转stereotype

 

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   stereotype   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  trim(tab.stereotype)="" then如果有表的注释,则不改变它.如果没有表注释.则把name添加到注释里面.
                        tab.stereotype   =   tab.name
                     end if  
                  Dim   col      running   column    
                  for   each   col   in   tab.columns   
                        if trim(col.stereotype)="" then 如果col的stereotype为空,则填入name,如果已有注释,则不添加;这样可以避免已有注释丢失.
                           col.stereotype=   col.name   
                        end if 
                  next    
            end   if    
      next    
  
      Dim   view   running   view    
      for   each   view   in   folder.Views    
            if   not   view.isShortcut and trim(view.stereotype)=""  then    
                  view.stereotype   =   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

 

 

 

原文地址:https://www.cnblogs.com/eedc/p/7774111.html

 

PowerDesigner执行脚本 name/comment/stereotype互转

标签:bat   exe   ext   explicit   exp   type   else   str   and   

原文地址:https://www.cnblogs.com/mataszhang/p/8986491.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!