資料過濾器 - 當 where 不等於語句 (=!) 沒有替代值時選擇全部尋求一些幫助來理解行為或更好的腳本編寫方法。
編寫腳本來捕獲資料中的異常。 當版本為 GP 但處於活動狀態時不是X。
Names Default To Here( 1 );
dt = Current Data Table();
df = dt << Data Filter(
Location( {138, 181} ),
Add Filter(
columns( :Active, :Version ),
Where( :Active != "X" ),
Where( :Version == "GP" )
)
);然後,腳本的其餘部分對該資料進行子集化,並根據該子集建立表格。
我遇到的問題是當所有行都有 Active == X 時。過濾器正在選擇所有行。我想那是因為它沒有找到空白(不缺少)的 X 的替代品。處理這個問題的最佳方法是什麼?
上述程式碼的結果:

回覆:資料過濾器 - 當 where 不等於語句 (=!) 沒有替代值時選擇全部快速註釋。我使用你的建議來幫助進行一項分析。 繼續下一步。這就是編碼與螢幕截圖不匹配的原因。
回覆:資料過濾器 - 當 where 不等於語句 (=!) 沒有替代值時選擇全部這非常有幫助。 謝謝。
我最終做了類似以下的事情。
腳本問題,有更好的方法嗎?就像我需要 CLE_TL 中間體嗎?或者它可以只是 dt << select where << 子集在一行上?建立 CLE_TL 物件有好處嗎?
names default to here(1);
dt = current data table();
shipPlant = "CLE";
shipMode = "truckloads";
subsetTable = "CLE_truckloads";
//filter
CLE_TL = dt << select where(:TransportPlanningPt == shipPlant & :MODE == shipMode);
//subset
CLE_TL << Subset(
Output Table( subsetTable ),
Selected Rows( 1 ),
Selected columns only( 0 )
);
回覆:資料過濾器 - 當 where 不等於語句 (=!) 沒有替代值時選擇全部好的,它實際上使您的腳本編寫變得更容易。 不涉及煩人的人際互動!
資料表訊息<< 選擇Where(布林表達式)將為您做這一切。 布林表達式可以很簡單(例如:年齡 == 12 )或複雜(例如, :年齡 == 12 & :性別 == “F” )。 任何傳回可解釋為布林值的結果(即 0 為假,非 0 為真)的函數都可以工作。 此要求表示您可以使用查詢功能,例如包含(來源列,“目標”)對於文字目標或正規表示式(來源列,正規表示式)對於圖案。
選擇所需的行後,然後發送<< 子集()訊息來提取資料。
回覆:資料過濾器 - 當 where 不等於語句 (=!) 沒有替代值時選擇全部無需用戶互動。只是新手在手動完成每個步驟後竊取程式碼,然後根據這些步驟建立程式碼。我認為有更好的方法來選擇子集並建立子集表?
回覆:資料過濾器 - 當 where 不等於語句 (=!) 沒有替代值時選擇全部只是檢查:為什麼要使用資料過濾物件? 使用者是否必須為了腳本而進行互動?
回覆:資料過濾器 - 當 where 不等於語句 (=!) 沒有替代值時選擇全部您可以先檢查是否符合條件:
target rows = Current Data Table() << Get Rows Where( :Active != "X" );
If( N Row( target Rows ),
...
);