0

DOORS 8.3 的“管理打开的模块”对话框列出了所有打开的模块、它们的模式(如果可见)等以及引用的数量。我想使用该引用计数来确定我的脚本是否可以安全地关闭模块并避免在当前使用时关闭。我不确定“参考”列到底显示了什么。我在互联网上的帮助或相应信息中没有找到它的描述。有人知道是否有一些未记录的 DXL API 可以让我访问该信息吗?

编辑:我找到了refcount_返回整数的函数。但我不知道返回值是什么意思。

4

2 回答 2

1

看起来引用是指当前引用该模块的打开模块的数量。例如:当您打开具有链接的模块时,DOORS 还会在后台打开链接使用的所有链接模块。因此,如果我通过 LINKMOD_A 打开包含链接的文档,LINKMOD_A 将显示 1 个参考。如果我随后打开另一个具有通过相同 LINKMOD_A 链接的文档,则引用数将增加到 2。我没有看到正式模块上的引用数高于 1。在你的一些模块上试试这个,看看你什么时候在一个链接模块上得到多个引用,然后refcount_对那个链接模块运行你的函数,看看你是否得到相同的数字。我不确定这是否是您正在寻找的功能,但它肯定是可能的。祝你好运!

于 2013-02-01T16:20:45.030 回答
0

我假设您的脚本正在打开模块,所以您需要做的就是首先检查它是否已经打开。

string sModuleFullName = "/Some/Module/Path"
Module oModule = module(sModuleFullName)
bool bClose = null(oModule)
if(null(oModule)) {
oModule = read(sModuleFullName, true,true)
}

// do stuff

if(bClose) {
close(oModule)
}

编辑:关闭由触发器、属性或布局 dxl 打开的模块的替代方法

// Save currently open Modules to a Skip
Skip oOpenModulesSkip = createString()
Module oModule
for oModule in database do {
    put(oOpenModulesSkip, fullName(oModule), fullName(oModule))
}

// do stuff

// Close Modules not in the Skip
for oModule in database do {
    if(!find(oOpenModulesSkip, fullName(oModule))) {
        close(oModule, false)
    }
}
delete(oOpenModulesSkip)
于 2013-05-06T07:41:43.233 回答