利用脚本创建PDM

最近因工作需要,要将一个WORD中使用表格描述的一些表导入到PowerDesigner(此后简称PD)的一个PDM中,但仔细研究PD的各个菜单项,并没有找到一个导入的方案,上网一顿Google似乎也找到合适的方案。难道真的只能一个一个字段的复制过去?God!看到那200多个字段就头晕……没办法了,只好自己动手丰衣足食。
(如果有朋友知道有捷径,麻烦告知一声,在下不胜感激。)
通过一番研究,发现PD提供了VBScript脚本语言的支持,通过这个脚本语言,即可方便的对PD中各种对象进行操作。
如果碰巧您也在用PD12,可以在其目录下找到pdvbs12.chm(其他版本应该类似),这个文档详细描述了PD提供的所有对象。
当然,在看这份文档之前,我们最好先懂点VBScript。什么?还不懂VBScript?这个不是问题,网上资料一大把,随便搜索下找到教程,应该很快就能对其明白个一二。
当然,虽然这些资料告诉了我们一切,但我们目前并不需要这么多的内容,咱们还是快切入主题吧。
我们的目的是创建表,但表是建在什么地方呢?很显然PD告诉了我们答案,在Model中。嗯,所以我们首先需要拿到Model对象,只要拿到了它,我们就可以为所欲为了。

Dim mdl
Set mdl = ActiveModel

通过这两句简单至极的代码,就拿到了当前活动(即选中)的Model对象引用。接下来,我们将调用它的方法来创建表。

Dim table
Set table=mdl.Tables.CreateNew

我相信大家都是高手,这样一句代码,只需一瞥就能明白是什么意思。嗯?不是高手?那就翻翻资料吧,毕竟讲语法等基础并不是本文的重点(实在是区区在下的VBScript只学过两天,班门弄斧难免会闹笑话,还请见谅……)。
现在表是创建了,但总觉得少了点什么……哦,对了,名字还没有呢— —,快给它起个名字吧。但名字怎么取呢?翻API?还是先发挥一下瞎摸索的大无畏精神,先给它的name属性赋个值试试看。

Table.name=”HELLO_WORLD”

还真瞎猫碰上死耗子,给撞上了。什么?你问我是怎么知道的?这还用问吗?你打开Model中任意一个表的属性框,是不是看到了一个标签为Name的输入框?
接下来依葫芦画瓢,把Code,Comment等属性也加上。
嗯,现在看起来我们的表已经初具规模了,再给它加上些字段,它就是一张真正的表了。

Dim column
set column =table.Columns.CreateNew

我们利用table对象自身的功能创建了一个字段,上面的套路依旧管用,打开列的属性面板,找到中意的属性,赋给它值吧。
其实说了这么多,也只是九牛一毛而已,PD提供了很多类给我使用,它能操作PD世界中的一切(也许),你只要翻开pdvbs12.chm这个文档,即可发现这个宝库。
当然如果你的目的和我一样,只是为了建表和字段,那么上面说的东西和方法也就够用了。
有一些面板上不可见的属性或方法我们还是得查查文档,比方说设置主键:

column.Primary=true

你要是只对着面板“格”,那绝对是“格”不出个什么花来。所以我们还是老老实实的打开帮助文档,点到索引选项,输入Column这个关键字,它就会迅速的带我们来到Column类的世界,这里有它的一切,包括它的长了几只脚,它爸爸长了几只脚,它爸爸的爸爸……额,反正我们知道这里有它的一切就对了。
嗯,知道了怎么操纵PD,接下来我们应该解决最重要的问题了。到底要怎么样才能导入WORD中的那个表格?
这确实是个问题。如果单靠VBScript来解决这个问题,可能我今天就没法在这里闲扯了,肯定得埋头在无数资料之中,当然,我想到了一个曲线救国的方法,那就是:
先把WORD中的表格拷到Excel里,再用Java解析Excel生成一个文本文档,最后,才用VBScript读入文本,解析文本,创建模型。
这个解题思路充分的体现了数学解题思路的精华,当然,它不是个好办法,但却能解解当务之急,如果您有了更好的实现,希望也能给我一份。

最后附上我那乱七八糟的程序,如果您的忍耐力比较好的话,我建议您看看。 :D
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值