网上关于PD里面Code/Name自动调整的文章中转载的最多是一篇《PowerDesigner Name/Code自动调整》,可文章里面的脚本是有问题的,很多人应该都试过,无法使用。此文章转载的很多,百度直接搜索完整的文章标题有21,200条记录!不知道为啥没人指出其问题,让这个并不是正确的代码在网上流行这么多年。
原文如下:
这个文章里面的第二段式正确的,第一段语法有问题。
.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.默认就是打开的。