• PowerDesigner中通过VBS脚本修改模型信息(转)


    PowerDesigner拥有强大的建模功能,同时,它也对脚本语言提供了支持。菜单Tools -> Execute Commands -> Edit/Run Script打开的窗口中,可以执行用户编写的VBS脚本,某些情况下,这可以节省大量的重复性工作,达到提高效率的目的。

    近期三思遇到一例,某个历史工程在开发之初未应用PD类工作建模,后期维护人员也很多,对象创建混乱,通过PowerDesigner反向工程生成了pdm,但对象描述没有,这个东西如果逐个维护的话,工作量还是非常可观的~~

    不过,查看表结构时发现对象的comments相对比较全面,因此后来通过VBS脚本,自动将备注信息写向表列的NAME,极短的时间内就对全部对象做了处理!

    具体执行脚本如下:


     Option Explicit
     ValidationMode = True
     InteractiveMode = im_Abort
     
     
     Dim mdl ' 定义当前的模型
     
     '通过全局参数获得当前的模型
     Set mdl = ActiveModel
     If (mdl Is Nothing) Then
        MsgBox "没有选择模型,请选择一个模型并打开."
     ElseIf Not mdl.IsKindOf(PdPDM.cls_Model) Then
        MsgBox "当前选择的不是一个物理模型(PDM)."
     Else
        ProcessFolder mdl
     End If
     
     
     '--------------------------------------------------------------------------------
     '功能函数
     '--------------------------------------------------------------------------------
     Private Sub ProcessFolder(folder)
        Dim Tab '定义数据表对象
        for each Tab in folder.tables
           if not tab.isShortcut then
              if tab.comment <> "" then tab.name = tab.comment '进行判断并赋值
              Dim col '定义列对象
              for each col in tab.columns
                 if col.comment <> "" then col.name = col.comment '进行判断并赋值
              next
           end if
        next
       
        '对子包进行递归,如果不使用递归只能取到第一个模型图内的表
        dim subfolder
        for each subfolder in folder.Packages
           ProcessFolder subfolder
        next
     
    End Sub

    事实上,在PD安装目录下,拥有一个VB Scripts目录,其中包含PD自带的很多VBS脚本,极具参考性,感兴趣的同学不妨研究研究~~

  • 相关阅读:
    字符串匹配的KMP算法(转)
    二分查找谜题
    快排的优化--说说尾递归
    ZR提高失恋测4
    CF1209
    ZR普转提2
    ZR提高失恋测3
    ZR提高失恋测2(9.7)
    ZR9.8普转提
    CF1214
  • 原文地址:https://www.cnblogs.com/meetrice/p/2504366.html
Copyright © 2020-2023  润新知