'****************************************************************************************
'文件:SetName.vbs
'版本:1.0
'编制:ljf 2005.09.21
'功能:遍历OOM中的所有类,把属性和方法的Name设置为Name+Code。
'用法:打开OOM,运行本脚本(Ctrl+Shift+X)
'备注:按一般习惯,类的属性或方法中的Name是中文名称,Code是对应的英文名称。
' 但是在类图中只能显示Name或Code,而不能中英文名称都显示,利用此脚本让Name
' 包含中英文名称,以解决图中显示的问题。
'+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
dim model '当前模型
set model = ActiveModel
If (model Is Nothing) Then
MsgBox "没有打开模型"
ElseIf Not model.IsKindOf(PdOOM.cls_Model) Then
MsgBox "当前模型不是OOM"
Else
ProcessClasses model
'*************************************************************************************
'用此段代码则只修改当前图所在包
'Dim fldr
'Set Fldr = ActiveDiagram.Parent
'ProcessClasses fldr
'*************************************************************************************
End If
'****************************************************************************************
'函数:ProcessClasses
'功能:递归遍历所有的类
'****************************************************************************************
Sub ProcessClasses(folder)
'处理模型中的类
dim cla
for each cla in folder.Classes
'cla.Name = cla.Name + cla.Code
ProcessClass cla
next
'对子包进行递归
dim subfolder
for each subfolder in folder.Packages
ProcessClasses subfolder
next
End Sub
'****************************************************************************************
'函数:ProcessClass
'功能:遍历指定类中的所有属性及方法,并修改相应的Name
'****************************************************************************************
Sub ProcessClass(cla)
'处理类的属性
dim att
for each att in cla.Attributes
att.Name = att.Name + " " + att.Code
next
'处理类的方法
dim ope
for each ope in cla.Operations
ope.Name = ope.Name + " " + ope.Code
next
End Sub
如果想执行反操作,简单的修改以上代码重新执行即可.