在设计的时候经常会碰到注释和Name不统一,需要手工复制的问题。其实PD提供了很好的方法可以批量进行调整。

我写了一个递归的修改方法,如下所示:可做为参考。

 1 '******************************************************************************
 2 '* File:     CommentVsName.vbs
 3 '* Purpose:  把字段及表注释为空的用name来代替
 4 '* Title:    保证每个字段及表都有注释
 5 '* Category: 注释
 6 '* Author:   lbq(buddy) liubiqu@sina.com
 7 '* Created:  2008年3月24日
 8 '* Modified: 2008年4月24日
 9 '* Use:      打开PDM,运行本脚本(Ctrl+Shift+X)
10 '* Version:  1.0
11 '* Comment:  遍历PDM中的所有包,把数据表及字段的注释为空的部分用Name来替换
12 '* Copyright (C) 2008 topsthink Inc.
13 '******************************************************************************
14 
15 Option Explicit
16 ValidationMode = True
17 InteractiveMode = im_Abort
18 
19 
20 Dim mdl ' 定义当前的模型
21 
22 '通过全局参数获得当前的模型
23 Set mdl = ActiveModel
24 If (mdl Is Nothing) Then
25    MsgBox "没有选择模型,请选择一个模型并打开."
26 ElseIf Not mdl.IsKindOf(PdPDM.cls_Model) Then
27    MsgBox "当前选择的不是一个物理模型(PDM)."
28 Else
29    ProcessFolder mdl
30 End If
31 
32 
33 '--------------------------------------------------------------------------------
34 '功能函数
35 '--------------------------------------------------------------------------------
36 Private Sub ProcessFolder(folder)
37    Dim Tab '定义数据表对象
38    for each Tab in folder.tables
39       if not tab.isShortcut then
40          if tab.comment = "" then tab.comment = tab.name '进行判断并赋值
41          Dim col '定义列对象
42          for each col in tab.columns
43             if col.comment = "" then col.comment = col.name '进行判断并赋值
44          next
45       end if
46    next
47    
48    '对子包进行递归,如果不使用递归只能取到第一个模型图内的表
49    dim subfolder
50    for each subfolder in folder.Packages
51       ProcessFolder subfolder
52    next
53 
54    'msgbox "完成把comment为空的内容用name代替"
55 End Sub

[2008年5月1日]如果需要对name 进行赋值的时候可能会出现同名的错误,所以可以利用 VBS中的On Error Resume Next这个语句进行跳过。如

 1Private Sub ProcessFolder(folder)
 2   Dim Tab '定义数据表对象
 3   for each Tab in folder.tables
 4      if not tab.isShortcut then
 5         if tab.comment <> "" then tab.name = tab.comment&"(" &tab.name&")" '进行判断并赋值
 6         Dim col '定义列对象
 7         for each col in tab.columns
 8            if col.comment <> "" then 
 9               On Error Resume Next '增加此句
10               col.name = col.comment '进行判断并赋值
11            end if
12         next
13      end if
14   next

转载于:https://www.cnblogs.com/liubiqu/archive/2008/04/24/1170108.html

