創建用於交互式用戶輸入的下拉菜單<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />我有一個關於 JMP 腳本編寫的問題。 我正在使用 JMP 11。 我想在 JMP 中創建交互式腳本。 該腳本將包含以下元素 -
1. 腳本將顯示一條消息,要求用戶選擇一個文檔。 用戶將選擇一個文檔名稱。
2. 根據該選擇,其餘腳本將根據用戶選擇的文檔執行查詢並創建相關圖表和表格。
我知道如何在 JMP 中實現#2。 對於#1,我知道如何顯示文本框並讓用戶自己輸入整個文檔名稱,但這會給手動錯誤帶來機會,並且如果輸入錯誤的名稱,其餘查詢將無法工作。
因此,我認為對文檔表的數據庫查詢會將所有活動文檔作為下拉列表顯示給用戶,並且用戶將僅選擇所顯示的文檔之一。 可以在 JMP 腳本中執行嗎?
我查看了使腳本具有交互性的腳本編寫手冊,但我看到的唯一選項涉及讓用戶輸入整個文本。 所以想和你確認一下。
預先非常感謝您!
回复:為交互式用戶輸入創建下拉菜單只是稍微擴展一下約翰·龐特的帖子。這是我收到的一個例子王克並且經常修改。
/* 打開樣本數據表 */
dt = Open( "$SAMPLE_DATA\Big Class.jmp" );
/* 提取唯一年齡的列表 */
Summarize( a = By( :age ) );
插入( a, "<選擇年齡>", 1 );
/* 創建模態對話框 */
新窗口(“示例”,
<<莫代爾,
H 列錶框(
/* 選擇年齡後,用相應的名稱填充第二個組合框 */
面板框(“選擇年齡:”,
cb1 = 組合框(
A,
<<設置函數(
函數({這個},
選擇 = this << 獲取選定內容();
r = dt << 獲取行Where( :age == Num( 選擇 ) );
年齡姓名 = :姓名;
插入(ageNames,“<選擇名稱>”,1);
cb2 << 設置項目( 年齡名稱 );
)
)
)
),
/* 打印日誌中兩個 ComboBox 中選定的值 */
面板框(“選擇名稱:”,
cb2 = 組合框(
{“<選擇名稱>”},
<<設置函數(
函數({這個},
that=this<< 獲取選擇();
打印(選擇,即)
)
)
)
)
)
);
sel=num(選擇)
回复:為交互式用戶輸入創建下拉菜單要在 JSL 中創建下拉列表,您所需要做的就是創建一個列表和一個組合框。 以下是一些 JSL 示例:
我的列表= {
“<選擇一個>” ,
“一” ,
“二” ,
“三” ,
“四” ,
“五”
} ;
列表選擇=表達式(
選擇=我的列錶框<<獲取選擇;
展示(選擇) ;
) ;
我的列錶框=組合框(我的列表,列表選擇) ;
贏=新窗戶( 「演出清單」 ,我的列錶框) ;
運行此命令,您將在窗口中看到一個下拉列表。 當您做出選擇時,它將在日誌中顯示您選擇的內容。
現在的問題是你如何建立你的清單? 如果您的文檔是存儲在目錄中的文件,我可以向您展示一些 JSL 來從目錄創建列表。 但聽起來你的文檔在數據庫中? 如果是這樣的話,那麼我想你可以查詢數據庫並獲得一個列表。 然後使用該列表創建組合框,如圖所示。 不過,我還沒有使用數據庫編寫任何腳本,因此我在該領域的知識很薄弱。
這回答了你的問題了嗎? 或者您需要查詢數據庫方面的幫助嗎?