PowerDesigner 把Comment复制到name中和把name复制到Comment

在使用PowerDesigner对数据库进行概念模型和物理模型设计时,一般在NAME或Comment中写中文,在Code中写英文。Name用来显 示,Code在代码中使用,但Comment中的文字会保存到数据库Table或Column的Comment中,当Name已经存在的时候,再写一次 Comment很麻烦,可以使用以下代码来解决这个问题

在PowerDesigner中使用方法为:

   PowerDesigner->Tools->Execute Commands->Edit/Run Scripts

将代码Copy进去执行就可以了,是对整个CDM或PDM进行操作

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

 

posted @ 2018-11-07 17:06  `初一`  阅读(230)  评论(0编辑  收藏  举报