热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

PowerDesigner中使用vbscript访问对象进行批量操作

项目中想把PD建模的数据库中的Name字段全部在Comment里也填写一份,又不想一个表一个表的复制粘贴,所以在网上查了点偷懒省事的方法,原来可以利用VBScript脚本控制PD中的对象进行一些

项目中想把PD建模的数据库中的Name字段全部在Comment里也填写一份,又不想一个表一个表的复制粘贴,所以在网上查了点偷懒省事的方法,原来可以利用Vbscript脚本控制PD中的对象进行一些批量操作。

首先是启动你要修改的PD文件,然后双击你要修改的那张图,激活它,注意是图,而不是Tables下的表。然后点击菜单“Tools->Execute Commands -> Edit/Run Script...",或者快捷键(Ctrl+Shift+X)

然后把脚本粘贴进去,运行就可以了。脚本如下:

          dim   sName  
          for   each   table   in   ActiveModel.tables  
                for   each   column   in   table.columns  
                        sComm   =   column.GetExtendedAttribute("Comment")       'comment的内容  
                        sName   =   column.GetExtendedAttribute("Name")           'name的内容  
                        'if   sComm   <>   sName   then  
                            column.comment   =   column.comment + column.name  
                        'end   if  
                next  
          next

大家可以根据自己的需要随意修改。有特殊需求的可以查它的脚本帮助文档。

 

以下是从网上找到的一些参考资料:

Vbscript脚本辅助Power Designer模型设计

 

 

Power Designer是数据建模中一个比较常用的工具,比较擅长大规模的E-R模型的设计。
对于一些批量操作,可以通过Vbscript脚本进行。
用法:打开物理模型,点击菜单“Tools->Execute Commands -> Edit/Run Script...",或者快捷键(Ctrl+Shift+X)。
下面脚本是一个将模型中的表名、字段名均改成大写的一个简易脚本。在Power Designer 9.5中通过运行。
Vbscript,其实我不会用,所以我会选择一个比较复杂的例子,这个例子很简单。
至于Vbscript,可以去网上看看那些函数以及结构的用法,用起来也很简单。
关于Power Designer中用到的一些固定属性或者实体,可以参照Power Designer的帮助,可以查到。

'*****************************************************************************
'文件:powerdesigner.ucase.VBs
'版本:1.0
'功能:遍历物理模型中的所有表,将表名、表代码、字段名、字段代码全部由小写改成大写;
' 并将序列的名和代码由小写改成大写。
'用法:打开物理模型,运行本脚本(Ctrl+Shift+X)
'备注:
'*****************************************************************************
dim model 'current model
set model = ActiveModel

If (model Is Nothing) Then
MsgBox "There is no current Model"
ElseIf Not model.IsKindOf(PdPDM.cls_Model) Then
MsgBox "The current model is not an Physical Data model."
Else
ProcessTables model
ProcessSequences model
End If

'*****************************************************************************
'函数:ProcessSequences
'功能:递归遍历所有的序列
'*****************************************************************************
sub ProcessSequences(folder)
'处理模型中的序列:小写改大写
dim sequence
for each sequence in folder.sequences
sequence.name = UCase(sequence.name)
sequence.code = UCase(sequence.code)
next
end sub

'*****************************************************************************
'函数:ProcessTables
'功能:递归遍历所有的表
'*****************************************************************************
sub ProcessTables(folder)
'处理模型中的表
dim table
for each table in folder.tables
if not table.IsShortCut then
ProcessTable table
end if
next
'对子目录进行递归
dim subFolder
for each subFolder in folder.Packages
ProcessTables subFolder
next
end sub

'*****************************************************************************
'函数:ProcessTable
'功能:遍历指定table的所有字段,将字段名由小写改成大写,
' 字段代码由小写改成大写
' 表名由小写改成大写
'*****************************************************************************
sub ProcessTable(table)
dim col
for each col in table.Columns
'将字段名由小写改成大写
col.code = UCase(col.code)
col.name = UCase(col.name)
next
table.name = UCase(table.name)
table.code = UCase(table.code)
end sub

 


