PD设置name与comment的相互复制

前言:

     前两天设计数据库的时候,只是给name写了说明,却没有加注释,于是找到了PD的name与comment相互复制的代码,跟大家分享一下

 

正题:

     使用说明: 在【Tools】-【Execute Commands】-【Edit/Run Script】 下。输入下面你要选择的语句即可,也可以保存起来,以便下次使用,后缀为.vbs。

 

      需要注意的问题是:运行语句时必须在Module模式下,如果是导出报表时执行会出现错误提示。

1.Name转到Comment注释字段。一般情况下只填写NAME,COMMENT可以运行语句自动生成。

将该语句保存为name2comment.vbs

代码

'把pd中的name想自动添加到comment里面
'如果comment为空,则填入name;如果不为空,则保留不变,这样可以避免已有的注释丢失.

  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   comment   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.           if  trim(tab.comment)="" then'如果有表的注释,则不改变它.如果没有表注释.则把name添加到注释里面.      
  24.                     tab.comment   =   tab.name     
  25.           end if    
  26.                   Dim   col   '   running   column       
  27.                   for   each   col   in   tab.columns     
  28.                         if trim(col.comment)="" then '如果col的comment为空,则填入name,如果已有注释,则不添加;这样可以避免已有注释丢失.   
  29.                            col.comment=   col.name     
  30.                         end if   
  31.                   next      
  32.             end   if      
  33.       next      
  34.     
  35.       Dim   view   'running   view       
  36.       for   each   view   in   folder.Views      
  37.             if   not   view.isShortcut and trim(view.comment)=""  then      
  38.                   view.comment   =   view.name      
  39.             end   if      
  40.       next      
  41.     
  42.       '   go   into   the   sub-packages       
  43.       Dim   f   '   running   folder       
  44.       For   Each   f   In   folder.Packages      
  45.             if   not   f.IsShortcut   then      
  46.                   ProcessFolder   f      
  47.             end   if      
  48.       Next      
  49. end   sub  
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中,comment2name.vbs 实习互换。语句为:

代码

  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. Private   sub   ProcessFolder(folder)      
  18. On Error Resume Next     
  19.       Dim   Tab   'running     table       
  20.       for   each   Tab   in   folder.tables      
  21.             if   not   tab.isShortcut   then      
  22.                   tab.name   =   tab.comment     
  23.                   Dim   col   '   running   column       
  24.                   for   each   col   in   tab.columns      
  25.                   if col.comment="" then     
  26.                   else    
  27.                         col.name=   col.comment      
  28.                   end if    
  29.                   next      
  30.             end   if      
  31.       next      
  32.     
  33.       Dim   view   'running   view       
  34.       for   each   view   in   folder.Views      
  35.             if   not   view.isShortcut   then      
  36.                   view.name   =   view.comment      
  37.             end   if      
  38.       next      
  39.     
  40.       '   go   into   the   sub-packages       
  41.       Dim   f   '   running   folder       
  42.       For   Each   f   In   folder.Packages      
  43.             if   not   f.IsShortcut   then      
  44.                   ProcessFolder   f      
  45.             end   if      
  46.       Next      
  47. end   sub  
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


转自:http://blog.csdn.net/longlong821/article/details/7758493

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值