PowerDesigner里面将表中name列值拷贝到comment列

完整版见https://jadyer.github.io/2015/06/03/powerdesigner-copy-name-to-comment/


/**
 * PowerDesigner里面将表中name列值拷贝到comment列
 * @see --------------------------------------------------------------------------------------------------------------------
 * @see pd中的pdm默认生成sql时,字段是没有凝视的..想要凝视的话,有2个方法
 * @see 1.也是推荐的
 * @see   pdm中双击打开一个Table,到Columns选项卡中,按快捷键Ctrl+U,找到Comment并勾选就可以
 * @see   并且该操作设置一次就可以了,以后在新的Table中也会自己主动出现Comment
 * @see   设置完成后,在加入表字段时一并写上凝视,这样生成的sql中字段就会有凝视了
 * @see 2.运行vbs脚本
 * @see   相较第一种方法,该方法缺点是每次生成sql前,都要运行一遍这个脚本
 * @see   运行方式为Tools-->Execute Commands-->Edit/Run Scripts,或者直接快捷键Ctrl+Shift+X
 * @see   将以下的脚本拷进去运行一遍,也能够保存为name2comment.vbs(下一次再运行的话,就能够Ctrl+O再选择name2comment.vbs就可以)
 * @see --------------------------------------------------------------------------------------------------------------------
 * @create 2015-6-3 下午7:53:38
 * @author 玄玉<http://blog.csdn.net/jadyer>
 */
' 假设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
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值