スクリプトを使用して、ジャーナル ファイルのボタン ボックスにテーブル スクリプトのテキストを設定するにはどうすればよいですか?スクリプトを使用して、データ テーブルを再現するボタン ボックスを備えた完全に自己完結型のジャーナル ファイルを作成する必要があります。生産アプリケーションでは、多数の見出し (それぞれが部品を表します) があり、各見出しの下にいくつかのボタン ボックスがあり、それぞれが部品に関連付けられた異なるデータ テーブルを表示します。データ テーブルの作成には複雑な計算が必要なため、関数を使用してデータ テーブルを作成しています。私の意図は、ジャーナル ファイルのみをユーザーに配布することです。
Baltic.jmp サンプル データ テーブルを使用して骨格の例を作成しました。 関数 "SmallTables()" は、テーブル スクリプトをテキストとして返します。しかし、ジャーナル ファイルのボタン ボックスのスクリプト ボックスにそのテキストを入力する方法が見つかりません。 どんな助けでも大歓迎です。
SmallTables = Function( {k},
dt = Open( "$Sample_Data/Baltic.jmp" );
dt_Small = dt << Subset( Rows(), Columns( Column( k ) ), Output Table Name( "Small" ) );
Close( dt, NoSave );
tblScript = dt_Small << Get Script;
result = Char( Name Expr( tblScript ) );
);
jrn = New Window( "Table Test", Outline Box( "Title" ) );
For( k = 1, k <= 5, k++,
jrn << Append( BB = Button Box( "Small Table " || Char( k ), Set Script( SmallTables( k ) ) ) )
);Re: スクリプトを使用して、ジャーナル ファイルのボタン ボックスにテーブル スクリプトのテキストを設定するにはどうすればよいですか?記事を参考にさせていただきました、ありがとうございます!素敵な例でとても分かりやすい説明です。とても助かります。
Re: スクリプトを使用して、ジャーナル ファイルのボタン ボックスにテーブル スクリプトのテキストを設定するにはどうすればよいですか?秘訣は、部分式が評価される前に挿入されていることを確認することです。このJSLクックブックの記事が役立つかもしれません:
Eval Insert、Eval Expr、Parse、および Substitute を使用して、ある式を別の式に挿入します。
Re: スクリプトを使用して、ジャーナル ファイルのボタン ボックスにテーブル スクリプトのテキストを設定するにはどうすればよいですか?なんていい例でしょう!しかし、私のプロジェクトでは、多くの部分ごとに数百のデータ テーブルを構築する必要があります。これが、私が関数を使用してデータ テーブルを作成している理由です (初心者のユーザーが見たことがないことを願っています)。それ脚本!)。 残念ながら、あなたの提案により、一度に多くのウィンドウが開いてしまいます。 しかし、管理しやすい数のデータ テーブルについては、あなたのコンセプトは非常に優れています。きっと使う機会があると思います。
手伝ってくれてどうもありがとう。
Re: スクリプトを使用して、ジャーナル ファイルのボタン ボックスにテーブル スクリプトのテキストを設定するにはどうすればよいですか?どうもありがとう!それは私の「大きな」スクリプトで完全に機能します。私は、関数の結果がスクリプトのテキスト表現であり、ボタン ボックスのスクリプト ダイアログに入力する必要があるという考えに固執しました。 なぜそれがうまくいかないのかはまだわかりませんが、あなたが示したように、Name Expr 関数と Substitute を使用すると完全に動作します。
ちなみに、私の実際のアプリケーションでは、さまざまなテーブルを作成する必要があるため、ループが必要です。多数のパーツがあり、スクリプトは各パーツに固有のスクリプトを使用していくつかのデータ テーブルを作成します。このスクリプトの実行には少し時間がかかるため、そのスクリプトを実行して自己完結型のジャーナル ファイルを作成できるのは素晴らしいことです。
私を正しい道に導いてくれてありがとう!
Re: スクリプトを使用して、ジャーナル ファイルのボタン ボックスにテーブル スクリプトのテキストを設定するにはどうすればよいですか?デモやトレーニングには自己完結型のジャーナル ファイルを使用して、簡単に共有できるようにしています。個々のセクションを閉じてすべてをクリーンアップするためのリンクは、物事を動かし続けます.以下のスクリプトは、基本的なサンプル ジャーナルを作成します。実行すると、リンクを含むジャーナルが表示されます。それぞれを右クリックし、[編集] > [スクリプトの編集] を選択して、それらがどのように構築されているかを確認します。これらを設定するために「テーブル スクリプトのコピー」をよく使用します。このコードを関数に入れるのは良い考えですが、あなたのジャーナルを探索しようとする初心者ユーザーにとっては黒魔術のように見えることに注意してください.

私は通常、このようなスクリプトを使用せずに対話的にジャーナルを作成することに注意してください。
names default to here(1);
//Open data tables temporarily so we can copy their scripts
dtIrisTemp = open("$Sample_Data/Iris.jmp");
dtBigClassTemp = open("$Sample_Data/Big Class.jmp");
//Use Eval(EvalExpr()) so the actual scripts for the data table are saved in
//the journal.
Eval( Eval Expr(
journal = New Window( "A Journal", <<JOURNAL></JOURNAL>
Re: スクリプトを使用して、ジャーナル ファイルのボタン ボックスにテーブル スクリプトのテキストを設定するにはどうすればよいですか?1 つのテーブルを使用する場合、関数呼び出しごとにテーブルを開いたり閉じたりすることはありません。 テーブルを開いてウィンドウを作成し、for ループでテーブルを閉じます。
これを試して。
SmallTables = Function( {k},
dt = Open( "$Sample_Data/Baltic.jmp" );
dt_Small = dt << Subset( Rows(), Columns( Column( k ) ), Output Table Name( "Small" ), Invisible );
Close( dt, NoSave );
_xx = dt_Small << Get Table Script Names;
dt_Small << Delete Scripts(_xx);
tblScript = dt_Small << Get Script;
wait(0);
Close( dt_Small , NoSave);
NameExpr(tblScript)
);
jrn = New Window( "Table Test", Outline Box( "Title" ) );
For( k = 1, k <= 5, k++,
_xx = SmallTables(k);
Eval(Substitute(Expr(jrn << Append( BB = Button Box( "Small Table " || Char( k ), Set Script( _scr ) ) )),
Expr(_scr), NameExpr(_xx) ) )
);Re: スクリプトを使用して、ジャーナル ファイルのボタン ボックスにテーブル スクリプトのテキストを設定するにはどうすればよいですか?