`
sangei
  • 浏览: 334035 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

在PowerDesigner的PDM图形窗口中显示数据列的中文注释

阅读更多

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

分享到:
评论

相关推荐

    PowerDesigner连接MySQL互相导入以及显示中文注释

    ### PowerDesigner连接MySQL互相导入及显示中文注释详解 #### 一、安装ODBC驱动 在进行PowerDesigner与MySQL之间的连接之前,首先需要确保已经安装了ODBC (Open Database Connectivity) 驱动。ODBC驱动是实现不同...

    PowerDesigner导出的SQL带列注释,导入到MySQL中列注释不见了的处理方法

    PowerDesigner 导出的 SQL 带列注释,导入到 MySQL 中列注释不见了的处理方法 在使用 PowerDesigner 导出 SQL 文件时,如果包含列注释,可能会在导入到 MySQL 数据库中时丢失。这是因为 PowerDesigner 导出的 SQL ...

    Powerdesigner逆向工程生成PDM 中文列名表名

    此脚本遍历了当前PDM中的所有表和列,如果列名包含中文字符,则将其转换为注释,并将列名替换为不含中文的字符串(此处示例为将中文替换为“Comment”)。 #### 四、总结 通过上述步骤,我们可以利用PowerDesigner...

    powerdesigner添加数据源、反向工程、表显示注释

    PowerDesigner 添加数据源、反向工程、表显示注释 PowerDesigner 是一款功能强大的数据建模工具,能够帮助用户设计、开发和维护复杂的数据系统。下面是关于 PowerDesigner 添加数据源、反向工程、表显示注释的知识...

    powerdesigner 显示注释程序

    "显示注释程序"正是为了解决这个问题而存在的,它是一个VBS(Visual Basic Script)脚本,能够帮助用户在PowerDesigner中查看并管理对象的注释。 在数据库设计过程中,注释是非常重要的元素,它们提供了对表、字段...

    PowerDesigner生成PDM模型

    PowerDesigner 是一款功能强大的数据建模和设计工具,能够生成高质量的数据模型,特别是在企业信息系统中扮演着重要角色。在本文中,我们将详细讲解如何使用 PowerDesigner 生成 PDM 模型,并介绍相关的知识点。 一...

    PowerDesigner中显示name,code,comment的解决方法

    PowerDesigner是一款功能强大的数据模型设计工具,但是在某些版本中,视图不支持同时显示name、code、comment(列注释)。本文档将介绍如何在PowerDesigner中显示name、code、comment,解决了这个问题。 问题描述:...

    PowerDesigner逆向工程-Mysql,并解决没有注释的问题!

    在IT行业中,数据库设计是软件开发过程中的关键环节,PowerDesigner是一款强大的数据库设计工具,它提供了数据建模、数据库设计和数据库反向工程等功能。本文将深入探讨如何使用PowerDesigner进行MySQL数据库的逆向...

    PowerDesigner将PDM导出生成WORD文档的方法

    ### PowerDesigner将PDM导出生成WORD文档的方法详解 #### 一、PowerDesigner简介与应用场景 PowerDesigner是一款功能强大的数据库设计工具,它可以帮助用户轻松地进行数据建模、概念设计和物理设计等任务。...

    PowerDesigner显示数据库中文备注

    该脚本可以显示数据库中文备注。 PowerDesigner最初由Xiao-Yun Wang(王晓昀)在SDP Technologies公司开发完成。PowerDesigner是Sybase的企业建模和设计解决方案,采用模型驱动方法,将业务与IT结合起来,可帮助部署...

    powerdesigner画ER图显示注释

    一个小脚本,可以让powerdesigner显示的ER图添加注释,不过需要做一些设置

    powerdesigner生成含注释的sql

    PowerDesigner是一款流行的数据建模工具,它可以帮助IT专业人员进行概念数据模型(CDM)、物理数据模型(PDM)以及业务流程模型的创建。在数据库设计过程中,注释对于理解和维护数据库结构至关重要。 PowerDesigner...

    PowerDesigner(PDM)文件自动转换为Excel文件格式

    PowerDesigner是一款强大的数据库建模工具,它允许用户创建和管理数据模型,包括概念数据模型(CDM)、逻辑数据模型(LDM)和物理数据模型(PDM)。在这些模型中,PDM通常包含了详细的数据库表结构,字段信息,以及...

    PowerDesigner生成带注释的pdm脚本

    当PowerDesigner连接好数据库,并生成模型后,在PowerDesigner用Ctrl+Shift+x快捷键打开,然后将脚本内容粘贴运行,就可以开始生成数据库中存在的注释了

    PowerDesigner_pdm_book.rar_PowerDesigner_pdm

    在PDM中,你可以设置存储类型、长度、精度等属性,以及定义表之间的关系,为实际数据库创建提供精确的蓝图。 **3. 使用PowerDesigner_pdm_book.chm** 这个CHM文件是一个帮助文档,通常包含教程、操作指南和技术细节...

    POWERDESIGNER逆向工程从现有数据库生成PDM

    然后在"Reverse Engineer Database"选项中,选择使用ODBC数据源,选择已配置的数据源,如“s2ms”,接着PowerDesigner将列出数据库中的所有表、视图和用户,选择需要的元素生成PDM模型。 4. **模型生成**:确认选择...

    PowerDesigner逆向工程时,将表字段的comment转换为PDM的name

    在实际工作中,有时我们希望PDM中的元素名称能更直观地反映出其功能或含义,这就涉及到将表字段的注释(Comment)转换为PDM中的名称(Name)。 标题中提到的问题,即"PowerDesigner逆向工程时,将表字段的comment...

    PowerDesigner12.5直接从DB中导出pdm文件.doc

    PowerDesigner12.5 直接从 DB 中导出 pdm 文件 PowerDesigner12.5 是一款功能强大且广泛应用的数据库设计和管理工具,对于数据库管理员和开发者来说都是非常实用的工具。下面将详细介绍如何使用 PowerDesigner12.5 ...

    PowerDesigner里复制comment列到name列

    PowerDesigner里执行脚本命令,把comment列的内容批量复制到name列。

    把powerdesigner中表名为汉字以及列名为汉字的转为汉语拼音抽头的方法

    然而,在使用 PowerDesigner 进行数据建模时,经常会遇到表名和列名使用汉字的问题,这就需要将汉字表名和列名转换为汉语拼音抽头以便于数据存储和管理。 本文将介绍如何使用 VBScript 脚本将 PowerDesigner 中的...

Global site tag (gtag.js) - Google Analytics