在PowerDesigner中创建表时如何插入默认列

时间:2019-09-05 15:18:22

标签: powerdesigner

我们在所有表中都有几列是必需的。列用于审核,记录日期等。在物理模型中创建PowerDesigner以将这些列自动添加到表中时,如何配置这些过程?

我正在使用PowerDesigner 16.5。

我已经能够在触发器模板项的DBMS属性中插入默认触发器,在这里我可以为所有表插入几个默认触发器(尽管我仍在学习PD中使用的“语言”),并且在每个表中将插入默认触发器。

1 个答案:

答案 0 :(得分:0)

我看到了将设计助手添加到您的PDM的几种方法:

  • 将其添加到Table类的Initialize事件处理程序中
  • 在Table类中创建一个菜单,以将其添加到现有表中

对于所有这些,最好在单独的扩展名(Tools > Resources > Extensions > Physical Data Models...)中定义这些工具,也许用Auto attach来定义,以便可以在多个模型之间共享。然后,您可以使用Model > Extensions > Attach an Extension工具栏项将其附加到现有模型。

您可以使用标准的VBScript(这是一种实际的语言,并且不仅用于PD ...

以下所有元素都包含在此扩展程序中。

在全局脚本中,用于实际添加默认列的代码。

function ColumnExists(tab, name)
   if tab.ClassName = "Table" then
      dim col
      for each col in tab.Columns
         if col.Name = name then
            ColumnExists = true
            exit function
         end if
      next 
   end if
   ColumnExists = false
end function

Sub DoCreateColumns(tab)
   if not tab.ClassName = "Table" then exit sub
   dim c
   if not ColumnExists(tab,"AuditDate") then
      set c = tab.CreateObject(cls_Column)
      c.Name = "AuditDate"
      c.Code = "ADDT"
      c.DataType = "datetime"
      output "... adding column AuditDate"
   end if
End Sub

在Table类上,有一个用于初始化的事件处理程序:

Function %Initialize%(obj)
   DoCreateColumns obj
   %Initialize% = True
End Function

对于“表格”上下文菜单,您需要一个方法,例如CreateColumns:

Sub %Method%(tab)
   DoCreateColumns tab
End Sub

和菜单,例如CreateColumns(实际的上下文菜单项名称取自您在XML选项卡中编辑的命令标题...)

<Menu>
   <Command Name="CreateColumns" Caption="Create Standard Columns" />
</Menu>