执行
选中模型击菜单“Tools->Execute Commands -> Edit/Run Script…",或者快捷键(Ctrl+Shift+X)
批量修改表大小写,字段大小写和数据类型
'Option Explicit On
ValidationMode = True
InteractiveMode = im_Batch
Dim mdl ' the current model
' 取得当前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
Private Sub ProcessFolder(folder)
'处理表
Dim Tab,str1
Dim tt
For Each Tab In folder.tables
tt = Tab.code
'if(not tt is nothing) then
'str1 = left(tt, 1)
'str1 = UCase(str1)
'Dim str2
'str2 = right(tt , len(tt) - 1)
'str2 = LCase(str2)
'Tab.code = str1 + str2
'修改字段名
Dim col
For Each col In Tab.columns
If (col.code <> "") Then
Dim code
code = col.code
Dim code1
code1 = left(code, 1)
code1 = UCase(code1)
Dim code2
code2 = right(code, len(code) - 1)
code2 = UCase(code2)
col.code = code1 + code2
End If
if(StrComp(col.code,"EXCEPTION_NOTICE") = 0)then
col.datatype = "varchar(100)"
end if
if(StrComp(col.code,"EXCEPTION_NOTICE") = 0)then
col.code = "EXCEPTION_NOTICE_PERSON"
end if
Next
' End If
Next
' 同理处理视图
' Dim view
' for each view in folder.Views
' if not view.isShortcut then
' view.code = 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.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.