zoukankan      html  css  js  c++  java
  • 【原创】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.默认就是打开的。

  • 相关阅读:
    uva 10369 Arctic Network
    uvalive 5834 Genghis Khan The Conqueror
    uvalive 4848 Tour Belt
    uvalive 4960 Sensor Network
    codeforces 798c Mike And Gcd Problem
    codeforces 796c Bank Hacking
    codeforces 768c Jon Snow And His Favourite Number
    hdu 1114 Piggy-Bank
    poj 1276 Cash Machine
    bzoj 2423 最长公共子序列
  • 原文地址:https://www.cnblogs.com/edzjx/p/1831914.html
Copyright © 2011-2022 走看看