如何將Data Filter()選中的數據放到新的數據表中(使用JSL)?我知道如何以交互方式執行此操作,但如何通過 JSL 將數據過濾器 () 從父數據表中選擇的數據獲取到新的(子集)數據表中? 當數據過濾器中的選擇發生變化時,我還需要新創建新的子集數據表(關閉舊子集)或刷新舊數據表(如果可能的話)。
自動化和腳本Re: 如何將Data Filter()選中的數據放入新的數據表中(使用JSL)?你有什麼類型的數據過濾器,在哪裡? 用戶如何執行選擇(應該只使用在數據過濾器上完成的選擇)? 結果表的用途是什麼?
檢查數據過濾器的腳本索引

獲取篩選行、獲取 Where 子句、顯示子集作為一些選項
Re: 如何將Data Filter()選中的數據放入新的數據表中(使用JSL)?@jthi它是數據過濾器()
這是我到目前為止所得到的。 它部分起作用。 如果選擇發生變化,我需要更新表格或生成新表格。 如何在 JSL 中執行此操作(在 Close () 上)?
Names Default To Here (1);
dt = Current Data Table();
nw = New Window("Select Parameters", << modal, << return result,
obj = dt << Data Filter(
//Location( {3000, -600} ),
Width( 315 ),
Conditional,
Add Filter(
columns( :Col1, :Col2, :Col3, :Col4),
Display( :Col2, "Check Box Display" ),
Display( :Col3, "Check Box Display" ),
Display( :Col4, "Check Box Display" ),
Display(
:Parameter,
N Items( 20 ),
"Check Box Display",
Find( Set Text( "" ) )
)
)
);
);
//obj << Get Filtered Rows;
dtNew = dt << subset( selected columns(1), selected rows(1));我從所有未選中的框開始,供用戶根據生成的數據表進行選擇。 Get Filtered Rows 在我的案例中似乎不起作用。
Re: 如何將Data Filter()選中的數據放入新的數據表中(使用JSL)?您希望每次選擇更改時都生成新表嗎? 或者您是否希望在用戶做出選擇後繼續使用模態?
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
nw = New Window("Select Parameters",
<<MODAL></MODAL>Re: 如何將Data Filter()選中的數據放入新的數據表中(使用JSL)?@jthi我更喜歡一個每次選擇更改刪除表中的舊值時都會生成新表(對我接下來要執行的操作很有用)。 我不知道該怎麼做,因此採用了模態方法。
Re: 如何將Data Filter()選中的數據放入新的數據表中(使用JSL)?當過濾器中的選擇發生變化時,您可以使用過濾器狀態處理程序來觸發“事件”。
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
f = Function({a},
Show(obj << get filtered rows);
);
nw = New Window("Select Parameters",
<<MODAL></MODAL>Re: 如何將Data Filter()選中的數據放入新的數據表中(使用JSL)?@jthi感謝您指向過濾器狀態處理程序。 但是,您的腳本並不完全按照我希望的“用新數據替換現有數據表”的方式執行此操作。 當用戶更改選擇時,數據過濾器窗口需要保持打開狀態,並且在“dtNew”中填充/更新/重新生成數據。 可能的?
Re: 如何將Data Filter()選中的數據放入新的數據表中(使用JSL)?讓用戶做出所有選擇,然後讓他們在準備好後按 OK 鍵不是更容易嗎?
Re: 如何將Data Filter()選擇的資料放入新的資料表中(使用JSL)?最好是使用本機資料篩選器 - 全域資料篩選器來變更資料表的行狀態。
如果您有一個帶有此類本機資料過濾器的視窗(第一部分),您只需執行此程式碼 - 並將獲得相應的子集。
此程式碼可用於每個報告視窗 - 並且可以新增為工具列捷徑。
或者,可以向視窗新增一個按鈕框以觸發子集表的生成。
Names Default to Here(1);
/*dt0 = Open( "$SAMPLE_DATA/Big Class.jmp" );
gb = dt0 << Graph Builder(
Variables( X( :height ), Y( :weight ), Overlay( :sex ) ),
Elements( Points( X, Y ) ),
Local Data Filter(
Add Filter( columns( :sex ), Where( :sex == "F" ) )
)
);*/
ldf = Try( Current Report()["Local Data Filter"] << get scriptable object, Stop() );
dt = ldf << Get Data Table();
WhereClause = ldf << Get where clause();
If( Not( Is Missing( WhereClause ) ),
Eval( Parse( Substitute( ldf << Get where clause(), "Select Where", "myRows= dt << get rows where" ) ) );
dt << subset( Rows( myRows ), Selected columns only( 0 ) );
);
或 .... *)
Re: 如何將Data Filter()選擇的資料放入新的資料表中(使用JSL)?動態子集外掛(可過濾資料表,已更新)怎麼樣?