本篇文章主要介绍了PowerDesigner通过SQL语句生成PDM文件并将name和comment进行互相转换 超详细过程(图文),具有一定的参考价值,感兴趣的小伙伴们可以参考一下
1.软件准备
软件:Navicat 11.1,Powerdesigner 15
2.安装步骤
第一步:将要生成的数据库导出为sql文件
第二步:打开PowerDesigner选择File-->Reverse Engineer --> Database...
第三步:选择MySQL5.0数据库
第四步:找到第一步生成的Sql文件,点击确定即可
PowerDesigner中NAME和COMMENT的互相转换,需要执行语句
由于PDM 的表中 Name 会默认=Code 所以很不方便, 所以需要将 StereoType 显示到表的外面来
打开[工具]->[显示属性](英文:Display Preferences) ->Content->Table->右边面板Columns框中 勾选: StereoType ,这样再在 StereoType中填入code字段相同内容就会显示在图形界面上了
使用说明: 在【Tools】-【Execute Commands】-【Edit/Run Script】 下。输入下面你要选择的语句即可,也可以保存起来,以便下次使用,后缀为.vbs。
需要注意的问题是:运行语句时必须在Module模式下,如果是导出报表时执行会出现错误提示。
1.Name转到Comment注释字段。一般情况下只填写NAME,COMMENT可以运行语句自动生成。
将该语句保存为name2comment.vbs
'把pd中那么name想自动添加到comment里面'如果comment为空,则填入name;如果不为空,则保留不变,这样可以避免已有的注释丢失.
Option ExplicitValidationMode= TrueInteractiveMode=im_BatchDim mdl 'the current model
'get the current active model
Set mdl =ActiveModelIf (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."
ElseProcessFolder mdlEnd If
'This routine copy name into comment for each table, each column and each view'of the current folder
Private subProcessFolder(folder)Dim Tab 'running table
for each Tab infolder.tablesif not tab.isShortcut then
if trim(tab.comment)="" then'如果有表的注释,则不改变它.如果没有表注释.则把name添加到注释里面.
tab.comment = tab.nameend if
Dim col 'running column
for each col in tab.columnsif trim(col.comment)="" then '如果col的comment为空,则填入name,如果已有注释,则不添加;这样可以避免已有注释丢失.
col.comment=col.nameend if
next
end if
next
Dim view 'running view
for each view infolder.Viewsif not view.isShortcut and trim(view.comment)="" thenview.comment=view.nameend if
next
'go into the sub-packages
Dim f 'running folder
For Each f Infolder.Packagesif not f.IsShortcut thenProcessFolder fend if
Next
end sub
2.将Comment内容保存到NAME中,comment2name.vbs 实习互换。语句为:
Option ExplicitValidationMode= TrueInteractiveMode=im_BatchDim mdl 'the current model
'get the current active model
Set mdl =ActiveModelIf (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."
ElseProcessFolder mdlEnd If
Private subProcessFolder(folder)On Error Resume Next
Dim Tab 'running table
for each Tab infolder.tablesif not tab.isShortcut then
tab.name = tab.commentDim col 'running column
for each col in tab.columnsif col.comment="" then
elsecol.name=col.commentend if
next
end if
next
Dim view 'running view
for each view infolder.Viewsif not view.isShortcut thenview.name=view.commentend if
next
'go into the sub-packages
Dim f 'running folder
For Each f Infolder.Packagesif not f.IsShortcut thenProcessFolder fend if
Next
end sub