2017-04-19 49 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對於任何不是表的一部分,包括表頭。