您的位置:首页 > 编程语言 > VB

PowerDesigner 中将Comment(注释)及Name(名称)内容互相COPY的VBS代码

2013-06-24 15:06 489 查看
在用PowerDesigner时.常常在NAME或Comment中写中文在Code中写英文.Name只会显示给我们看,Code会使用在代码中.但Comment中的文字会保存到数据库TABLE的Description中,有时候我们写好了Name再写一次Comment很麻烦.以下两段代码就可以解决这个问题.
代码一:将Name中的字符COPY至Comment中使用菜单:"Tools->Execute Commands->Edit/Run Scripts"来执行下面脚本




'******************************************************************************


'* 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:


'* Version: 1.0


'* Company: Sybase Inc.


'******************************************************************************






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


代码二:将Comment中的字符COPY至Name中

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




Private sub ProcessFolder(folder)


On Error Resume Next


Dim Tab 'running table


for each Tab in folder.tables


if not tab.isShortcut then


tab.name = tab.comment


Dim col ' running column


for each col in tab.columns


if col.comment="" then


else


col.name= col.comment


end if


next


end if


next




Dim view 'running view


for each view in folder.Views


if not view.isShortcut then


view.name = view.comment


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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