我正在使用分析向导创建LayoutDXL列,该列应列出当前模块中每个现有的In-link的属性(例如AbsoluteNumber)。在一个特定的DOORS模块中,生成的DXL代码两次将这些属性显示两次。在其他模块中不会发生这种情况。
我确实注意到有问题的模块没有一组定义的LinkModule(如File / ModuleProperties中所示)。会造成某种回环吗?
我发现DXL代码以某种方式“思考”定义了LinkModule的两个版本,即“ Current”和“ Baseline X”。它们每个都链接到目标DOORS模块中的不同基线编号。我不知道该如何解决。
作为参考,这是使用向导生成的DXL代码。这是DOORS 9.6.1.11
// DXL generated by DOORS traceability wizard on 12 February 2019.
// Wizard version 2.0, DOORS version 9.6.1.11
pragma runLim, 0
string limitModules[1] = {"[serial number redacted]"}
void showIn(Object o, int depth) {
Link l
LinkRef lr
ModName_ otherMod = null
Module linkMod = null
ModuleVersion otherVersion = null
Object othero
string disp = null
string s = null
string plain, plainDisp
int plainTextLen
int count
bool doneOne = false
string linkModName = "*"
for lr in all(o<-linkModName) do {
otherMod = module (sourceVersion lr)
if (!null otherMod) {
if ((!isDeleted otherMod) && (null data(sourceVersion lr))) {
if (!equal(getItem otherMod, (itemFromID limitModules[depth-1]))) continue
load((sourceVersion lr),false)
}
}
}
for l in all(o<-linkModName) do {
otherVersion = sourceVersion l
otherMod = module(otherVersion)
if (null otherMod || isDeleted otherMod) continue
if (!equal(getItem otherMod, (itemFromID limitModules[depth-1]))) continue
othero = source l
if (null othero) {
load(otherVersion,false)
}
othero = source l
if (null othero) continue
if (isDeleted othero) continue
doneOne = true
if (depth == 1) {
s = probeRichAttr_(othero,"Absolute Number", false)
if (s == "")
displayRich("\\pard " " ")
else
displayRich("\\pard " s)
s = probeRichAttr_(othero,"Object Heading", false)
if (s == "")
displayRich("\\pard " " ")
else
displayRich("\\pard " s)
}
}
}
showIn(obj,1)
答案 0 :(得分:0)
我已经看到了对象DID在它们之间具有两个链接的情况,这可以通过不同的链接模块来实现(模块A的对象1满足模块B的对象2和模块A的对象1完善模块B的对象2) 。尽管可能有这种情况,但是大多数情况下,这是由于未正确使用“链接移动”脚本引起的。
您还应该通过显示链接模块的名称(变量linkModName)来扩展代码。也许这表明了您进行观察的原因