Colリストボックスへの入力についてサポートが必要私のアプリのGUIの一部には、テーブルを開くボタンと、そのテーブルの列を入力する必要がある列リストボックスがあります。
最初にテーブルを開いてから、スクリプトインデックスからのこの変更された例のようにCol Lis Boxを作成すると、すべてが正常に機能します。
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
New Window( "Col List Box Example",
lb = Col List Box()
);
lb << Append (dt << Get Column Names);
ただし、テーブルを開くためのボタンがあるGUIを使用してウィンドウを作成すると、 最初に列リストボックスを作成してからテーブルを開くと、機能しなくなります。 これは実際のコードの簡略化されたバージョンですが、同じ問題があります-列リストボックスに列名が入力されません。
Names Default To Here( 1 );
open = Expr(dt = Open( "$SAMPLE_DATA/Big Class.jmp" ); lb << Append (dt << Get Column Names););
gui = Expr(V List Box(btn = Button Box ("OPEN", open), lb = Col List Box()));
New Window( "Col List Box Example",
gui;
);
私は何が間違っているのですか? どうすればそれを機能させることができますか?
スクリプティングRe:列リストボックスへの入力についてサポートが必要わかりました。ColListBoxが作成されると、現在のデータテーブルに接続されているように見えます。 また、そのDTからのみ列を追加できます。
したがって、GUIの異なるDTの列を同じCOlLIstBoxに表示する必要があるため、毎回再定義する必要があります。 古いものを削除し、代わりに新しいものを作成します。
これは機能しているようです。より良い解決策があるかどうか教えてください。
Names Default To Here( 1 );
open = Expr(dt = Open( "$SAMPLE_DATA/Big Class.jmp" ); refreshColList;);
refreshColList = Expr(
(pb << Child) << Delete Box;
pb << Append(lb = Col List Box(dt, all));
);
gui = Expr(V List Box(btn = Button Box ("OPEN", open), pb = Panel Box("Column List", lb = Col List Box())));
New Window( "Col List Box Example",
gui;
);Re:列リストボックスへの入力についてサポートが必要この列リストボックスを使用して、ボタンや別の列リストボックス(他のプラットフォームと同様)を使用してさまざまな役割で列をキャストするため、さまざまな設定などで多数の列リストボックスを再作成する必要があります。そこでユニバーサル関数を作成しましたそのために:
refreshDisplayBox = Function({dt, box, expr},
parent = box << Parent;
box << Delete Box;
parent << Append(box = expr);
Return (box);
);dtは、exprでディスプレイボックスを再作成するために使用される場合に備えて、ここで必要になります。 関数の外部で使用しているテーブルのハンドルに関係なく、関数に渡されます。 そのためには、すべての式を「dt」で記述することを忘れないでください。
次に、スクリプトは次のようになります。
Names Default To Here( 1 );
refreshDisplayBox = Function({dt, box, expr},
parent = box << Parent;
box << Delete Box;
parent << Append(box = expr);
Return (box);
);
colListExpr = Expr(Col List Box(dt/*use generic dt*/, all));
open = Expr(dtEXT/*different table name*/ = Open( "$SAMPLE_DATA/Big Class.jmp" ); lb = refreshDisplayBox(dtEXT/*pass it into the function*/, lb, colListExpr));
gui = Expr(V List Box(btn = Button Box ("OPEN", open), pb = Panel Box("Column List", lb = Col List Box())));
New Window( "Col List Box Example",
gui;
);
これが有効なアプローチであるかどうかを教えてください。