• PowerDesigner 把Comment写到name中 和把name写到Comment中 pd7以后版本可用


    另外在字段中 把 Identity 和ExtIdentitySeedInc 都显示出来,勾选 Identity列,并在 ExtIdentitySeedInc 填入: 1,1 就可以实现 自增标识列了
     
    本解决方案背景:  
        1. 由于PDM 的表中 Name 会默认=Code 所以很不方便, 所以需要将 StereoType 显示到表的外面来,然后再将 StereoType 的值更新到 Comment 列中 来实现,即在外面图型界面显示中文,又能将中文备注添加到 sql2000 或是 sql2005 的字段说明中显示,
     
    解决方案:
      第一步: 将 StereoType 显示在图形界面上,并隐藏原先Name 属性
       1.1 打开[工具]->[显示属性](英文:Display Preferences) ->Content->Table->右边面板Columns框中 勾选: StereoType ,这样再在 StereoType中填入中文字段说明就会显示在图形界面上了.
          第二步: 将 StereoType 显示在表字段添加界面.
          第三步: 将以下代码在 菜单:工具-> Execute Commands -> Edit/Run Script.... 中执行(这样就会把 StereoType 中的值赋给 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 
                      tab.comment   =   tab.StereoType
                      Dim   col   '   running   column 
                      for   each   col   in   tab.columns 
                            col.comment=   col.StereoType 
                      next 
                end   if 
          next
    
          Dim   view   'running   view 
          for   each   view   in   folder.Views 
                if   not   view.isShortcut   then 
                      view.comment   =   view.StereoType 
                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

    然后导出就完事了.....

    然后再看我博客里的一篇显示 表字段和说明等等的一段脚本,就完美了...

     
    摘自网络,供自己以后备查使用.
     
    在使用PowerDesigner对数据库进行概念模型和物理模型设计时,一般在NAME或Comment中写中文,在Code中写英文。Name用来显 示,Code在代码中使用,但Comment中的文字会保存到数据库Table或Column的Comment中,当Name已经存在的时候,再写一次 Comment很麻烦,可以使用以下代码来解决这个问题:
    • 代码一:将Name中的字符COPY至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
                        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

    --------------------------------------------

             另外在使用REVERSE ENGINEER从数据库反向生成PDM的时候,PDM中的表的NAME和CODE事实上都是CODE,为了把NAME替换为数据库中Table或Column的中文Comment,可以使用以下脚本:

    • 代码二:将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

    -----------------------------------------------------------------------

    以上两段代码都是VB脚本,在PowerDesigner中使用方法为:

        PowerDesigner->Tools->Execute Commands->Edit/Run Scripts

    将代码Copy进去执行就可以了,是对整个CDM或PDM进行操作

  • 相关阅读:
    PTA 7-29 修理牧场(Huffman树)
    全网最详细最好懂 PyTorch CNN案例分析 识别手写数字
    【Python Deap库】遗传算法/遗传编程 进化算法基于python DEAP库深度解析讲解
    【比较】遗传算法GA和遗传编程GP有什么不同?
    【python(deap库)实现】GEAP 遗传算法/遗传编程 genetic programming +
    【比较】粒子群算法PSO 和 遗传算法GA 的相同点和不同点
    【遗传编程/基因规划】Genetic Programming
    【经典大数据竞赛科普】泰坦尼克灾难 到底是个什么东西
    【Python代码】TSNE高维数据降维可视化工具 + python实现
    【python代码】 最大流问题+最小花费问题+python(ortool库)实现
  • 原文地址:https://www.cnblogs.com/wuyifu/p/2855705.html
Copyright © 2020-2023  润新知