zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    SQL Server数据库中批量导入数据
    SQL里面也能用Split()
    MSSQL发送邮件
    Asp.Net简单的发邮件功能
    十大措施保证系统安全性
    WebDriver测试web中遇到的弹出框或不确定的页面
    WebDriver数据驱动模式
    nginx 优化(转)
    配置虚拟目录出错
    14152学期校内岗招聘信息
  • 原文地址:https://www.cnblogs.com/happy2010/p/10882019.html
Copyright © 2011-2022 走看看