power desinger 学习笔记<八>把Comment复制到name中和把name复制到Comment
power desinger 学习笔记<八>把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进行操作
[vb] view plaincopyprint?
'代码一:将Name中的字符COPY至Comment中
1 Option Explicit
2 ValidationMode = True
3 InteractiveMode = im_Batch
4 Dim mdl ' the current model
5 ' get the current active model
6 Set mdl = ActiveModel
7 If (mdl Is Nothing) Then
8 MsgBox "There is no current Model "
9 ElseIf Not mdl.IsKindOf(PdPDM.cls_Model) Then
10 MsgBox "The current model is not an Physical Data model. "
11 Else
12 ProcessFolder mdl
13 End If
14 ' This routine copy name into comment for each table, each column and each view
15 ' of the current folder
16 Private sub ProcessFolder(folder)
17 Dim Tab 'running table
18 for each Tab in folder.tables
19 if not tab.isShortcut then
20 tab.comment = tab.name
21 Dim col ' running column
22 for each col in tab.columns
23 col.comment= col.name
24 next
25 end if
26 next
27 Dim view 'running view
28 for each view in folder.Views
29 if not view.isShortcut then
30 view.comment = view.name
31 end if
32 next
33 ' go into the sub-packages
34 Dim f ' running folder
35 For Each f In folder.Packages
36 if not f.IsShortcut then
37 ProcessFolder f
38 end if
39 Next
40 end sub
另外在使用REVERSE ENGINEER从数据库反向生成PDM的时候,PDM中的表的NAME和CODE事实上都是CODE,为了把NAME替换为数据库中Table或Column的中文Comment,可以使用以下脚本:
[vb] view plaincopyprint?


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
50 原帖地址:http://blog.csdn.net/smartsmile2012/article/details/7922863