首页 > 其他 > 详细

PowerDesigner 技巧【1】

时间:2014-03-28 16:10:08      阅读:568      评论:0      收藏:0      [点我收藏+]

 

    1. Name与Code同步的问题:

      PowerDesigner中,修改了某个字段的name,其code也跟着修改,这个问题很讨厌,因为一般来说,name是中文的,code是字段名。

      解决方法如下:

      1、选择Tools->GeneralOptions...菜单,出现General Options对话框。

      2、从Category中选择Dialog项。

      3、取消右边"Name to Code mirroring"复选框。如下图:

      bubuko.com,布布扣

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

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

这是网络上下载的脚本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
<span style="font-family: 幼圆; font-size: 16px;">[c-sharp]view plaincopyprint?
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 
</span>

  

但是这个脚本有点不足之处:就是将name的内容完全覆盖在comments上。有一些我写好的comments会被覆盖了,这样很不爽。

因此,在原脚本的基础上,我判断comments的长度大于name,不覆盖。这样自己写的comments就会保留下来。脚本。在表、视图的基础了,

增加用户、表空间、序列等数据库对象的注释。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
[vb]view plaincopyprint?
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 not Len(tab.comment) > Len(tab.name) then 
            tab.comment = tab.name 
         end if 
         Dim col ‘ running column 
         for each col in tab.columns 
            if not Len(col.comment) > Len(col.name) then 
               col.comment= col.name 
            end if 
         next 
      end if 
   next 
   
   Dim view ‘running view 
   for each view in folder.Views 
      if not view.isShortcut then 
         if not Len(view.comment) > Len(view.name) then 
            view.comment = view.name 
         end if 
      end if 
   next 
   
   Dim sequence ‘running sequence 
   for each sequence in folder.Sequences 
      if not sequence.isShortcut then 
         if not Len(sequence.comment) > Len(sequence.name) then 
            sequence.comment = sequence.name 
         end if 
      end if 
   next 
   
   Dim myuser ‘running user 
   for each myuser in folder.Users 
      if not myuser.isShortcut then 
         if not Len(myuser.comment) > Len(myuser.name) then 
            myuser.comment = myuser.name 
         end if 
      end if 
   next    
   
   Dim tablespace ‘running tablespace 
   for each tablespace in folder.Tablespaces 
      if not tablespace.isShortcut then 
         if not Len(tablespace.comment) > Len(tablespace.name) then 
            tablespace.comment = tablespace.name 
         end if 
      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/huang_xw/article/details/5722981

PowerDesigner 技巧【1】,布布扣,bubuko.com

PowerDesigner 技巧【1】

原文:http://www.cnblogs.com/mingyue1818/p/3630041.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!