我尝试创建一个DXL脚本,该脚本将从选择的一组模块中获取所有对象,并将它们组合成一个新模块,然后将其导出到Excel中。
我遇到的问题是我无法弄清楚如何从不打开的模块中获取对象。我对任何方法都持开放态度,但我一直在尝试使用ModuleHandles。我见过的大多数例子都是在当前模块中移动对象。
答案 0 :(得分:0)
您需要两个Module类型的变量,一个用于源模块(例如mSrc),一个用于目标模块(mTgt)。使用命令read
打开源模块并将结果句柄设置为mSrc。使用edit
(或create
)打开目标模块并将结果句柄设置为mTgt。
然后使用Object类型的变量迭代mSrc(for oSrc in mSrc
或者... in entire mSrc
的所有对象,具体取决于源模块中的视图的设置方式),在目标中创建对象module(到Object类型的变量oTgt)将您需要的对象属性从oSrc复制到oTgt。对于后者,copyops.inc中有一个函数copyAttribute_。
如果要复制源模块的层次结构,则需要for Object in Object
类型的循环和create after
create below
等命令。
也许IBMs DXL论坛或某些网站上已有脚本可以为您的问题提供解决方案。