PowerDesigner软件里面将表中name列值复制到comment列

背景

p o w e r D e s i g n e r 是款非常好用的数据库设计工具,但是有时候不会用会给自己带来很多繁琐而又恶心到吐的问题。
比如:n a m e字段已经填写好,但是c o m m e n t 字段又要重复的写一遍,很是麻烦恶心。

问题点

如文章题目所写,如何实现呢?

解决方案

执行vbs脚本:P o w e r D e s i g n e r软件中打开t o o l s ==》 E x e c u t e C om m a n d s =》》 E d i t / R u n S c r i p t s ,也可以使用快捷键Ctrl+Shift+X(注意,快捷键可能不好使);

' 如果comment为空,则填入name;如果comment不为空,则保留不变.这样可以避免已有的注释丢失.
 
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
        if trim(tab.comment)="" then '如果有表的注释,则不改变它;如果没有表注释,则把name添加到注释中.
            tab.comment = tab.name
        end if
        Dim col ' running column
        for each col in tab.columns
            if trim(col.comment)="" then '如果col的comment为空,则填入name;如果已有注释,则不添加.这样可以避免已有注释丢失.
                col.comment= col.name
            end if
        next
    end if
next
 
Dim view 'running view
for each view in folder.Views
    if not view.isShortcut and trim(view.comment)="" 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

看到这里,已经能够解决了,下面这些内容只为是因为c 某 D某的辣鸡质量分计算公式
’ 如果comment为空,则填入name;如果comment不为空,则保留不变.这样可以避免已有的注释丢失.

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
if trim(tab.comment)=“” then '如果有表的注释,则不改变它;如果没有表注释,则把name添加到注释中.
tab.comment = tab.name
end if
Dim col ’ running column
for each col in tab.columns
if trim(col.comment)=“” then '如果col的comment为空,则填入name;如果已有注释,则不添加.这样可以避免已有注释丢失.
col.comment= col.name
end if
next
end if
next

Dim view 'running view
for each view in folder.Views
if not view.isShortcut and trim(view.comment)=“” 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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ybb_ymm

你的鼓励会是对我最大的支持

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值