`

PowerDesigner 把Comment写到name中 和把name写到Comment中 pd7以后版本可用

阅读更多

comentToName支持多次运行已经移植过来的不会重复移植

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    
  
Function CreateRegExp(pattern)
  dim result:set result=CreateObject("VBscript.RegExp")
  result.Global=true
  result.IgnoreCase=true
  result.Pattern=pattern
  result.MultiLine=true
  
  set CreateRegExp=result
End Function

 

Function IsRightText(text)

    if (Len(text)=0) then

           IsRightText=false

           exit function

    end if

    dim regex:set regex= CreateRegExp("^[a-zA-Z0-9_]+$")

    dim result:result=regex.Test(text)

    set regex=nothing

    IsRightText=result

End Function
  
Private   sub   ProcessFolder(folder)    
On Error Resume Next   
      Dim   Tab   'running     table    
      for   each   Tab   in   folder.tables    
            if   not   tab.isShortcut   then    
                  'if IsRightText(tab.name) then
                     tab.name   =  tab.Code + mid(tab.comment,1,10)
                  'end if   
                  Dim   col   '   running   column    
                  for   each   col   in   tab.columns    
                  if col.comment="" then   
                  else  
                        if IsRightText(col.name) then
                           col.name = mid(col.comment,1,8)
                        end if    
                  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 

 code转大写upcode

'******************************************************************************
'* File:     code2name.vbs
'* Title:    Code to Name Conversion
'* Purpose:  To 
'
'* Model:    Physical Data Model
'* Category: Naming Standards
'* Author:   Matt Creason - Sr. System Consultant - Sybase, Inc.
'* Created:  Apr 8, 2005
'* Mod By:   
'* Modified: 
'* Version:  1.0
'* Comment:  
'*  v1.0 - Must have Conversion Tables assigned as a model option
'******************************************************************************


Option Explicit
ValidationMode = True
InteractiveMode = im_Batch

Dim mdl ' the current model
Dim opt ' model options

' 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
   Set opt = mdl.GetModelOptions()
   opt.EnableNameCodeTranslation = true
   opt.save
   opt.UpdateModelOptions ' need to call this you have made changes
   ProcessFolder 
End If

' This routine transform code into name for each table, each column of the current folder
Private sub ProcessFolder
   Dim obj, tbl, col
   for each tbl in mdl.Tables
      Dim codeToName, cTN
      for each codeToName in opt.CodeNamingConventions
         if (codeToName.Name = tbl.ObjectType) then
            'output "Converting " + codeToName.Name + " " + tbl.Code + " code to name using " + codeToName.Script
            'tbl.Name = tbl.EvaluateText(codeToName.Script)
			tbl.code= UCase(tbl.code)
            for each col in tbl.Columns
               for each cTN in opt.CodeNamingConventions
                  if (cTN.Name = col.ObjectType) then
                     'output "Converting " + cTN.Name + " " + col.Code + " code to name using " + cTN.Script
                     'col.Name = col.EvaluateText(cTN.Script)
					 col.code= UCase(col.code)
                  end if
               next
            next
         end if
      next
   next
end sub

 

 

在使用PowerDesigner对数据库进行概念模型和物理模型设计时,一般在NAME或Comment中写中文,在Code中写英文。Name 用来显 示,Code在代码中使用,但Comment中的文字会保存到数据库Table或Column的Comment中,当Name已经存在的时候,再写一次 Comment很麻烦,可以使用以下代码来解决这个问题:

  • 代码一:将Name中的字符COPY至Comment中

    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

--------------------------------------------

         另外在使用REVERSE ENGINEER从数据库反向生成PDM的时候,PDM中的表的NAME和CODE事实上都是CODE,为了把NAME替换为数据库中Table或Column的中文Comment,可以使用以下脚本:

  • 代码二:将Comment中的字符COPY至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

    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

-----------------------------------------------------------------------

以上两段代码都是VB脚本,在PowerDesigner中使用方法为:

    PowerDesigner->Tools->Execute Commands->Edit/Run Scripts

将代码Copy进去执行就可以了,是对整个CDM或PDM进行操作

分享到:
评论

相关推荐

    企业管理-14狼性精神企业文化.pptx

    企业管理-14狼性精神企业文化.pptx

    【password输入框的显示和关闭功能进行优化】

    【password输入框的显示和关闭功能进行优化】

    模拟和分析匹配滤波器检测器在不同信噪比 (SNR) 条件下性能的 MATLAB 代码.rar

    1.版本:matlab2014/2019a/2021a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。

    毕设项目:使用Pyqt5搭建YOLO系列多线程目标检测系统.zip

    该资源内项目源码是个人的课程设计、毕业设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。 该资源内项目源码是个人的课程设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。

    计算机毕业设计-ASP+ACCESS仓库即时查询系统毕业设计(源代码+LW).zip

    计算机毕业设计资源包含(项目部署视频+源码+LW+开题报告等等),所有项目经过助教老师跑通,有任何问题可以私信博主解决,可以免费帮部署。

    基于Selenium的Java爬虫实战(内含谷歌浏览器Chrom和Chromedriver版本122.0.6255.0)

    资源包括: 1.Java爬虫实战代码 2.selenium学习笔记 3.代码演示视频 4.谷歌浏览器chrom122.0.6255.0 chrome-linux64.zip chrome-mac-arm64.zip chrome-mac-x64.zip chrome-win32.zip chrome-win64.zip 5.谷歌浏览器驱动器Chromedriver122.0.6255.0 chromedriver-linux64.zip chromedriver-mac-arm64.zip chromedriver-mac-x64.zip chromedriver-win32.zip chromedriver-win64.zip 特别说明:Chrome 为测试版(不会自动更新) 仅适用于自动测试。若要进行常规浏览,请使用可自动更新的标准版 Chrome。)

    基于Selenium的Java爬虫实战(内含谷歌浏览器Chrom和Chromedriver版本121.0.6167.57)

    资源包括: 1.Java爬虫实战代码 2.selenium学习笔记 3.代码演示视频 4.谷歌浏览器chrom121.0.6167.57 chrome-linux64.zip chrome-mac-arm64.zip chrome-mac-x64.zip chrome-win32.zip chrome-win64.zip 5.谷歌浏览器驱动器Chromedriver121.0.6167.57 chromedriver-linux64.zip chromedriver-mac-arm64.zip chromedriver-mac-x64.zip chromedriver-win32.zip chromedriver-win64.zip 特别说明:Chrome 为测试版(不会自动更新) 仅适用于自动测试。若要进行常规浏览,请使用可自动更新的标准版 Chrome。)

    计算机毕业设计-asp.net校园新闻发布系统的设计与实现(源代码+LW).zip

    计算机毕业设计资源包含(项目部署视频+源码+LW+开题报告等等),所有项目经过助教老师跑通,有任何问题可以私信博主解决,可以免费帮部署。

    代码会说话的编程世界 - 使用 C 语言实现的个人网站 - 分享 Linux 网络编程.zip

    代码会说话的编程世界 - 使用 C 语言实现的个人网站 - 分享 Linux 网络编程

    【工具模型】37个OD方法工具盘点.pptx

    【工具模型】37个OD方法工具盘点.pptx

    业务架构及业务价值主张详解.pptx

    业务架构及业务价值主张详解.pptx

    python作业题1.zip

    python作业题1

    基于servlet+jsp实现的web聊天系统.zip

    该资源内项目源码是个人的课程设计、毕业设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。 该资源内项目源码是个人的课程设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。

    小游戏的java程序开发

    小游戏的java程序开发

    用友集团财务管理系统解决方案.pptx

    用友集团财务管理系统解决方案.pptx

    人力资源管理中的激励机制以华为公司为例.pptx

    人力资源管理中的激励机制以华为公司为例.pptx

    python实训作业.zip

    python实训作业

    “走进”名企学习成功之道:沃尔玛的企业文化.pptx

    “走进”名企学习成功之道:沃尔玛的企业文化.pptx

    一个用C语言实现的命令行英汉对照词典.zip

    新手学习C语言的绝佳资料

    基于C++版本的sort算法,可无缝添加在检测器后进行实时多目标跟踪

    【作品名称】:基于C++版本的sort算法,可无缝添加在检测器后进行实时多目标跟踪 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【项目介绍】:可实时运行的SORT算法,将SORT算法集成为类 可以直接在检测器后添加该算法

Global site tag (gtag.js) - Google Analytics