PowerDesigner之设置(2)——扩展属性

数据库:SQL2000

PD版本:16

PowerDesigner之设置(1)中,创建表的表头注释部分由于中文的原因无法定长,这里我们用PD的扩展方法来解决。

具体方法如下:

  1. 主菜单DataBase->Edit Current DBMS->Profile-> Table-> Extended Attributes右键new菜单添加一个属性,下面添加一个TableName30属性,勾选Computed,则会自动显示方法标签页,这个方法用来重写表名行注释,这里就用了只读方法就可以了,勾选Read Only

  2. 切换到Global Script标签页,这里面的是全局脚本,我们添加一个获取字符串中汉字个数的方法GetHanziNum,如下:
    '获取字符串中汉字总数
    Function GetHanziNum(sStr)
       '汉字总数
       Dim Sum
       '循环数
       Dim c
       '表名中字符
       Dim Char
       Sum = 0
       For c = 1 To Len(sStr)
          Char = Mid(sStr, c, 1)
          If (AscW(Char) > -40870 And AscW(Char) < -19967) Or (AscW(Char) < 40870 And AscW(Char) > 19967) Then
             Sum = Sum + 1
          End If
       Next
       GetHanziNum=Sum
    End Function
    View Code

  3. 切换到Get Method Script标签页,写该属性的返回值。
    Function %Get%(obj)
       ' Implement your getter method on <obj> here
       ' and return the value
    
       '表名名称,表名代码
       Dim tableName,tableCode
       '拼接字符串
       Dim str
       tableName=obj.name
       tableCode=obj.code  
       str="/* Table: "_     
          & left(tableCode & "               ",15)_    
          & left(tableName & "                                     ",39-GetHanziNum(tableName))_   
          & "*/"     
       %Get% = str
    End Function
    View Code

  4. 修改table的create值。

    主菜单DataBase->Edit Current DBMS->Script->Objects->Table->CreateValue修改。

    将其中的表头注释部分修改为:

    /*==============================================================*/

    %TableName30%

    /*==============================================================*/

     

    综上,大功告成!

    下面展现下效果:

    汉字与英文结合也不受影响。如下:

posted @ 2013-08-02 13:00  FoolRabbit  阅读(1064)  评论(0编辑  收藏  举报