power desinger 学习笔记<八>

转-PowerDesigner 把Comment复制到name中和把name复制到Comment

在使用PowerDesigner对数据库进行概念模型和物理模型设计时,一般在NAME或Comment中写中文,在Code中写英文。Name用来显 示,Code在代码中使用,但Comment中的文字会保存到数据库Table或Column的Comment中,当Name已经存在的时候,再写一次 Comment很麻烦,可以使用以下代码来解决这个问题

在PowerDesigner中使用方法为:

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

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

  1. Option   Explicit
  2. ValidationMode   =   True
  3. InteractiveMode   =   im_Batch
  4. Dim   mdl   '   the   current   model
  5. '   get   the   current   active   model
  6. Set   mdl   =   ActiveModel
  7. If   (mdl   Is   Nothing)   Then
  8. MsgBox   "There   is   no   current   Model "
  9. ElseIf   Not   mdl.IsKindOf(PdPDM.cls_Model)   Then
  10. MsgBox   "The   current   model   is   not   an   Physical   Data   model. "
  11. Else
  12. ProcessFolder   mdl
  13. End   If
  14. '   This   routine   copy   name   into   comment   for   each   table,   each   column   and   each   view
  15. '   of   the   current   folder
  16. Private   sub   ProcessFolder(folder)
  17. Dim   Tab   'running     table
  18. for   each   Tab   in   folder.tables
  19. if   not   tab.isShortcut   then
  20. tab.comment   =   tab.name
  21. Dim   col   '   running   column
  22. for   each   col   in   tab.columns
  23. col.comment=   col.name
  24. next
  25. end   if
  26. next
  27. Dim   view   'running   view
  28. for   each   view   in   folder.Views
  29. if   not   view.isShortcut   then
  30. view.comment   =   view.name
  31. end   if
  32. next
  33. '   go   into   the   sub-packages
  34. Dim   f   '   running   folder
  35. For   Each   f   In   folder.Packages
  36. if   not   f.IsShortcut   then
  37. ProcessFolder   f
  38. end   if
  39. Next
  40. end   sub

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

    1. '代码二:将Comment中的字符COPY至Name中
    2. Option   Explicit
    3. ValidationMode   =   True
    4. InteractiveMode   =   im_Batch
    5. Dim   mdl   '   the   current   model
    6. '   get   the   current   active   model
    7. Set   mdl   =   ActiveModel
    8. If   (mdl   Is   Nothing)   Then
    9. MsgBox   "There   is   no   current   Model "
    10. ElseIf   Not   mdl.IsKindOf(PdPDM.cls_Model)   Then
    11. MsgBox   "The   current   model   is   not   an   Physical   Data   model. "
    12. Else
    13. ProcessFolder   mdl
    14. End   If
    15. Private   sub   ProcessFolder(folder)
    16. On Error Resume Next
    17. Dim   Tab   'running     table
    18. for   each   Tab   in   folder.tables
    19. if   not   tab.isShortcut   then
    20. tab.name   =   tab.comment
    21. Dim   col   '   running   column
    22. for   each   col   in   tab.columns
    23. if col.comment="" then
    24. else
    25. col.name=   col.comment
    26. end if
    27. next
    28. end   if
    29. next
    30. Dim   view   'running   view
    31. for   each   view   in   folder.Views
    32. if   not   view.isShortcut   then
    33. view.name   =   view.comment
    34. end   if
    35. next
    36. '   go   into   the   sub-packages
    37. Dim   f   '   running   folder
    38. For   Each   f   In   folder.Packages
    39. if   not   f.IsShortcut   then
    40. ProcessFolder   f
    41. end   if
    42. Next
    43. end   sub
    44. 原帖地址:http://blog.csdn.net/smartsmile2012/article/details/7922863
上一篇:C#中byte[] 与string相互转化问题


下一篇:在map中根据value获取key