PowerDesigner通过SQL语句生成PDM文件并将name和comment进行互相转换

本篇文章主要介绍了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 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 if trim(tab.comment)="" then如果有表的注释,则不改变它.如果没有表注释.则把name添加到注释里面. tab.comment = tab.name end if Dim col  running column  for each col in tab.columns if trim(col.comment)="" then 如果col的comment为空,则填入name,如果已有注释,则不添加;这样可以避免已有注释丢失. col.comment= col.name end if next end if next Dim view running view  for each view in folder.Views if not view.isShortcut and trim(view.comment)="" 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

2.将Comment内容保存到NAME中,comment2name.vbs 实习互换。语句为:

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

 

 

相关文章