如何根據多個組合框選擇進行子集化<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />大家好,
我正在嘗試編寫一個腳本,該腳本根據動態組合框中的兩個選擇創建一個子集。 對話部分似乎很好,因為我的變量在我選擇它們時被保存,但子集的實際生成不起作用。
/* 暫時刪除打開的數據庫部分 */
清除全局():
ER_Temp = Open("C:\Users\Kilik\Desktop\Tbl_RIE_ERS.jmp");
/* 提取集合“a”中的獨特電影列表和集合“b”中的獨特工具*/
總結(a = By(:Film));
插入到(一,“<選擇電影>”,1);
總結( b = By( :Tool ) );
插入(b,“<選擇工具>”,1);
/* 創建一個對話框*/
新窗口(“示例”,
<<模態,
H 列錶框(
/*創建一個框,從中選擇電影*/
面板框(“選擇電影:”,
cb1 = 組合框(
一個,
<<設置函數(
函數({這個},
myFilm = this << 被選中();
)
)
)
),
/*創建一個用於選擇工具的框*/
面板框(“選擇一個工具:”,
cb2 = 組合框(
乙,
<<設置函數(
函數({這個},
myTool = this << 被選中();
)
)
)
),
)
);
//根據兩個選擇創建一個子集
ER_Temp << clearRowStates;
ER_Temp << selectWhere((:Film == myFilm)&(:Tool==myTool));
Selection = ER_Temp << Subset(輸出表名("selection")));
謝謝,
大衛
回复:如何根據多個組合框選擇進行子集化嗨,大衛。
在這個例子中,myFilm 和 myTool 都是字符串。正如 Select Where 所寫的那樣,如果 :Film 或 :Tool 是數字列,則不會選擇任何行,因為數字列不可能具有字符串值。Num() 函數會將表示為字符串的數字(例如,“12”)轉換為數值。
要考慮的另一件事是,在新窗口中所做的選擇的數據中可能沒有匹配的值。用戶會看到 :Film 的所有唯一值和 :Tool 的唯一值,但這並不意味著對於 :Film 的每個值,數據中都會表示 :Tool 的每個值。Select Where() 語句只選擇兩個條件都為真的行。
希望有幫助。
溫迪
回复:如何根據多個組合框選擇進行子集化您的子集語句中有一個額外的括號。另外,我會避免變量和表具有相同的名稱。將其更改為:
選擇_dt = ER_Temp <<子集(輸出表名( “選擇” ) ,選定的行( 1 )) ;