你好,
我想提供視窗層級的參數或變數清單(例如從 Excel 複製),並進一步傳遞該清單(例如透過按一下「確定」)來為 SQL 查詢建立另一個清單。 我可以使用某種類型的列錶框(如下圖所示)來做到這一點嗎? 還可以使用哪些其他方法來做到這一點? 此致。

您好,抱歉回覆晚了。 這正是我想要實現的。 非常感謝。 此致
下面是一個例子。 建立函數(範例中的 parsePaste)來處理輸入並進行您想要的修改:刪除重複項、用某些內容替換行更改、刪除重複的分隔符號... 按下「確定」後,將傳回字串,然後您可以修改傳回的字串以適合您的 SQL(以 Words() 和 Concat Items() 為例)。
Names Default To Here(1);
parsePaste = function({tempStr}, {Default Local},
tempStr = Regex(tempStr, "\r\n", ",", GLOBALREPLACE); //replace row changes with ,
tempStr = Substitute(tempStr, ",,", ","); //replace double ,, with one ,
tempStr = Regex(tempStr, ",$", "", GLOBALREPLACE); //remove , if last character
return(tempStr);
);
win2 = New Window("Example", << Modal,
V List Box(
Text Box("Add Serialnumbers:"),
teb = Text Edit Box("", << set width(200), << set nlines(3),
<< Set Function(Function({this},
this << set text(parsePaste(this << get text));
))
),
H List Box(
Button Box("OK", listStr = teb << get text),
Button Box("Cancel")
)
)
);
show(listStr);
temp = Words(listStr, ",");
temp = "'" || Concat Items(temp, "','") ||"'";
show(temp);
你好,
謝謝你的建議。 我希望能夠從某處複製序號,然後使用解析功能進一步傳遞它們,因此選項 2 與模式視窗一起使用。 我將嘗試使用文字編輯框。
此致
幾個幫助您前進的問題/想法:
- 您是否希望使用者從預先建立的清單中選擇感興趣的序號? 您可以使用列錶框
- 您希望使用者能夠從某處複製貼上序號並將其轉換為 SQL 查詢嗎? 您可以使用具有解析功能的文字編輯框。
- 可能是以上兩者? 我很可能會嘗試避免這種情況,就好像用戶從某個地方複製貼上值一樣,他們可以選擇已經存在的內容來包含他們想要的內容。
- 您想使用模態嗎?
檢查腳本索引:模態(如何建立模態視窗)、列錶框、文字編輯框、Concat Items(如何將 JMP 清單轉換為字串)
列錶框的快速範例,它將在「確定」按鈕下方設定文字方塊值,並在按下「確定」時將選定的值列印為要記錄的清單:
Names Default To Here(1);
serialList = {"a1", "b2", "c3", "d4"};
win2 = New Window("Example",
V List Box(
lb = List Box(serialList, width(200), nlines(6)),
Button Box("OK", Show(lb << get selected); tb << Set Text(char(lb << get selected))),
tb = Text Box("");
)
);
