2017-04-19 120 views
0

我有一个脚本,其中我通过某个属性值过滤模块中的数据。当我然后循环浏览这些对象时,现在我正在显示infoBox中对象的绝对数量。但是,该脚本正在显示不在数据集中的绝对数量的对象。经过进一步调查,我发现额外的绝对数字是针对整个模块中的每个表格。我不知道为什么脚本不包含这些表格,因为它们不在过滤的模块数据中。我甚至尝试过使用此属性值手动过滤模块,然后使用“工具 - >编辑DXL”来遍历结果项目,并且它仍然显示未包含的表格的编号。为什么会这样做? 这里是我的代码:DOORS DXL问题循环通过已过滤的数据集

bm2 = moduleVar 
Filter fltr = contains(attribute "RCR_numbers", sRCRNum, false); 
filtering on; 
set(bm2, fltr); 
for oObj in document(bm2) do { 
    absNum = oObj."Absolute Number"; 
    infoBox("Object #" absNum "."); 
} 

我也尝试删除该文件铸所以它说:“对于oObj在BM2做”,而不是,但这并不改变输出。为什么代码给我的对象不在过滤器中?任何帮助将不胜感激,因为这是我的项目的一个高优先级问题,我自己也没有想法。

克里斯

+0

如果你只是运行前四行代码(即只设置过滤器,但不要做计数),你会看到你期望的一组对象吗? –

+0

是的,我看到应该在那里的对象(即没有表格)。 – Chris

+0

不知道我是否正确理解你的问题,但你可能必须使用烫发“void showTables(bool)”和“void tableContents(bool)”来更改模块的显示设置 – Mike

回答

0

DOORS 9.6.1 DXL Reference Manual可以看到:

为对象文件

分配变量o是在模块每个连续 对象。 它相当于模块循环中的for对象,其中 除了它包含表头对象,但不包含行标头 对象也不是单元格。

因此,您必须在模块使用为对象,或者您现有的循环中,测试的隐藏属性TABLETYPE - 这将被设置为TableNone对于任何不是表的一部分,包括表头。