以文本方式查看主题

-  蓝色快车PB俱乐部论坛  (http://pb.besoft.com.cnhttp://pb.besoft.com.cn/bbs/index.aspindex.asp)
--  PowerDesigner  (http://pb.besoft.com.cnhttp://pb.besoft.com.cn/bbs/index.aspbbs.asp?boardid=6)
----  PowerDesigner11中批量根据对象的name生成comment的脚本  (http://pb.besoft.com.cnhttp://pb.besoft.com.cn/bbs/index.aspdispbbs.asp?boardid=6&rootid=4324&id=4324)


--  作者:随风
--  发布时间:2006/12/19 9:56:49

--  PowerDesigner11中批量根据对象的name生成comment的脚本
'******************************************************************************
'* File:     name2comment.vbs
'* Purpose:  Database generation cannot use object names anymore 
'            in version 7 and above.
'            It always uses the object codes.
'
'            In case the object codes are not aligned with your 
'            object names in your model, this script will copy 
'            the object Name onto the object comment for 
'            the Tables and Columns.
'
'* Title:    把对象name拷入comment属性中
'* Version:  1.0
'* Author:wangnc
'* 执行方法:PD11 -- Open PDM -- Tools --  Execute Commands -- 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 code 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


">