[原创]通过编写PowerDesigner脚本功能批量修改属性相关推荐

  1. 脚本_批量修改md为hexo标准post格式[博]

    原创博客地址:脚本_批量修改md为hexo标准post格式[博] 动机,原有md希望快捷发布 本来原来有笔记,已经为md格式,希望批量发布.而不是一个个hexo new page xxx,然后复制过去 ...

  2. iOS使用shell脚本批量修改属性

    背景 公司需要做一系列的壳版本,壳版本如果内容雷同提交到App Store会有被拒绝的风险,除了我在上一篇文章中说道的在壳版本中注入混淆的代码,防止被苹果检测到内容太过雷同而导致审核被拒绝.还有另一种 ...

  3. Linux下shel脚本之批量修改文件扩展名

    Linux下shel脚本之批量修改文件扩展名 一.脚本要求 二.脚本内容 三.运行脚本 一.脚本要求 二.脚本内容 三.运行脚本 一.脚本要求 1.在/data/tmp/下的所有文件扩展名改为.py ...

  4. Linux系统shell脚本之批量修改服务器密码

    Linux系统shell脚本之批量修改服务器密码 一.脚本要求 二.脚本内容 三.编辑原始旧密码 四.执行脚本 五.验证密码更改 1.查看更改后的密码文件 2.在远端服务器验证密码 一.脚本要求 可以 ...

  5. Shell脚本之批量修改linux主机系统用户密码

    一.需求说明   数据中心运维根据等保要求我们需要定期修改操作系统用户密码,一般是要求3个月修改一次.一个一个的修改很浪费时间,我们需要批量修改,此脚本就是批量修改Linux系统的操作系统账户密码,此 ...

  6. idea批量修改变量快捷键mac_使用Mac自带功能批量修改图片名称、类型和压缩图片大小...

    Mac电脑自带的聚焦搜索功能已经很强大,可以快速准确的搜索电脑内的文件,但是从网上下载的文件,特别是一些图片文件都是一串数字组成的文件名,很难记忆和搜索,我们可以使用Mac自带的『自动操作』功能给图片 ...

  7. (小脚本) (python) 批量修改文件后缀名

    文章目录 前言 完整代码 效果展示 原目录结构 运行展示 修改效果 代码讲解 主要函数 os.walk(path) 判断文件 修改 END 前言 有时候我们需要批量修改一些文件的后缀名 作为程序员我们 ...

  8. 提高工作效率的bat脚本,批量修改文件名脚本(批量修改替换、大小写转换)

    Android开发里的资源文件名称是不能有空格.横杠 - .大写字母的,但是美术给过来的图片资源或多或少都会含有这些,而且图片到达一定数量时,自己手动改名实在是太耗费时间了,所以搞了俩脚本文件来节约改 ...

  9. bat脚本一键批量修改文件名

    需求场景:如某文件夹下所有.docx文件批量修改名字 1.修改前 2.修改后 3.final.bat脚本 @echo off Setlocal Enabledelayedexpansion set & ...

最新文章

  1. 06-jvm-查询命令-01
  2. linux 6.4 安装dns,Linux 轻松上手 架设 CentOS 6.4 DNS+FTP ndash;(六)、安装设定vsftp
  3. CascadePSP 测试笔记
  4. mysql栈空间大小_jvm 堆内存 栈内存 大小设置
  5. markdown语法十步学习 图文并茂
  6. 每日一笑 | 今天是植树节,我想在你心里种点逼树
  7. 微信端php 开发技术要求,微信第三方平台开发详解——PHP版
  8. 美团数据库中间件DBProxy开源
  9. Linux基础之bash脚本编程初级-变量与算术运算
  10. amesim子模型_为什么amesim模型建立后有的元件没有可用的子模型
  11. 北京师范大学网络教育计算机考试题,2020年北京师范大学网络教育入学考试高起专语文模拟题及答案(机考古文阅读)...
  12. LeetCode 5773 插入后的最大值(中等 贪心)
  13. 破解云锁服务器安全软件的反爬机制(python)
  14. 计算机因特尔网络论文,[心得]英特尔
  15. 如何评价《就算老公一毛钱股份都没拿到,在我心里,他依然是最牛逼的创业者》里面这位CEO的所作所为?
  16. JMeter学习(四)使用JMeter的HTTP代理服务器实现抓包功能
  17. 【Pytorch安装】Failed building wheel for XXX踩坑
  18. 计算机考研高数试卷答案,考研数学试卷大全(全国各高校历年试卷)
  19. soff被判3年,软件业是福是祸?
  20. 【SQL Server】统计表记录数

热门文章

  1. html 中ajax 请求没反应,ajax请求数据成功,页面的数据没有加载出来
  2. TEASOFT辅助服务程序UDPCopy 功能介绍
  3. 第十六届全国大学生智能车汽车竞赛第二次扩大会议
  4. 第十六届智能车竞赛MCU这么多,该怎么办?别慌,RT-Thread来帮忙。
  5. Java删除指定文件夹下的文件和目录
  6. java excel导入前台_java上传excel表格并读取数据返回到前台
  7. 服务器群安装系统,服务器安装总结
  8. vs社区版到期离线激活_vs2019离线安装包
  9. mysql 按小时分组统计_PowerBI业务分析:按排名分组统计
  10. C 类INI文本,可以添加注释(初步实现,可以添加更加复杂的通用化设计)