現在のデータテーブルを選択こんにちは、
小さな jmp_addin を使用して、選択した列に仕様制限情報を追加しています。とにかく、私が遭遇する問題は、アドインを別のウィンドウから実行している場合でも、実行するたびに常に開いていた最新のデータテーブルを取得することです...私が実行しているjmp_addinを強調表示する方法はありますか?選択したデータテーブルからスクリプトを実行しようとしていますか?currentdatatable がこれを行うと思いましたが、やはり、開いている最新のデータテーブルで常に動作するようで、すでに開いているテーブルに仕様を変更/追加する必要がある場合があります...
前もって感謝します!
dt = currentdatatable();
table=list("Spec1", "Spec2", "Spec3" );
r = Column Dialog(
Spec = Col List( "Columns to add Spec" ),
v list ("Select Product Spec Table", rb = Combo Box( table()))
);
dtedc = open("C:\myData\ADDIN\Spec Limit\"||table[r["rb"]]||".jmp",invisible);
for ( i=1, i<=N Items(r["Spec"]),i++,
for (j=1, j<= nrows(dtedc), j++,
if(as Name(r["Spec"]) == as Name(dtedc:Parameter),
Eval(
Substitute(
Expr(
Column(dt, r["Spec"]) << set property("spec limits",
{LSL( l), Target( t ), USL( u ), Show Limits(1)}
)
),
Expr( l ), dtedc:LSL,
Expr( t ), dtedc:Target,
Expr( u ), dtedc:USL
)
);
);
);
);
close(dtedc, nosave);
Re: 現在のデータ テーブルの選択コードの先頭にchoose_data_table関数定義を置くと機能します。
Re: 現在のデータ テーブルの選択はい、それはうまくいきます。 一度に多くのテーブルを開いていることが多いため、ユーザーにテーブルの選択を促す方法を望んでいました。 また、現在のデータ テーブルに対するさまざまなユーザーの認識に依存することは、これまでうまく機能しませんでした。ユーザーに指定を促す方法があればと考えていました。 しかし、これはやらざるを得ません。
Re: 現在のデータ テーブルの選択ラインを見たとき
dt = choose_data_table();
コードの前半のどこかに、実行するデータ テーブルを選択できる関数があると仮定しました。しかし、そうでない場合は、行を次のように変更することをお勧めします。
dt = current data table();
コードを実行してみてください
Re: 現在のデータ テーブルの選択@txnelson
尋ねていただきありがとうございます。 ログを確認することは考えていませんでした。 こう書かれています。
名前が未解決: 'choose_data_table' のアクセスまたは評価におけるchoose_data_table、choose_data_table() /*###*/
次のスクリプトでは、/*###*/ でマークされたエラーが発生します。
dt = select_data_table() /*###*/;
Show( dt );
dt << Select Where( :Pad Summary == "オーバーロード" );
dt << Colors( 22 );
dt << マーカー( 11 );
dt << Select Where( :Pad Summary == "Curve Error" );
dt << カラー( 27 );
dt << マーカー( 2 );
dt << Select Where( :Pad Summary == "検出" );
dt << Colors( 4 );
dt << マーカー( 12 );
dt << Select Where( :Pad Summary == "位置ずれ" );
dt << Colors( 3 );
dt << マーカー( 2 );
dt << Select Where( :Pad Summary == "ネガティブ (位置ずれあり)" );
dt << Colors( 1 );
dt << マーカー( 2 );
dt << Select Where( :Pad Summary == "Negative" );
dt << Colors( 1 );
dt << マーカー( 0 );
dt << Select Where( :Pad Summary == "切断" );
dt << Colors( 0 );
dt << マーカー( 9 );
dt << Select Where( :Pad Summary == "High CP Current" );
dt << カラー( 56 );
dt << マーカー( 24 );
dt << Select Where( :Run Status == "無効" );
dt << マーカー( 4 );Re: 現在のデータ テーブルの選択ログにはどのようなエラーが記録されますか?
Re: 現在のデータ テーブルの選択はい、やってみます。 申し訳ありませんが、私はかなり初心者で、スクリプトの正式な訓練を受けていません。これはおそらく明らかです。 以下を使用するのではなく、データ テーブル セレクターをこのスクリプトに追加しました。
dt = 現在のデータ テーブル();
そして、現在のデータテーブルが再フォーマットしたいテーブルであることを確認します。 私が最初にデータ テーブルの選択機能を実装したとき、それは魔法のように機能し、目的のテーブルを選択するためのプロンプトを作成しました。 これを同僚にも送って使ってもらいましたが、スクリプトが変更されていないことを確認したにもかかわらず、彼にとっては機能しませんでした。 保存したスクリプトを開いても機能しませんでした。 そこで、以前のフォーマット方法を交互に繰り返し、データテーブルを選択する方法に戻ったところ、再びうまくいきました。 その後、それはなくなりました。
この矛盾、または成功した試行と失敗した試行で何が変わったのかについて、技術的にうまく説明できるわけではありません。 私の知る限り、特に何も起こりませんでした。 私はこれらをまとめてハックしているので、設定やシンボルのクリアや指定など、いくつかの基本原則が欠けていることは間違いありません。 おそらく、この問題は短いフォーラム投稿の範囲外ですか?
どちらにしてもありがとう
Re: 現在のデータテーブルの選択「一貫性のない動作」が何を意味するかについては、さらなる情報が必要になると思います。 さらに詳しく教えていただけますか?
Re: 現在のデータテーブルの選択こんにちは@ジェフ・パーキンソン、
データマーカーをフォーマットする非常に単純なモジュールでこれを使用しようとしています。 最初にスクリプトを設定したときはうまく機能しましたが、それ以降は動作が一貫していません。 なぜそうなるのか何か考えはありますか? 列のタイトルと値は信頼できます。
dt=choose_data_table();
show(dt);
dt << Select Where( :Pad Summary == "Overload" );
dt << Colors( 22 );
dt << Markers( 11 );
dt << Select Where( :Pad Summary == "Curve Error" );
dt << Colors( 27 );
dt << Markers( 2 );
dt << Select Where( :Pad Summary == "Detected" );
dt << Colors( 4 );
dt << Markers( 12 );
dt << Select Where( :Pad Summary == "Position Misalign" );
dt << Colors( 3 );
dt << Markers( 2 );
dt << Select Where( :Pad Summary == "Negative (w/ Misalign)" );
dt << Colors( 1 );
dt << Markers( 2 );
dt << Select Where( :Pad Summary == "Negative" );
dt << Colors( 1 );
dt << Markers( 0 );
dt << Select Where( :Pad Summary == "Disconnect" );
dt << Colors( 0 );
dt << Markers( 9 );
dt << Select Where( :Pad Summary == "High CP Current" );
dt << Colors( 56 );
dt << Markers( 24 );
ありがとう
Re: 現在のデータテーブルの選択残念ながら、回答が得られなかったこの古い質問を見つけました。
現在のデータテーブル()アクティブなデータ テーブル ウィンドウへの参照を返す必要があります。 なぜあなたのケースに当てはまらないのかわかりません。
ただし、より信頼性の高い方法は、ユーザーにオープン データ テーブルから選択するよう求める方法です。
これは、データ テーブルのリストを表示し、ユーザーが選択した内容を返す小さな関数です。
choose_data_table=function({},
list = {};
For( i = 1, i <= N Table(), i++,
list[i] = Data Table( i ) << get name
);
win = New Window( "Select a data table", << Modal,
hb = H List Box(
Panel Box( "Choose a data table",
dt = List Box(
list,
max selected( 1 ),
chosen = Data Table( (dt << get selected)[1] );
show (chosen);
)
),
)
);
chosen);
次のように使用します。
dt=choose_data_table();
show(dt);