1.把字段及表注释为空的用name来代替
Option Explicit ValidationMode = True InteractiveMode = im_Abort Dim mdl ' 定义当前的模型 '通过全局参数获得当前的模型 Set mdl = ActiveModel If (mdl Is Nothing) Then MsgBox "没有选择模型,请选择一个模型并打开." ElseIf Not mdl.IsKindOf(PdPDM.cls_Model) Then MsgBox "当前选择的不是一个物理模型(PDM)." Else ProcessFolder mdl End If '-------------------------------------------------------------------------------- '功能函数 '-------------------------------------------------------------------------------- Private Sub ProcessFolder(folder) Dim Tab '定义数据表对象 for each Tab in folder.tables if not tab.isShortcut then if tab.comment = "" then tab.comment = tab.name '进行判断并赋值 Dim col '定义列对象 for each col in tab.columns if col.comment = "" then col.comment = col.name '进行判断并赋值 next end if next '对子包进行递归,如果不使用递归只能取到第一个模型图内的表 dim subfolder for each subfolder in folder.Packages ProcessFolder subfolder next End Sub
2.
'****************************************************************************** '* File: CommentVsName.vbs '* Purpose: 批量修改表名 '* Use: 打开PDM,运行本脚本(Ctrl+Shift+X) '****************************************************************************** Option Explicit ValidationMode = True InteractiveMode = im_Abort Dim mdl ' 定义当前的模型 '通过全局参数获得当前的模型 Set mdl = ActiveModel If (mdl Is Nothing) Then MsgBox "没有选择模型,请选择一个模型并打开." ElseIf Not mdl.IsKindOf(PdPDM.cls_Model) Then MsgBox "当前选择的不是一个物理模型(PDM)." Else ProcessFolder mdl End If '-------------------------------------------------------------------------------- '功能函数 '-------------------------------------------------------------------------------- Private Sub ProcessFolder(folder) Dim tab '定义数据表对象 for each tab in folder.tables tab.name= Replace(tab.name ,"tc_eb","") '名称替换 next '对子包进行递归,如果不使用递归只能取到第一个模型图内的表 dim subfolder for each subfolder in folder.Packages ProcessFolder subfolder next 'msgbox "完成把comment为空的内容用name代替" End Sub
3.批量修改字段默认值
'****************************************************************************** '* File: CommentVsName.vbs '* Purpose: 批量修改字段默认值 '* Use: 打开PDM,运行本脚本(Ctrl+Shift+X) '****************************************************************************** Option Explicit ValidationMode = True InteractiveMode = im_Abort Dim mdl ' 定义当前的模型 '通过全局参数获得当前的模型 Set mdl = ActiveModel If (mdl Is Nothing) Then MsgBox "没有选择模型,请选择一个模型并打开." ElseIf Not mdl.IsKindOf(PdPDM.cls_Model) Then MsgBox "当前选择的不是一个物理模型(PDM)." Else ProcessFolder mdl End If '-------------------------------------------------------------------------------- '功能函数 '-------------------------------------------------------------------------------- Private Sub ProcessFolder(folder) Dim tab '定义数据表对象 for each tab in folder.tables if not tab.isShortcut then Dim col '定义列对象 for each col in tab.columns col.defaultvalue = Replace(col.defaultvalue ,"1000-01-01 00:00:00","2000-00-00 00:00:00") '进行判断并赋值 next end if next '对子包进行递归,如果不使用递归只能取到第一个模型图内的表 dim subfolder for each subfolder in folder.Packages ProcessFolder subfolder next 'msgbox "批量修改字段默认值" End Sub
4.
'****************************************************************************** '* File: CommentVsName.vbs '* Purpose: 数据库反向生成pdm的情况 使用备注生成name '* Use: 打开PDM,运行本脚本(Ctrl+Shift+X) '****************************************************************************** Option Explicit ValidationMode = True InteractiveMode = im_Abort Dim mdl ' 定义当前的模型 '通过全局参数获得当前的模型 Set mdl = ActiveModel If (mdl Is Nothing) Then MsgBox "没有选择模型,请选择一个模型并打开." ElseIf Not mdl.IsKindOf(PdPDM.cls_Model) Then MsgBox "当前选择的不是一个物理模型(PDM)." Else ProcessFolder mdl End If '-------------------------------------------------------------------------------- '功能函数 '-------------------------------------------------------------------------------- Private Sub ProcessFolder(folder) Dim Tab '定义数据表对象 for each Tab in folder.tables if not tab.isShortcut then if tab.comment <> "" then tab.name = tab.comment '进行判断并赋值 Dim col '定义列对象 Dim num '定义一个数字变量 num=0 for each col in tab.columns num=num+1 if col.comment <> "" then col.name = col.comment & num '进行判断并赋值 next end if next '对子包进行递归,如果不使用递归只能取到第一个模型图内的表 dim subfolder for each subfolder in folder.Packages ProcessFolder subfolder next 'msgbox "数据库反向生成pdm的情况 使用备注生成name" End Sub