阅读更多
powerdesigner逆向生成物理模型
文章分类:软件开发管理
首先配置ODBC(具体请搜索 很简单)
然后在database --》connect中 链接配置的ODBC连接
-->连接成功后选择 database-->database reverse enginneering options
选择use a data source,选择配置好的数据源点确定, --》选择要逆向生成的表点确定。
逆向生成成功。
逆向生成后会有个问题,就是生成的NAME 和CODE是一样的 并不是注释,在可视化界面下并不直观,
有以下脚本可以自动替换注释到 NAME
Java代码
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
将注释替换成NAME
Java代码
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. tab.comment = tab.name
24. Dim col ' running column
25. for each col in tab.columns
26. col.comment= col.name
27. next
28. end if
29. next
30.
31. Dim view 'running view
32. for each view in folder.Views
33. if not view.isShortcut then
34. view.comment = view.name
35. end if
36. next
37.
38. ' go into the sub-packages
39. Dim f ' running folder
40. For Each f In folder.Packages
41. if not f.IsShortcut then
42. ProcessFolder f
43. end if
44. Next
45. 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
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
脚本的使用方法:PowerDesigner->Tools->Execute Commands->Edit/Run Scripts