`

PowerDesigner使用方法小结转

 
阅读更多
 

PowerDesigner多用来进行数据库模型设计,具有SQL语句自动生成等功能。当然,也有不少缺点,比如团队分享。

一、设置PowerDesigner模型视图中数据表显示列

1、Tools-Display Preference…

2、窗口左边Category中General Settings下选择Table

3、窗口右边Advanced…

4、窗口左边选择Columns

5、窗口右边List columns中,选择要显示的列

image

 

二、设置PowerDesigner设计表时,自动将name列值中的一部分复制到code列

1、把name/code自动复制功能打开。默认是打开的。

Tool-Genneral-Options Dialog-Name to Code mirroring

2、Tools->Model Options....->Naming Convention
3、选中Name,并勾选Enable name/code conversions.
4、选择Name To Code

粘贴脚本代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
脚本1:
.set_value(_First, true, new)
.foreach_part(%Name%, "'#'")
.if (%_First%)
.delete(%CurrentPart%)
.enddelete
.set_value(_First, false, update)
.else
%CurrentPart%
.endif
.next
这个例子是把Name内容的#号后边的内容当作Code.
   
脚本2:
.set_value(_First, true, new)
.foreach_part(%Name%, "'#'")
.if (%_First%)
%CurrentPart%
.set_value(_First, false, update)
.endif
.next
 这个例子是把Name内容的#号前边的内容当作Code.

 

三、从数据库导入数据到PowerDesigner中后,将comment列值复制到name列

运行脚本 Tools->Execute Commands->Edit/Run Scripts(Ctrl Shift X)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
'******************************************************************************
'* File:     comment2name.vbs
'* Purpose:  在PowerDesigner的PDM图形窗口中显示数据列的中文注释
'* Title:    将字段的comment赋值到字段的name中
'* Category: 打开物理模型,运行本脚本(Ctrl+Shift+X)
'* Copyright:foxzz@163.com,2006/07/25 .
'* Author:   foxzz
'* Created:  
'* Modified: 
'* Version:  1.0
'* Comment:  遍历物理模型中的所有表,将字段的comment赋值到字段的name中。
'            在将name置换为comment过程中,需要考虑的问题
'            1、name必须唯一,而comment有可能不唯一。
'               处理办法是如果字段的comment重复,则字段的name=comment+1、2、3...
'            2、comment值有可能为空,这种情况下对字段的name不处理。
'               针对oracle数据库,将comment on column 字段名称 is '';添加到C:/pdcomment.txt文件中。
'               在补充comment完毕后,便于在数据库中执行        
'******************************************************************************
  
Option Explicit 
ValidationMode = True 
InteractiveMode = im_Batch
  
Dim system, file
Set system = CreateObject("Scripting.FileSystemObject")
Dim ForReading, ForWriting, ForAppending   '打开文件选项
ForReading   = 1 ' 只读 
ForWriting   = 2 ' 可写 
ForAppending = 8 ' 可写并追加
'打开文本文件
Set file = system.OpenTextFile("C:/pdcomment.txt", ForWriting, true)
  
  
'判断当前model是否物理数据模型
Dim mdl
Set mdl = ActiveModel 
If (mdl Is Nothing) Then 
   MsgBox "处理对象无模型" 
ElseIf Not mdl.IsKindOf(PdPDM.cls_Model) Then 
   MsgBox "当前模型不是物理数据模型" 
Else 
   ProcessFolder mdl,file 
End If 
file.Close
  
  
'******************************************************************************
Private sub ProcessFolder(folder,file)
  
Dim i,j,k
i=0:j=0:k=0
  
'列数组,记录字段里不重复的comment
Dim ColumnComment() 
Dim ColumnCommentNumber()
ReDim Preserve ColumnComment(i)
ReDim Preserve ColumnCommentNumber(i)
  
Dim tbl   '当前表
Dim col   '当前字段 
dim curComment  '当前字段comment
  
'处理模型中的表
for each tbl in folder.tables 
    if not tbl.isShortcut then 
       if len(trim(tbl.comment))<>0 then
          '可以在这里显示table的comment
          'tbl.name = tbl.name+"("+trim(tbl.comment)+")"
       end if  
  
       '处理表中的列
       for each col in tbl.columns 
           k = 0
           curComment = trim(col.comment)
           if len(curComment)<>0 then
              '遍历相异的comment数组
              for j = 0 to i
                  if ColumnComment(j) = curComment then
                     '如果找到相同的comment,则相关计数器加1
                     ColumnCommentNumber(j) = ColumnCommentNumber(j) + 1
                     k = j
                  end if 
              Next
              '如果没有相同的comment,则k=0,此时ColumnCommentNumber(0)也为0
              '否则ColumnCommentNumber(k)不为0
              if ColumnCommentNumber(k) <> 0 then
                 col.name = curComment & cstr(ColumnCommentNumber(k))
              else
                 col.name  = curComment
                 'ColumnComment(0)、ColumnCommentNumber(0)永远为空
                 '将相异的comment记录添加到数组中
                 i = i + 1
                 ReDim Preserve ColumnComment(i)
                 ReDim Preserve ColumnCommentNumber(i)
                 ColumnComment(i) = curComment
                 ColumnCommentNumber(i) = 0
              end if
           else
              '写入文件中
              file.WriteLine "comment on column "+ tbl.name+"."+col.code+" is '';"           
           end if
       next 
    end if 
    '由于不同表的name允许相同,因此此时重新初始化。
    '因为ColumnComment(0)、ColumnCommentNumber(0)为空,可以保留
    ReDim Preserve ColumnComment(0)
    ReDim Preserve ColumnCommentNumber(0)
    i=0:j=0:k=0
  
next
  
Dim view  '当前视图
for each view in folder.Views 
    if not view.isShortcut then 
       '可以在这里显示view的comment
       'view.name =  view.comment
    end if 
next
  
'对子目录进行递归
Dim subpackage 'folder
For Each subpackage In folder.Packages 
    if not subpackage.IsShortcut then 
       ProcessFolder subpackage , file
    end if 
Next
  
end sub

 

四、将name列值复制到comment列

运行脚本 Tools->Execute Commands->Edit/Run Scripts(Ctrl Shift X)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
'把pd中那么name想自动添加到comment里面
'如果comment为空,则填入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 
  
' 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

 

参考:

1、PowerDesigner中Table视图同时显示Code和Name http://blog.csdn.net/downmoon/article/details/8108968

2、PowerDesigner Name/Code自动调整(转) http://hi.baidu.com/jonik/item/7d39588c3dda708e4514cf76

3、在PowerDesigner的PDM图形窗口中显示数据列的中文注释 http://blog.csdn.net/zengzhe/article/details/974205

4、powerDesigner 把name项添加到注释(comment),完美方案! http://www.cnblogs.com/dukey/archive/2010/01/20/dukey.html

- by 博客园 afarmer -

分享到:
评论

相关推荐

    Visio 和 PowerDesigner 使用方法 详解

    Visio 和 PowerDesigner 使用方法 详解 图文并茂

    Powerdesigner使用方法

    在“PowerDesigner使用方法”中,我们将探讨以下几个关键知识点: 1. **物理数据模型(PDM)**:PDM是PowerDesigner中的一个重要组件,用于描绘实际数据库在特定数据库管理系统(如Oracle)下的表、字段、索引、...

    PowerDesigner使用

    **PowerDesigner使用详解** PowerDesigner是一款强大的数据建模工具,由Sybase公司开发,广泛应用于数据库设计、系统分析和项目管理。它支持多种数据库模型,包括概念数据模型(CDM)、逻辑数据模型(LDM)和物理...

    Powerdesigner 使用指南

    使用PowerDesigner 12.0创建Web服务... 22 开发人员应该如何使用PowerDesigner. 26 使用SQL Server时最容易忽略的21个问题... 27 使用PowerDesigner 建立企业知识库... 31 面向SOA企业业务过程建模的利器— ...

    PowerDesigner使用教程9.5_PowerDesigner_使用手册

    在"PowerDesigner使用教程9.5"中,我们将深入探讨这个工具的各个方面。 **一、PowerDesigner的基本操作** 1. **启动与界面介绍**:PowerDesigner启动后,用户会看到一个直观的界面,包括菜单栏、工具栏、工作区和...

    总结Powerdesigner使用建议

    ### PowerDesigner 使用建议详解 ...以上内容仅为PowerDesigner使用中的一些关键知识点,实际上,PowerDesigner的功能远不止于此。在具体实践中,还需要根据项目需求灵活运用这些工具和技术,以达到最佳的设计效果。

    PowerDesigner使用教程.chm

    使用PowerDesigner 12.0创建Web服务... 22 开发人员应该如何使用PowerDesigner. 26 使用SQL Server时最容易忽略的21个问题... 27 使用PowerDesigner 建立企业知识库... 31 面向SOA企业业务过程建模的利器— ...

    powerdesigner的大小写转换脚本

    powerdesigner的大小写转换脚本,直接在powerdesigner里面找到执行脚本的地方,粘贴进去执行一下就可以了。 powerdesigner的大小写转换脚本 powerdesigner的大小写转换脚本

    PowerDesigner使用教程.pdf

    《PowerDesigner: 构建高效数据库设计的利器》 PowerDesigner作为Sybase公司出品的一款杰出的CASE工具集,被广泛应用于管理信息系统的分析与设计之中。这款强大的软件几乎覆盖了数据库模型设计的所有环节,从数据...

    Powerdesigner使用

    Powerdesigner使用

    Powerdesigner15.1使用教程

    ### PowerDesigner15.1使用教程知识点概览 #### 1. PowerDesigner简介 - **定义**: PowerDesigner是由Sybase公司开发的一款强大的CASE工具集,主要用于管理信息系统的设计和分析。 - **功能**: 支持数据流程图制作...

    PowerDesigner使用教程.zip

    《PowerDesigner使用教程》,作者 gzllm。本资源解压缩后可以得到《PowerDesigner使用教程.pdf》和《PowerDesigner使用教程.chm》两个版本的电子书,方便不通阅读习惯的朋友选择阅读。 内容预览: 一、PowerDesigner...

    PowerDesigner的使用方法

    下面我们将深入探讨PowerDesigner的使用方法,特别是如何导出SQL文件。 1. **启动与界面** 首先,我们需要启动PowerDesigner应用程序。打开后,你会看到一个简洁的主界面,通常包括菜单栏、工具栏和工作区。通过...

    使用PowerDesigner进行数据库设计

    ### 使用PowerDesigner进行数据库设计详解 #### 一、PowerDesigner简介 PowerDesigner是一款强大的数据库建模工具,由SAP公司开发。它可以帮助开发者快速高效地完成数据库的设计与维护工作,支持概念模型、逻辑模型...

    PowerDesigner15.1使用手册.zip

    PowerDesigner是一款强大的数据库设计与建模工具,广泛应用于软件开发、数据分析等领域。...《PowerDesigner 15.1使用手册》详细阐述了这些功能的使用方法和最佳实践,是掌握这款工具不可或缺的参考资料。

    PowerDesigner使用指南

    以下是对PowerDesigner使用的一些关键知识点的详细说明: 1. **概念数据模型(CDM)**:在CDM中,用户可以创建实体、属性和关系,来抽象和描绘业务领域的核心概念。实体代表业务对象,属性是实体的特性,关系则定义了...

    PowerDesigner使用教程(中文)

    **PowerDesigner使用教程(中文)** Sybase PowerDesigner是一款强大的数据建模工具,广泛应用于数据库设计、数据分析和企业架构规划。本教程详细介绍了PowerDesigner 9.5版本的使用方法,旨在帮助用户全面掌握该软件...

    powerdesigner使用手册

    【PowerDesigner 使用手册】 PowerDesigner 是一款强大的数据库设计和建模工具,广泛应用于软件开发的前期阶段,尤其在数据库的概念级设计中。本教程将详细阐述如何使用 PowerDesigner 创建概念数据模型(CDM),...

    PowerDesigner反向工程使用方法.doc

    ### PowerDesigner反向工程使用方法详解 #### 一、引言 在软件开发过程中,数据库设计与维护是一项重要的任务。PowerDesigner作为一款强大的数据库建模工具,被广泛应用于概念数据模型(CDM)、物理数据模型(PDM)以及...

Global site tag (gtag.js) - Google Analytics