こんにちは、
ウィンドウレベルから(たとえば、Excelからコピーされた)パラメーターまたは変数のリストを提供し、このリストを(たとえば、[OK]をクリックして)さらに渡して、SQLクエリ用の別のリストを作成したいと思います。 ある種のリストボックス(下の写真のようなもの)でそれを行うことはできますか? それを行うために他にどのような方法を使用できますか? 宜しくお願いします。

あなたを動かすためのいくつかの質問/アイデア:
- そのユーザーが事前に作成されたリストから興味深いシリアル番号を選択するようにしますか? リストボックスを使用できます
- ユーザーがどこかからシリアル番号をコピーして貼り付け、SQLクエリに変換できるようにしますか? 解析機能付きのテキストエディットボックスを使用できます。
- おそらく上記の両方? ユーザーがどこかから値をコピーして貼り付けているかのように、私はおそらくこれを避けようとします。ユーザーは、含まれたいものをすでにそこに選択することができます。
- モーダルを使用しますか?
スクリプトインデックスを確認してください:モーダル(モーダルウィンドウの作成方法)、リストボックス、テキスト編集ボックス、連結項目(JMPリストを文字列に変換する方法)
[OK]ボタンの下にテキストボックスの値を設定し、[OK]が押されたときにログに記録するリストとして選択した値を出力するリストボックスの簡単な例:
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("");
)
);

こんにちは、
提案ありがとうございます。 どこかからシリアル番号をコピーして、解析機能を使用してさらに渡すことができるようにしたいので、オプション2とモーダルウィンドウを一緒に使用します。 テキストエディットボックスで試してみます。
宜しくお願いします
以下に例を示します。 入力を処理し、必要な変更を行うための関数(例ではparsePaste)を作成します:重複を削除し、行の変更を何かに置き換え、重複したセパレーターを削除します... [OK]を押すと、1つの文字列が返されます。次に、返される文字列を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);