• 【原创】PowerDesigner Name/Code自动调整 的正确版本。


    网上关于PD里面Code/Name自动调整的文章中转载的最多是一篇《PowerDesigner Name/Code自动调整》,可文章里面的脚本是有问题的,很多人应该都试过,无法使用。此文章转载的很多,百度直接搜索完整的文章标题有21,200条记录!不知道为啥没人指出其问题,让这个并不是正确的代码在网上流行这么多年。

    原文如下:

    PowerDesigner Name/Code自动调整
    大家都清楚在用PowerDesigner的时候,当你输入Name的时候Code是会自动帮你按照Name的内容填上的.
    这个功能虽然好用,但是我需要在Name这一项加上一个中文的注释,这个时候怎么办呢?
    下面两个例子,相信对你相当有用.
    Examples

    · Script 
    1
    .set_value(_First, 
    truenew
    .foreach_part(%Name%, 
    "'#'"
    .if (%_First%) 
    .delete(%CurrentPart%) 
    .set_value(_First, 
    false, update) 
    .else 
    %CurrentPart% 
    .endif 
    .next
    这个例子是把Name内容的#号后边的内容当作Code.
    如:在Name列输入    用户名#user_name  则在Code列自动会变成   user_name

    · Script 
    2
    .set_value(_First, 
    truenew
    .foreach_part(%Name%, 
    "'#'"
    .if (%_First%) 
    %CurrentPart% 
    .set_value(_First, 
    false, update) 
    .endif 
    .next
    这个例子是把Name内容的#号前边的内容当作Code.
    如:在Name列输入    user_name#用户名  则在Code列自动会变成   user_name

    具体操作方法是:
    1、打开powerDesigner菜单的Tools->Model Options....->Naming Convention
    2、选中Name,并勾选Enable name/code conversions.
    3、选择Name To Code,把上面任意一个例子的代码(红色部分)贴到conversion script内容框中即可。

    注:用这个script的时候,必须先设置,才会转换的。
    如果你已经设计好了,再设置是不会对之前的东西改变的。

    这个文章里面的第二段式正确的,第一段语法有问题。
    .delete(%CurrentPart%)这句语法不对。少了结束语法。修改成下面的代码就可以了。
    .delete(%CurrentPart%)
    .enddelete
    其实我上面的语法也不是很标准。再严谨一点是:
    .delete(%CurrentPart%)
    %CurrentPart%
    .enddelete

    最后整理一下正确的是:

    脚本1:

    .set_value(_First, true, new)
    .foreach_part(%Name%, "'#'")
    .if (%_First%)
    .delete(%CurrentPart%)

    .enddelete
    .set_value(_First, false, update)
    .else
    %CurrentPart%
    .endif
    .next

    这个例子是把Name内容的#号后边的内容当作Code.

     

    脚本2:

    .set_value(_First, true, new)
    .foreach_part(%Name%, "'#'")
    .if (%_First%)
    %CurrentPart%
    .set_value(_First, false, update)
    .endif
    .next

     这个例子是把Name内容的#号前边的内容当作Code.

     另外在使用这个功能时候最好把name/code自动复制功能打开。Tool——Genneral——Options Dialog——Name to Code mirroring.默认就是打开的。

  • 相关阅读:
    680. Valid Palindrome II【easy】
    125. Valid Palindrome【easy】
    459. Repeated Substring Pattern【easy】
    2. Trailing Zeros【easy】
    142. O(1) Check Power of 2【easy】
    181. Flip Bits【easy】
    183.Wood Cut【hard】
    61. Search for a Range【medium】
    关闭微软对win10的推送
    让未激活的win8.1不再跳出提示激活的窗口
  • 原文地址:https://www.cnblogs.com/edzjx/p/1831914.html
Copyright © 2020-2023  润新知