一、所有表中name同步comment的方法:
操作步骤:工具>execute commands>Edit/Run script 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
二、powerdesigner表明和表字段小写转为大写
操作流程如上。
'*****************************************************************************'文件:powerdesigner.ucase.VBs'版本:1.0'功能:遍历物理模型中的所有表,将表名、表代码、字段名、字段代码全部由小写改成大写;' 并将序列的名和代码由小写改成大写。'用法:打开物理模型,运行本脚本(Ctrl+Shift+X)'备注:'*****************************************************************************dim model 'current modelset model = ActiveModel
If (model Is Nothing) ThenMsgBox "There is no current Model"ElseIf Not model.IsKindOf(PdPDM.cls_Model) ThenMsgBox "The current model is not an Physical Data model."ElseProcessTables modelProcessSequences modelEnd If
'*****************************************************************************'函数:ProcessSequences'功能:递归遍历所有的序列'*****************************************************************************sub ProcessSequences(folder)'处理模型中的序列:小写改大写dim sequencefor each sequence in folder.sequencessequence.name = UCase(sequence.name)sequence.code = UCase(sequence.code)nextend sub
'*****************************************************************************'函数:ProcessTables'功能:递归遍历所有的表'*****************************************************************************sub ProcessTables(folder)'处理模型中的表dim tablefor each table in folder.tablesif not table.IsShortCut then
ProcessTable tableend ifnext'对子目录进行递归dim subFolderfor each subFolder in folder.PackagesProcessTables subFoldernext
end sub
'*****************************************************************************'函数:ProcessTable'功能:遍历指定table的所有字段,将字段名由小写改成大写,' 字段代码由小写改成大写' 表名由小写改成大写
'*****************************************************************************sub ProcessTable(table)dim colfor 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