推荐阅读
  • 本文介绍了一个在线急等问题解决方法,即如何统计数据库中某个字段下的所有数据,并将结果显示在文本框里。作者提到了自己是一个菜鸟,希望能够得到帮助。作者使用的是ACCESS数据库,并且给出了一个例子,希望得到的结果是560。作者还提到自己已经尝试了使用"select sum(字段2) from 表名"的语句,得到的结果是650,但不知道如何得到560。希望能够得到解决方案。 ... [详细]
  • Go Cobra命令行工具入门教程
    本文介绍了Go语言实现的命令行工具Cobra的基本概念、安装方法和入门实践。Cobra被广泛应用于各种项目中,如Kubernetes、Hugo和Github CLI等。通过使用Cobra,我们可以快速创建命令行工具,适用于写测试脚本和各种服务的Admin CLI。文章还通过一个简单的demo演示了Cobra的使用方法。 ... [详细]
  • 特需要使用集合的时候,无法找到VBScript中的Collection对象;到处找不到,那就自己写一个吧!注:1.需要VBScript5.0或更高版本,使用Class及 ... [详细]
  • <tablecellspacing0cellpadding0>&l ... [详细]
  • vbscript中怎么调用 Dir 命令
    这期内容当中小编将会给大家带来有关vbscript中怎么调用Dir命令,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所 ... [详细]
  • Ihaveasimplequestion,butIvesearchedforthisandcouldntfindanyhelpfultopics..我有一个简单的问 ... [详细]
  • 我现在写了这样的函数:FunctionopenConnection()SetcnnCreateObject(ADODB.Connection)cnn.Connec ... [详细]
  • 本文主要分享【vb正则表达式】,技术文章【VBScript中的正则表达式】为【爱吃牛肉的大老虎】投稿,如果你遇到正则表达式,VBScript相关问题,本文相关知识或能到你。vb正则表达式 ... [详细]
  • 本文介绍了Oracle存储过程的基本语法和写法示例,同时还介绍了已命名的系统异常的产生原因。 ... [详细]
  • 从Oracle安全移植到国产达梦数据库的DBA实践与攻略
    随着我国对信息安全和自主可控技术的重视,国产数据库在党政机关、军队和大型央企等行业中得到了快速应用。本文介绍了如何降低从Oracle到国产达梦数据库的技术门槛,保障用户现有业务系统投资。具体包括分析待移植系统、确定移植对象、数据迁移、PL/SQL移植、校验移植结果以及应用系统的测试和优化等步骤。同时提供了移植攻略,包括待移植系统分析和准备移植环境的方法。通过本文的实践与攻略,DBA可以更好地完成Oracle安全移植到国产达梦数据库的工作。 ... [详细]
  • 本文介绍了一种轻巧方便的工具——集算器,通过使用集算器可以将文本日志变成结构化数据,然后可以使用SQL式查询。集算器利用集算语言的优点,将日志内容结构化为数据表结构,SPL支持直接对结构化的文件进行SQL查询,不再需要安装配置第三方数据库软件。本文还详细介绍了具体的实施过程。 ... [详细]
  • Ihaveaworkfolderdirectory.我有一个工作文件夹目录。holderDir.glob(*)>holder[ProjectOne, ... [详细]
  • 本文介绍了2015年九月八日的js学习总结及相关知识点,包括参考书《javaScript Dom编程的艺术》、js简史、Dom、DHTML、解释型程序设计和编译型程序设计等内容。同时还提到了最佳实践是将标签放到HTML文档的最后,并且对语句和注释的使用进行了说明。 ... [详细]
  • 本文介绍了禅道作为一款国产开源免费的测试管理工具的特点和功能,并提供了禅道的搭建和调试方法。禅道是一款B/S结构的项目管理工具,可以实现组织管理、后台管理、产品管理、项目管理和测试管理等功能。同时,本文还介绍了其他软件测试相关工具,如功能自动化工具和性能自动化工具,以及白盒测试工具的使用。通过本文的阅读,读者可以了解禅道的基本使用方法和优势,从而更好地进行测试管理工作。 ... [详细]
  • 你是否注意到,当你在高优先级下运行应用程序是,应用程序运行得特别快(这也视你运行什么样的应用程序而定)。拿WinRar做例子 ... [详细]
author-avatar
皓月当空668
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有