PowerDesign?是不是感觉很古老,用惯了而已。
以下代码参考网络整理而成,经本人优化并亲测通过。
==>name转code name格式: 中文#code
.set_value(_First, true, new)
.foreach_part(%Name%, "'#'")
.if (%_First%)
.delete(%CurrentPart%)
.set_value(_First, false, update)
.else
%CurrentPart%
.endif
.foreach_part(%Name%, "'#'")
.if (%_First%)
.delete(%CurrentPart%)
.set_value(_First, false, update)
.else
%CurrentPart%
.endif
.next
在PowerDesigner中使用方法为: PowerDesigner->Tools->Model Options->NamingConvention->name 【Enable name/code Conventions】->name to code
==>name转comment name格式: 中文#code
将table name的#号之前的文字变为table的comment,将column name的#号之前的文字变为column的comment.
原来的代码是针对一个folder(CDM或PDM)下所有表(还有其他view等)进行操作,改为可以只针对特定表进行操作,如果tabname有值,则就匹配tabname值,否则如果tabname为空,则对所有表进行操作。
在PowerDesigner中使用方法为: PowerDesigner->Tools->Execute Commands->Edit/Run Scripts
-----------------------------------------------------------------------------
Option Explicit
ValidationMode = True
InteractiveMode = im_Batch
Dim tabname
Dim mdl ' the current model
'如果tabname留空,则对所有表进行操作
tabname = "应答推荐"
' 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
dim cando
cando = 1
if tabname<>"" and Instr(tab.name, tabname) = 0 then
cando = 0
end if
'msgBox tab.name
'msgBox cando
if not tab.isShortcut and cando=1 then
InteractiveMode = im_Batch
Dim tabname
Dim mdl ' the current model
'如果tabname留空,则对所有表进行操作
tabname = "应答推荐"
' 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
dim cando
cando = 1
if tabname<>"" and Instr(tab.name, tabname) = 0 then
cando = 0
end if
'msgBox tab.name
'msgBox cando
if not tab.isShortcut and cando=1 then
msgBox "即将对如下表操作:"&tab.name
tab.comment = split(tab.name ,"#")(0)
Dim col ' running column
for each col in tab.columns
col.comment= split(col.name,"#")(0)
msgBox col.comment
next
end if
next
Dim view 'running view
for each view in folder.Views
if not view.isShortcut then
view.comment = split(view.name,"#")(0)
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
for each col in tab.columns
col.comment= split(col.name,"#")(0)
msgBox col.comment
next
end if
next
Dim view 'running view
for each view in folder.Views
if not view.isShortcut then
view.comment = split(view.name,"#")(0)
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
相关推荐
PowerDesigner中显示name,code,comment的解决方法 PowerDesigner是一款功能强大的数据模型设计工具,但是在某些版本中,视图不支持同时显示name、code、comment(列注释)。本文档将介绍如何在PowerDesigner中显示...
根据提供的信息,虽然文章的描述部分为“NULL”,但通过对部分内容的分析,可以看出文章重点介绍了在PowerDesigner中编写和执行脚本,以及如何使用这些脚本进行name和comment的互换。这个过程是通过PowerDesigner的...
在使用PowerDesigner的过程中,有时会遇到一个常见的问题,即Name(名称)与Code(代码)同步的问题。这个问题指的是当用户修改了一个实体或字段的Name时,其对应的Code也会自动更新,这可能不符合开发者的预期,...
为了解决这个问题,可以利用PowerDesigner的内置功能和自定义脚本来实现NAME与COMMENT之间的自动转换。 首先,我们可以使用一个VBA(Visual Basic for Applications)脚本来将NAME中的字符复制到COMMENT中。这段...
描述中提到的"Sybase PowerDesigner 常用脚本 name to code ,code to name"暗示了这些脚本主要用于在名称和代码之间进行转换。这可能是为了方便处理数据库对象的标识符,例如表名、列名、存储过程名等,它们可能...
在给定的文件中,`name2comment.vbs`和`comment2name.vbs`是VBScript脚本文件,它们可能被设计来实现PowerDesigner模型中名字与Code之间的转换。VBScript是一种轻量级的脚本语言,常用于Windows环境下的自动化任务。...
在完成所有必要的调整后,运行脚本,PowerDesigner模型就会自动更新,包含从数据库中提取的注释信息。这样,即使原始数据库中没有注释,你也可以在PowerDesigner的模型中看到详细的描述,极大地提高了工作效率和代码...
使用PowerDesigner我经常只设置了Name和code,但是数据库里显示不了Name,显示的是描述,及comment。所以我可以通过执行一个脚本批量把列名(name)复制为描述(comment)。
这段脚本的作用是遍历当前模型中的所有表和视图,如果comment不为空,则将comment的值复制到name属性中,这样在PowerDesigner中就可以看到name和comment的值。 **步骤2:清理重复的name** 接下来,我们需要执行第二...
虽然PowerDesigner默认没有提供name-comment-stereotype相互自动复制的功能,但可以通过编写脚本来实现这一需求。具体步骤如下: 1. 使用PowerDesigner提供的API,创建一个脚本文件,用于实现name-comment-...
Step 2: 打开 Dialog 将 Operating modes 中的 Name To Code mirroring 将前面的勾去掉。 这样,我们就可以取消 Name 和 Code 之间的关联,避免了不必要的麻烦。 2. sql 语句中表名与字段名前的引号去除 在使用 ...
每次我用PowerDesigner设计数据库时,都只是注释了一些复杂的字段,一些简单的字段根本就不用注释,见到code就知道其中的意思,奈何本人英文水平有限,加上一些英文单词太长进行了简写,我就想要把字段名称name这列...
4. **编辑表属性**:双击表,填写基本信息,如Name(表名)、Code(编号)和Comment(备注)。在字段设置页面,填写Name(字段名)、Code(字段别名)、Data Type(数据类型),可选填Domain(域),以及设置M(非空...
- 脚本的主要逻辑是读取指定路径下的Excel文件,并根据其中的数据自动创建或更新PowerDesigner模型中的表结构。 #### VBScript代码详解 ```vb Option Explicit Dim mdl ' the current model Set mdl = ActiveModel...
#### 二、PowerDesigner中逆向工程将数据库中comment脚本赋值到PDM的name ##### 1. 脚本逻辑概述 此脚本的主要功能是通过逆向工程将数据库中的注释信息赋值给物理数据模型中的对象名称。这种方法有助于保持数据库的...
在这里,你可以选择VBA脚本文件并运行,从而实现Excel设计的表结构自动导入到PowerDesigner中。 完成上述步骤后,PowerDesigner将根据Excel模板生成对应的实体关系模型(ER模型),这将极大地提高数据库设计的效率...
通过使用 VBScript 脚本,我们可以实现将 Word 表格中的数据快速导入到 PowerDesigner 中,从而快速创建 PDM。 在本文中,我们将详细介绍如何将 Word 表格导入 PowerDesigner,并快速创建 PDM。首先,我们需要准备...
PowerDesigner通过内置的脚本语言支持用户自定义各种操作,其中包括为模型中的对象(如表、字段)自动添加备注的功能。此功能可以通过编写并执行特定的脚本来实现。 - **步骤1**:打开PowerDesigner并选择待处理的...
包括设置表的展示名称Name、具体的表属性Code、属性注释Comment、数据类型DataType、数据长度Length、主键选项P和非空项选项M等。 在配置完表之后,需要进行添加表关系和表关系设置,包括为表添加外键关系,以及...
**脚本与自动化** 最后,PowerDesigner还支持VBScript脚本编写,可用于自动化常见的建模任务,比如批量更新对象名称和注释。例如,脚本`name2comment.vbs`可以用于在数据库生成过程中,将对象名称复制到对象注释中...