為交互式用戶輸入創建下拉菜單<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");
/* 提取唯一年齡列表 */
總結(a = By(:age));
Insert Into(a, "", 1 );
/* 創建一個模態對話框 */
新窗口(“示例”,
<<模態,
H 列錶框(
/* 選擇年齡後,用相應的名稱填充第二個 ComboBox */
Panel Box("選擇年齡:",
cb1 = 組合框(
一個,
<<設置函數(
函數({這個},
選擇=這個<<獲取選擇();
r = dt << Get Rows Where( :age == Num( selection ) );
年齡名稱=:名稱;
插入(ageNames,“<選擇名稱>”,1);
cb2 << 設置項目(ageNames);
)
)
)
),
/* 打印日誌中兩個 ComboBox 中選擇的值 */
面板框(“選擇一個名稱:”,
cb2 = 組合框(
{"<選擇名稱>"},
<<設置函數(
函數({這個},
that=this<< 被選中();
打印(選擇,那個)
)
)
)
)
)
);
sel=num(選擇)
回复:為交互式用戶輸入創建下拉菜單要在 JSL 中製作下拉列表,您只需創建一個 List 和一個 Combobox。 這是一些示例 JSL:
我的列表= {
“<選擇一個>” ,
“一” ,
“二” ,
“三” ,
“四” ,
“五”
} ;
列表選擇=表達式(
選擇=我的列錶框<<被選中;
節目(選擇) ;
) ;
我的列錶框=組合框(我的列表,列表選擇) ;
贏=新窗戶( “顯示列表” ,我的列錶框) ;
運行它,您將在一個窗口中看到一個下拉列表。 當您做出選擇時,它將在日誌中顯示您選擇的內容。
現在的問題是你如何建立你的名單? 如果您的文檔是存儲在目錄中的文件,我可以向您展示一些 JSL 以從目錄中創建列表。 但聽起來您的文檔在數據庫中? 如果是這種情況,那麼我認為您可以查詢數據庫並獲取列表。 然後使用該列表創建組合框,如圖所示。 我沒有使用數據庫編寫任何腳本,所以我在這方面的知識很薄弱。
這回答了你的問題了嗎? 或者您在查詢數據庫方面需要幫助嗎?